Update 20260123

This commit is contained in:
Stefan Hutter
2026-01-23 08:09:23 +01:00
parent 49155d898f
commit 2d1525575b
358 changed files with 123777 additions and 73 deletions

View File

@@ -47,6 +47,9 @@
<Reference Include="CSVNET">
<HintPath>..\CSVNET\bin\Debug\CSVNET.dll</HintPath>
</Reference>
<Reference Include="DataMatrix.net">
<HintPath>..\DataMatrix.net\bin\Debug\DataMatrix.net.dll</HintPath>
</Reference>
<Reference Include="Microsoft.AspNetCore.Http, Version=2.2.2.0, Culture=neutral, PublicKeyToken=adb9793829ddae60, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.AspNetCore.Http.2.2.2\lib\netstandard2.0\Microsoft.AspNetCore.Http.dll</HintPath>
</Reference>
@@ -255,16 +258,26 @@
<Compile Include="Controllers\HomeController.cs" />
<Compile Include="Controllers\ArchivController.cs" />
<Compile Include="Controllers\ImageController.cs" />
<Compile Include="Controllers\JsonController.cs" />
<Compile Include="Controllers\MailController.cs" />
<Compile Include="Controllers\TokenController.cs" />
<Compile Include="Controllers\UnterschriftController.cs" />
<Compile Include="Controllers\ValuesController.cs" />
<Compile Include="Controllers\AntwortAdressController.cs" />
<Compile Include="Controllers\VersandstrasseController.cs" />
<Compile Include="DocTester.aspx.cs">
<DependentUpon>DocTester.aspx</DependentUpon>
<SubType>ASPXCodeBehind</SubType>
</Compile>
<Compile Include="DocTester.aspx.designer.cs">
<DependentUpon>DocTester.aspx</DependentUpon>
</Compile>
<Compile Include="Global.asax.cs">
<DependentUpon>Global.asax</DependentUpon>
</Compile>
<Compile Include="Helper\DBHelper.cs" />
<Compile Include="Helper\Helper.cs" />
<Compile Include="Helper\ImageHelper.cs" />
<Compile Include="Models\StaticParams.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="Startup.cs" />
@@ -287,6 +300,7 @@
<Content Include="Content\bootstrap.min.css" />
<Content Include="Content\bootstrap.rtl.css" />
<Content Include="Content\bootstrap.rtl.min.css" />
<Content Include="DocTester.aspx" />
<Content Include="favicon.ico" />
<Content Include="Global.asax" />
<Content Include="Scripts\bootstrap.bundle.js" />

View File

@@ -9,8 +9,8 @@
<IISExpressUseClassicPipelineMode />
<UseGlobalApplicationHostFile />
<LastActiveSolutionConfig>Debug|Any CPU</LastActiveSolutionConfig>
<Controller_SelectedScaffolderID>ApiControllerEmptyScaffolder</Controller_SelectedScaffolderID>
<Controller_SelectedScaffolderCategoryPath>root/Common/Web API</Controller_SelectedScaffolderCategoryPath>
<Controller_SelectedScaffolderID>MvcControllerEmptyScaffolder</Controller_SelectedScaffolderID>
<Controller_SelectedScaffolderCategoryPath>root/Common/MVC/Controller</Controller_SelectedScaffolderCategoryPath>
<WebStackScaffolding_ControllerDialogWidth>600</WebStackScaffolding_ControllerDialogWidth>
<WebStackScaffolding_IsLayoutPageSelected>True</WebStackScaffolding_IsLayoutPageSelected>
<WebStackScaffolding_IsPartialViewSelected>False</WebStackScaffolding_IsPartialViewSelected>

View File

@@ -425,6 +425,79 @@ namespace API_NetFramework.Controllers
[HttpPost]
[Route("API/ArchivDoc")]
public IHttpActionResult ArchivDoc(string dokumentid)
{
if (SecuringWebApiUsingApiKey.Middleware.ApiKeyMiddleware.Authorized((HttpRequestMessage)Request, tokenfunction) == false)
{
return Content(HttpStatusCode.Unauthorized, "Invalid Token or API-Key");
}
string ArchivAktiv;
ArchivAktiv = System.Configuration.ConfigurationManager.AppSettings["ArchivierungAktiv"].ToString();
if (ArchivAktiv != "True")
{
string message = ArchivAktiv = System.Configuration.ConfigurationManager.AppSettings["ArchivierungNoAktivMessage"].ToString();
return Content(HttpStatusCode.InternalServerError, message);
}
try
{
APILogging.Log((HttpRequestMessage)Request, "Start ArchivDocFromIRIS DokumentID: " + dokumentid, LogLevelType.Debug);
if (dokumentid.Substring(0, 9).ToUpper() == "OFFEDK008")
{
return (ArchivDocFromDatabase(dokumentid));
}
else
{
DB db = new DB(connectionstring);
db.clear_parameter();
db.add_parameter("@dokumentid", dokumentid);
db.Get_Tabledata("[OnDoc_IRIS_Archivierung]", true, false);
string returnmessage = db.dsdaten.Tables[0].Rows[0][0].ToString();
switch (db.dsdaten.Tables[0].Rows[0][1].ToString())
{
case "1":
APILogging.Log((HttpRequestMessage)Request, dokumentid + " Image des Dokuments nicht vorhanden", LogLevelType.Error);
return Content(HttpStatusCode.NotFound, dokumentid);
break;
case "2":
APILogging.Log((HttpRequestMessage)Request, dokumentid + " nicht vorhanden", LogLevelType.Error);
return Content(HttpStatusCode.NotFound, dokumentid);
break;
case "3":
APILogging.Log((HttpRequestMessage)Request, db.dsdaten.Tables[0].Rows[0][0].ToString() + dokumentid, LogLevelType.Debug);
return Content(HttpStatusCode.OK, returnmessage);
case "0":
return (ArchivDocFromDatabase(dokumentid));
case "4":
APILogging.Log((HttpRequestMessage)Request, "Dokumentarchivierung von Iris ausgelöst" + dokumentid, LogLevelType.Info);
break;
case "5":
APILogging.Log((HttpRequestMessage)Request, "Dokument bereit zur Ausgangsarchivierung" + dokumentid, LogLevelType.Info);
break;
case "6":
APILogging.Log((HttpRequestMessage)Request, "Dokument in EDOKA abgeschlossen" + dokumentid, LogLevelType.Info);
break;
default:
break;
};
}
APILogging.Log((HttpRequestMessage)Request, "Ende ArchivDocFromIRIS DokumentID:" + dokumentid, LogLevelType.Debug);
return Ok(dokumentid);
}
catch (Exception e)
{
APILogging.Log((HttpRequestMessage)Request, e.Message, LogLevelType.Error);
return Content(HttpStatusCode.InternalServerError, e.Message);
}
}
[HttpPost]
[Route("API/ArchivDocFromIRIS")]

View File

@@ -35,6 +35,7 @@ using System.Reflection;
using Newtonsoft.Json.Linq;
using System.Runtime.Serialization.Json;
using System.Web.Http.Results;
using Syncfusion.DocIO.DLS.XML;
namespace API_NetFramework.Controllers
@@ -552,6 +553,8 @@ namespace API_NetFramework.Controllers
Logging.APIDocLog.Info("Input JSON", "CreateCLM", guid, result);
var jo = JObject.Parse(Request.Content.ReadAsStringAsync().Result);
var x = dataj.Produkt;
Console.WriteLine(dataj.Bp.Zustaendiger.TgNummer);
var valueTuples = GetNodes(jo).ToList();
foreach (var valueTuple in valueTuples)
{
@@ -568,6 +571,7 @@ namespace API_NetFramework.Controllers
db.Get_Tabledata("Select * from vorlagenfeld where dokumenttypnr=" + dataj.Dokumenttyp.ToString() + " and aktiv=1 and ess_field_class_id<>0", false, true);
foreach (DataRow dr in db.dsdaten.Tables[0].Rows)
{
foreach (CLMDocItem di in clmdocitemlist)
{
if ("$." + di.itemname == dr["ess_feldname"].ToString())
@@ -580,10 +584,43 @@ namespace API_NetFramework.Controllers
di.width = dr["ess_img_width"].ToString();
di.height = dr["ess_img_height"].ToString();
di.type = dr["ess_field_class_id"].ToString();
}
}
}
if (dr["ess_feldname"].ToString().Contains("@T:"))
{
string[] arr = dr["ess_feldname"].ToString().Split(new string[] { "$Format:" }, StringSplitOptions.None);
dr["ess_feldname"] = arr[0];
string value = "";
string tablename = "";
string format = "";
get_tabledata(dr["ess_feldname"].ToString(), ref clmdocitemlist, out value, out tablename);
CLMDocItem di = new CLMDocItem();
di.bmstart = dr["beginntextmarke"].ToString();
di.bmend = dr["endetextmarke"].ToString();
di.field = dr["feldname"].ToString();
di.top = dr["ess_img_top"].ToString();
di.left = dr["ess_img_left"].ToString();
di.width = dr["ess_img_width"].ToString();
di.height = dr["ess_img_height"].ToString();
di.type = dr["ess_field_class_id"].ToString();
di.itemname = tablename;
di.itemvalue = value;
di.itemname = tablename;
try
{
di.format = arr[1];
}
catch { di.format = ""; }
clmdocitemlist.Add(di);
}
}
clmdocitemlist.RemoveAll((y) => string.IsNullOrEmpty(y.type));
string CheckResult = "";
CheckResult = CLM_Verify(ref clmdocitemlist, ref result);
@@ -608,7 +645,7 @@ namespace API_NetFramework.Controllers
apiok.message = "";
apiok.documentid = dataj.Id.ToString();
apiok.file = dok.dokument;
return Ok(Newtonsoft.Json.JsonConvert.SerializeObject(apiok));
return Ok((apiok));
}
catch (Exception ex)
{
@@ -624,6 +661,68 @@ namespace API_NetFramework.Controllers
finally { apireturn = null; apiok = null; clmdocitemlist = null; dataj = null; };
}
private void get_tabledata(string ifeldname, ref List<CLMDocItem> docitemlist, out string value, out string tablename)
{
//@T: Produkt.Produktinfo:Name,Beschreibung
string Feldname = ifeldname;
string Source = Feldname.Replace("@T:", "");
string Tablename = Source.Split(':')[0];
Source = Source.Replace(Tablename + ":", "");
string[] attributs = Source.Split(',');
var newlist = docitemlist.FindAll(s => s.itemname.Contains(Tablename));
string suchText = Tablename;
var treffer = docitemlist
.Where(p => p.itemname.Contains(suchText))
.ToList()
.OrderBy(p => p.itemname);
DataTable dt = new DataTable();
foreach (string attrib in attributs)
{
dt.Columns.Add(attrib);
}
int rowcounter = 0;
foreach (CLMDocItem di in treffer)
{
string x = di.itemname;
x = x.Replace(Tablename + "[", "");
char ch = ']';
int offset = x.IndexOf(ch);
string prefix = x.Substring(0, offset);
rowcounter = Convert.ToInt32(prefix);
}
for (int i = 0; i < rowcounter + 1; i++)
{
DataRow dx = dt.NewRow();
for (int j = 0; dt.Columns.Count > j; j++)
{
foreach (CLMDocItem di in newlist)
{
if (di.itemname == Tablename + "[" + i.ToString().Trim() + "]" + "." + dt.Columns[j].ColumnName)
{
dx[dt.Columns[j]] = di.itemvalue;
}
}
}
dt.Rows.Add(dx);
}
foreach (CLMDocItem di in treffer)
{
docitemlist.Remove(di);
}
dt.AcceptChanges();
string JSONresult;
JSONresult = JsonConvert.SerializeObject(dt);
tablename = Tablename;
value = JSONresult;
}
#region Helper
private IEnumerable<(string path, string key, string value)> GetNodes(JToken token)
{
@@ -1195,14 +1294,34 @@ namespace API_NetFramework.Controllers
// dokdata.dokumentwerte = ToDataTable<CLMDocItem>
dokumentid = db.Create_EDOKA_Doc(dokdata, false, "");
dokdata.Dokumentid = dokumentid;
dokdata.Erstellung_in_Office = false;
DOCGEN.Generator.DocGenerator_from_EDOKA Generator = new DOCGEN.Generator.DocGenerator_from_EDOKA(this.connectionstring, OwnHost, key.ToString());
dok = Generator.Generate_Doc_EDOKA(dokumentid, ref dokdata, false, 0, false, false);
db.Save_To_DB(dokumentid, "", dok.dokument);
DocGet dget = new DocGet(this.connectionstring);
dok.dokument = dget.Convert_Word_To_PDF(dok.dokument);
// db.Save_To_DB(dokumentid, "", dok.dokument);
// dok = dget.GetDocAsPDF(dokumentid);
dok.extension = "pdf";
dok.doktype = "P";
if (System.Configuration.ConfigurationManager.AppSettings["CLMSaveOnDoc"].ToString() == "True")
{
db.Save_To_DB(dokumentid, "", dok.dokument);
} else
{
db.clear_parameter();
db.add_parameter("@dokumentid", dokumentid);
db.Get_Tabledata("ondoc_delete_apidoc", true, false);
}
deflist.Clear();
dget = null;
Generator = null;
clmdocitemlist.Clear();
APILogging.Log((HttpRequestMessage)Request, "Ende GenDoc DokumentID:" + dokumentid, LogLevelType.Debug);
APILogging.DocLog((HttpRequestMessage)Request, docgendata.partnernr.ToString(), "Dokument über API erstellt", dokumentid, LogLevelType.Info);
db = null;
}

View File

@@ -0,0 +1,208 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Http;
using System.Web.Mvc;
using System.Configuration;
using System.Data.SqlClient;
using System.IO;
using System.Net;
using System.Net.Http;
using System.Text;
using SecuringWebApiUsingApiKey.Middleware;
using System.Threading.Tasks;
using Model;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using System.Web.Http.Results;
using System.Net.Http.Headers;
namespace OnDocAPI_NetFramework.Controllers
{
public class JsonRequestDto
{
public string Key { get; set; }
public string Json { get; set; }
}
[System.Web.Http.RoutePrefix("api/json")]
public class JsonController : ApiController
{
private readonly string _connectionString = StringCipher.Decrypt(ConfigurationManager.ConnectionStrings["DocTesterconnectionstring"].ConnectionString, "i%!k!7pab%bNLdA5hE4pkR4XaB%E^jB3d9tHuQ4pbF&BZjF7SB#WBWit5#HrbJiLrLVm");
// 🔹 JSON LESEN
[System.Web.Http.HttpGet]
[System.Web.Http.Route("load/{key}")]
public IHttpActionResult LoadJson(string key)
{
if (string.IsNullOrWhiteSpace(key))
return BadRequest("Key fehlt");
string json;
using (SqlConnection con = new SqlConnection(_connectionString))
using (SqlCommand cmd = new SqlCommand(
"SELECT JavaScriptObject FROM ProvDokuments WHERE ProvDokumentid = @key", con))
{
cmd.Parameters.AddWithValue("@key", key);
con.Open();
json = cmd.ExecuteScalar()?.ToString();
}
if (json == null)
return NotFound();
return Ok(json);
}
// 🔹 JSON SPEICHERN
[System.Web.Http.HttpPost]
[System.Web.Http.Route("save")]
public IHttpActionResult SaveJson(JsonRequestDto dto)
{
if (dto == null || string.IsNullOrWhiteSpace(dto.Key))
return BadRequest("Key fehlt");
using (SqlConnection con = new SqlConnection(_connectionString))
using (SqlCommand cmd = new SqlCommand(@"
IF EXISTS (SELECT 1 FROM provdokuments WHERE provdokumentid = @key)
UPDATE provdokuments SET JavaScriptObject = @json, geaendertam = GETDATE()
WHERE provdokumentid = @key
ELSE
INSERT INTO provdokuments (provdokumentid,erstelltam,geaendertam, JavaScriptObject)
VALUES (@key, getdate(),getdate(),@json)
", con))
{
cmd.Parameters.AddWithValue("@key", dto.Key);
cmd.Parameters.AddWithValue("@json", dto.Json);
con.Open();
cmd.ExecuteNonQuery();
}
return Ok();
}
public class JsonRequestDto
{
public string Key { get; set; }
public string Json { get; set; } // ← reiner JSON-String
}
public class PdfBase64Response
{
public string PdfBase64 { get; set; }
}
// 🔹 PDF GENERIEREN
[System.Web.Http.HttpPost]
[System.Web.Http.Route("GeneratePDF")]
public async Task<HttpResponseMessage> GeneratePdf(JsonRequestDto dto)
{
if (dto == null || string.IsNullOrWhiteSpace(dto.Json))
return new HttpResponseMessage(HttpStatusCode.BadRequest);
byte[] pdfBytes = await CallExternalPdfApi(dto.Json);
var response = new HttpResponseMessage(HttpStatusCode.OK)
{
Content = new ByteArrayContent(pdfBytes)
};
response.Content.Headers.ContentType =
new MediaTypeHeaderValue("application/pdf");
response.Content.Headers.ContentDisposition =
new ContentDispositionHeaderValue("inline")
{
FileName = $"{dto.Key}.pdf"
};
response.Content.Headers.ContentLength = pdfBytes.Length;
if (System.IO.File.Exists(@"x:\file.pdf")) { System.IO.File.Delete(@"x:\file.pdf"); }
System.IO.FileStream stream =
new FileStream(@"x:\file.pdf", FileMode.CreateNew);
System.IO.BinaryWriter writer =
new BinaryWriter(stream);
writer.Write(pdfBytes, 0, pdfBytes.Length);
writer.Close();
return response;
}
private async Task<byte[]> CallExternalPdfApi(string json)
{
try
{
APIErrorSimple apireturn = new APIErrorSimple();
APIOK apiok = new APIOK();
;
string jsonstring = json;
WebRequest request;
var data = Encoding.UTF8.GetBytes(jsonstring);
string OwnHost = System.Configuration.ConfigurationManager.AppSettings["OwnHost"].ToString();
string uri = OwnHost + "/API/CreateCLM";
request = WebRequest.Create(uri);
request.ContentLength = data.Length;
request.ContentType = "application/json";
request.Method = "POST";
request.Headers["Authorization"] = "Bearer " + "pZkuG6l6ORCEckqQimPK58PO1A9EnkMtL5oCgRX9WiWnD4xeH7ikGzhWnTBy/vk8J4Iiz8gCSx9uFHA4+DvITG0roO97sk82d/0BCjVlwLWINpXlJfGYEF3X96AdoCQvb3ruwv/tVqEHsSU5aNfyxBAe+EhLTHQ8t7ysgJZWh98=";
using (Stream requestStream = request.GetRequestStream())
{
requestStream.Write(data, 0, data.Length);
requestStream.Close();
using (Stream responseStream = request.GetResponse().GetResponseStream())
{
using (var reader = new StreamReader(responseStream))
{
var response = reader.ReadToEnd();
try
{
apiok = JsonConvert.DeserializeObject<APIOK>(response);
var jo = JObject.Parse(response.ToString());
return Convert.FromBase64String(apiok.file);
}
catch (Exception ex)
{
apireturn = JsonConvert.DeserializeObject<APIErrorSimple>(response);
}
}
}
}
return null;
}
catch {
byte[] pdf;
return null;}
// var request = (HttpWebRequest)WebRequest.Create("https://api.example.com/generate-pdf");
//request.Method = "POST";
//request.ContentType = "application/json";
//byte[] payload = Encoding.UTF8.GetBytes(json);
//request.ContentLength = payload.Length;
//using (var stream = request.GetRequestStream())
// stream.Write(payload, 0, payload.Length);
//using (var response = (HttpWebResponse)request.GetResponse())
//using (var rs = response.GetResponseStream())
//using (var ms = new MemoryStream())
//{
// rs.CopyTo(ms);
// return ms.ToArray();
//}
}
}
}

View File

@@ -141,7 +141,7 @@ namespace API_NetFramework.Controllers
[HttpGet]
[Route("API/GetUnterschriftAsBase64New")]
public IHttpActionResult GetUnterschriftAsBase64New(string TGNummer, int ImageWidth = 0, int ImageHeight = 0)
public IHttpActionResult GetUnterschriftAsBase64IL(string TGNummer, int ImageWidth = 0, int ImageHeight = 0)
{

View File

@@ -0,0 +1,165 @@
<%@ Page Language="C#" AutoEventWireup="true" %>
<!DOCTYPE html>
<html>
<head>
<title>JSON Editor → PDF Preview</title>
<script>
</script>
<!-- ACE
<script src="https://cdnjs.cloudflare.com/ajax/libs/ace/1.32.6/ace.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/ace/1.32.6/mode-json.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/ace/1.32.6/theme-tomorrow.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.7.1/jquery.min.js"></script>
-->
<script src="/Scripts/ace/ace.js"></script>
<script src="/Scripts/ace/mode-json.min.js"></script>
<script src="/Scripts/ace/theme-tomorrow.min.js"></script>
<script src="/Scripts/ace/worker-json.js"></script>
<script src="/Scripts/jquery.min.js"></script>
<script src="/Scripts/ace/ext-searchbox.js"></script>
<style>
body {
margin: 0;
font-family: Arial, sans-serif;
}
.toolbar {
padding: 10px;
background: #f5f5f5;
border-bottom: 1px solid #ccc;
}
.toolbar input {
width: 220px;
padding: 4px;
}
.toolbar button {
margin-left: 5px;
padding: 6px 10px;
}
.container {
display: flex;
height: calc(100vh - 60px);
}
.left, .right {
flex: 1;
padding: 10px;
box-sizing: border-box;
}
.left {
border-right: 1px solid #ccc;
}
#editor {
width: 100%;
height: 100%;
border: 1px solid #ccc;
}
#pdfFrame {
width: 100%;
height: 100%;
border: 1px solid #ccc;
background: #fafafa;
}
</style>
</head>
<body>
<div class="toolbar">
<label>Schlüssel:</label>
<input type="text" id="key" placeholder="provDokumentID" />
<button onclick="loadJson()">Laden</button>
<button onclick="saveJson()">Speichern</button>
<button onclick="generatePdf()">PDF generieren</button>
</div>
<div class="container">
<!-- LINKS: JSON -->
<div class="left">
<div id="editor">{}</div>
</div>
<!-- RECHTS: PDF -->
<div class="right">
<iframe id="pdfFrame" title="PDF Vorschau"></iframe>
</div>
</div>
<script>
const apiBase = "/api/json";
// ACE INIT
const editor = ace.edit("editor");
editor.setTheme("ace/theme/tomorrow");
editor.session.setMode("ace/mode/json");
editor.setShowPrintMargin(false);
editor.session.setTabSize(2);
editor.session.setUseSoftTabs(true);
// JSON LADEN
function loadJson() {
const key = $("#key").val();
if (!key) { alert("Bitte Schlüssel eingeben"); return; }
$.get(apiBase + "/load/" + encodeURIComponent(key))
.done(data => editor.setValue(data, -1))
.fail(() => alert("Kein Eintrag gefunden"));
}
// JSON SPEICHERN
function saveJson() {
const key = $("#key").val();
const json = editor.getValue();
if (!key) { alert("Bitte Schlüssel eingeben"); return; }
try { JSON.parse(json); }
catch { alert("Ungültiges JSON"); return; }
$.ajax({
url: apiBase + "/save",
type: "POST",
contentType: "application/json",
data: JSON.stringify({ key: key, json: json }),
success: () => alert("Gespeichert")
});
}
// PDF GENERIEREN & EMBEDDED ANZEIGEN
function generatePdf() {
const key = $("#key").val();
if (!key) { alert("Bitte Schlüssel eingeben"); return; }
fetch(apiBase + "/generatepdf", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({
key: key,
json: editor.getValue()
})
})
.then(r => {
if (!r.ok) throw new Error("PDF-Fehler");
return r.blob();
})
.then(blob => {
const url = URL.createObjectURL(blob);
document.getElementById("pdfFrame").src = url;
})
.catch(err => alert(err.message));
}
</script>
</body>
</html>

View File

@@ -0,0 +1,17 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace OnDocAPI_NetFramework
{
public partial class DocTester : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
}
}

View File

@@ -0,0 +1,26 @@
//------------------------------------------------------------------------------
// <auto-generated>
// Dieser Code wurde von einem Tool generiert.
//
// Änderungen an dieser Datei können fehlerhaftes Verhalten verursachen und gehen verloren, wenn
// der Code neu generiert wird.
// </auto-generated>
//------------------------------------------------------------------------------
namespace OnDocAPI_NetFramework
{
public partial class DocTester
{
/// <summary>
/// form1-Steuerelement
/// </summary>
/// <remarks>
/// Automatisch generiertes Feld.
/// Zum Ändern die Felddeklaration aus der Designerdatei in die CodeBehind-Datei verschieben.
/// </remarks>
protected global::System.Web.UI.HtmlControls.HtmlForm form1;
}
}

View File

@@ -0,0 +1,18 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
namespace OnDocAPI_NetFramework.Helper
{
public class DBHelper
{
string connectionstring = "";
public DBHelper(string connectionstring)
{
this.connectionstring = connectionstring;
}
}
}

View File

@@ -0,0 +1,63 @@
using System;
using System.Collections.Generic;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Web;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using DataMatrix.net;
namespace OnDocAPI_NetFramework.Helper
{
public class ImageHelper
{
public void CalculateImageSize(System.Drawing.Image img, out double targetHeight, out double targetWidth)
{
targetHeight = 0;
targetWidth = 0;
}
public System.Drawing.Image Datamatrix(int width, int heigth, int left, int top, List<string>values)
{
//int imageWidth = 304; // 250; // 142;
//int imageHeight = 45; // 37; // 31;
//JToken jObject = JToken.Parse(value);
//bool show = jObject.Value<bool>("Show");
//if (show)
//{
// string dokumentId = jObject.Value<string>("DokumentId");
// if (dokumentId == null)
// {
// dokumentId = "123456Edoka Dok Id fehlt!";
// }
// string avqAuthExtlRef = jObject.Value<string>("AvqAuthExtlRef");
// string PartnerNr = jObject.Value<string>("PartnerNr");
// string PersonNr = jObject.Value<string>("PersonNr");
// string PersonNr1 = jObject.Value<string>("PersonNr1");
// string text = "imaq$" + dokumentId.Substring(6) + "$0002$" + avqAuthExtlRef + "$" + PartnerNr + "$" + PersonNr + "$" + PersonNr1;
// Bitmap dataMatrixBitmap = new DmtxImageEncoder().EncodeImage(text); //.Save("test1.png");
// Bitmap textBitmap = new Bitmap(4000, 600);
// using (Graphics g = Graphics.FromImage(textBitmap))
// {
// g.DrawImage(dataMatrixBitmap, 0, 0, 600, 600);
// g.DrawString(dokumentId.Substring(6) + " U", new Font("Futura Book", 84), Brushes.Black, 650, 360);
// }
// byte[] textPng = null;
// using (MemoryStream m = new MemoryStream())
// {
// textBitmap.Save(m, System.Drawing.Imaging.ImageFormat.Png);
// textPng = m.GetBuffer();
// }
//}
return null;
}
}
}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1 @@
define("ace/theme/tomorrow-css",["require","exports","module"],function(o,e,r){r.exports='.ace-tomorrow .ace_gutter {\n background: #f6f6f6;\n color: #4D4D4C\n}\n\n.ace-tomorrow .ace_print-margin {\n width: 1px;\n background: #f6f6f6\n}\n\n.ace-tomorrow {\n background-color: #FFFFFF;\n color: #4D4D4C\n}\n\n.ace-tomorrow .ace_cursor {\n color: #AEAFAD\n}\n\n.ace-tomorrow .ace_marker-layer .ace_selection {\n background: #D6D6D6\n}\n\n.ace-tomorrow.ace_multiselect .ace_selection.ace_start {\n box-shadow: 0 0 3px 0px #FFFFFF;\n}\n\n.ace-tomorrow .ace_marker-layer .ace_step {\n background: rgb(255, 255, 0)\n}\n\n.ace-tomorrow .ace_marker-layer .ace_bracket {\n margin: -1px 0 0 -1px;\n border: 1px solid #D1D1D1\n}\n\n.ace-tomorrow .ace_marker-layer .ace_active-line {\n background: #EFEFEF\n}\n\n.ace-tomorrow .ace_gutter-active-line {\n background-color : #dcdcdc\n}\n\n.ace-tomorrow .ace_marker-layer .ace_selected-word {\n border: 1px solid #D6D6D6\n}\n\n.ace-tomorrow .ace_invisible {\n color: #D1D1D1\n}\n\n.ace-tomorrow .ace_keyword,\n.ace-tomorrow .ace_meta,\n.ace-tomorrow .ace_storage,\n.ace-tomorrow .ace_storage.ace_type,\n.ace-tomorrow .ace_support.ace_type {\n color: #8959A8\n}\n\n.ace-tomorrow .ace_keyword.ace_operator {\n color: #3E999F\n}\n\n.ace-tomorrow .ace_constant.ace_character,\n.ace-tomorrow .ace_constant.ace_language,\n.ace-tomorrow .ace_constant.ace_numeric,\n.ace-tomorrow .ace_keyword.ace_other.ace_unit,\n.ace-tomorrow .ace_support.ace_constant,\n.ace-tomorrow .ace_variable.ace_parameter {\n color: #F5871F\n}\n\n.ace-tomorrow .ace_constant.ace_other {\n color: #666969\n}\n\n.ace-tomorrow .ace_invalid {\n color: #FFFFFF;\n background-color: #C82829\n}\n\n.ace-tomorrow .ace_invalid.ace_deprecated {\n color: #FFFFFF;\n background-color: #8959A8\n}\n\n.ace-tomorrow .ace_fold {\n background-color: #4271AE;\n border-color: #4D4D4C\n}\n\n.ace-tomorrow .ace_entity.ace_name.ace_function,\n.ace-tomorrow .ace_support.ace_function,\n.ace-tomorrow .ace_variable {\n color: #4271AE\n}\n\n.ace-tomorrow .ace_support.ace_class,\n.ace-tomorrow .ace_support.ace_type {\n color: #C99E00\n}\n\n.ace-tomorrow .ace_heading,\n.ace-tomorrow .ace_markup.ace_heading,\n.ace-tomorrow .ace_string {\n color: #718C00\n}\n\n.ace-tomorrow .ace_entity.ace_name.ace_tag,\n.ace-tomorrow .ace_entity.ace_other.ace_attribute-name,\n.ace-tomorrow .ace_meta.ace_tag,\n.ace-tomorrow .ace_string.ace_regexp,\n.ace-tomorrow .ace_variable {\n color: #C82829\n}\n\n.ace-tomorrow .ace_comment {\n color: #8E908C\n}\n\n.ace-tomorrow .ace_indent-guide {\n background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAE0lEQVQImWP4////f4bdu3f/BwAlfgctduB85QAAAABJRU5ErkJggg==) right repeat-y\n}\n\n.ace-tomorrow .ace_indent-guide-active {\n background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAAAZSURBVHjaYvj///9/hivKyv8BAAAA//8DACLqBhbvk+/eAAAAAElFTkSuQmCC") right repeat-y;\n} \n'}),define("ace/theme/tomorrow",["require","exports","module","ace/theme/tomorrow-css","ace/lib/dom"],function(o,e,r){e.isDark=!1,e.cssClass="ace-tomorrow",e.cssText=o("./tomorrow-css"),o("../lib/dom").importCssString(e.cssText,e.cssClass,!1)}),window.require(["ace/theme/tomorrow"],function(o){"object"==typeof module&&"object"==typeof exports&&module&&(module.exports=o)});

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -44,12 +44,16 @@
<add key="CLMZustaendig" value="3793"/>
<add key="CLMUnterschriftlinks" value="0"/>
<add key="CLMUnterschriftrechts" value="0"/>
<add key="CLMKube" value="0"/>
<add key="CLMKube" value="0"/>
<add key="CLMSaveOnDoc" value="True"/>
<add key ="DecTestConnString"/>
</appSettings>
<connectionStrings>
<add name="EDOKAConnectionstring" connectionString="Po7oIigu4hOz6zXOpaSnrhveCQyfGgFeskvEQsvm3CEgxjJMEYYDEbnWlt9Qr9vGTkzqm5hvURTLA1hKVU++/ozcvT5qIVTpDLBTKd4AM/4YgN3+L9cx3mxMoWmv1JMjqxZVbR6GYiuSo1xuD05sl3IGoUenfugP6hBP/IC7MjUjisDUE6msFpWiraJr53gcfDvIrc2CUBTVUS+f94kewhlKxjtEohtCM71PN2zpoMiPyBIuXDyrYlYyokUOg6uV" />
<add name="JournalConnectionstring" connectionString="fPYJwxH9angA+JMQ9OUQ4hfBQZR9aohQseovi6H5GI0fPBr22eh34jHXesVUNDhwsPJJ0OmlpwxTCTVyjoY1Aw40d5tZuSeZO/1jKhPU/Yg+Ek2kXe/VFlTN0CxG/er1XxAtLOHL62GJMnpNryUkqIbKJqa46rB0JbLACg8WMdk7/0GmEn39Gi54EQMywlbZ2dCffgfko6mudawZ4vkzWcpH0QxSqBqu8sCtpZYSEl9VYnnX/SwJHVlgOuWgtcxt" />
<add name="DocTesterConnectionstring" connectionString="Po7oIigu4hOz6zXOpaSnrhveCQyfGgFeskvEQsvm3CEgxjJMEYYDEbnWlt9Qr9vGTkzqm5hvURTLA1hKVU++/ozcvT5qIVTpDLBTKd4AM/4YgN3+L9cx3mxMoWmv1JMjqxZVbR6GYiuSo1xuD05sl3IGoUenfugP6hBP/IC7MjUjisDUE6msFpWiraJr53gcfDvIrc2CUBTVUS+f94kewhlKxjtEohtCM71PN2zpoMiPyBIuXDyrYlYyokUOg6uV" />
</connectionStrings>
<system.web>
<compilation debug="true" targetFramework="4.8.1" />

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -44,12 +44,16 @@
<add key="CLMZustaendig" value="3793"/>
<add key="CLMUnterschriftlinks" value="0"/>
<add key="CLMUnterschriftrechts" value="0"/>
<add key="CLMKube" value="0"/>
<add key="CLMKube" value="0"/>
<add key="CLMSaveOnDoc" value="True"/>
<add key ="DecTestConnString"/>
</appSettings>
<connectionStrings>
<add name="EDOKAConnectionstring" connectionString="Po7oIigu4hOz6zXOpaSnrhveCQyfGgFeskvEQsvm3CEgxjJMEYYDEbnWlt9Qr9vGTkzqm5hvURTLA1hKVU++/ozcvT5qIVTpDLBTKd4AM/4YgN3+L9cx3mxMoWmv1JMjqxZVbR6GYiuSo1xuD05sl3IGoUenfugP6hBP/IC7MjUjisDUE6msFpWiraJr53gcfDvIrc2CUBTVUS+f94kewhlKxjtEohtCM71PN2zpoMiPyBIuXDyrYlYyokUOg6uV" />
<add name="JournalConnectionstring" connectionString="fPYJwxH9angA+JMQ9OUQ4hfBQZR9aohQseovi6H5GI0fPBr22eh34jHXesVUNDhwsPJJ0OmlpwxTCTVyjoY1Aw40d5tZuSeZO/1jKhPU/Yg+Ek2kXe/VFlTN0CxG/er1XxAtLOHL62GJMnpNryUkqIbKJqa46rB0JbLACg8WMdk7/0GmEn39Gi54EQMywlbZ2dCffgfko6mudawZ4vkzWcpH0QxSqBqu8sCtpZYSEl9VYnnX/SwJHVlgOuWgtcxt" />
<add name="DocTesterConnectionstring" connectionString="Po7oIigu4hOz6zXOpaSnrhveCQyfGgFeskvEQsvm3CEgxjJMEYYDEbnWlt9Qr9vGTkzqm5hvURTLA1hKVU++/ozcvT5qIVTpDLBTKd4AM/4YgN3+L9cx3mxMoWmv1JMjqxZVbR6GYiuSo1xuD05sl3IGoUenfugP6hBP/IC7MjUjisDUE6msFpWiraJr53gcfDvIrc2CUBTVUS+f94kewhlKxjtEohtCM71PN2zpoMiPyBIuXDyrYlYyokUOg6uV" />
</connectionStrings>
<system.web>
<compilation debug="true" targetFramework="4.8.1" />

File diff suppressed because it is too large Load Diff

View File

@@ -1 +1 @@
912e2514d1f2ddb24b54769f68c94a4776c9e4de5dc37cfb43da8300c2e75df3
5237ce403c6cd685b286cdd5e304344db95734e1cfe12335b820aadf3f53f0a7

View File

@@ -325,3 +325,5 @@ E:\Software-Projekte\OnDoc\OnDoc\API_NetFramework\bin\OfficePrinter.pdb
E:\Software-Projekte\OnDoc\OnDoc\API_NetFramework\bin\Database.dll.config
E:\Software-Projekte\OnDoc\OnDoc\API_NetFramework\bin\System.Web.Http.Tracing.dll
E:\Software-Projekte\OnDoc\OnDoc\API_NetFramework\bin\System.Web.Http.Tracing.xml
E:\Software-Projekte\OnDoc\OnDoc\API_NetFramework\bin\DataMatrix.net.dll
E:\Software-Projekte\OnDoc\OnDoc\API_NetFramework\bin\DataMatrix.net.pdb