Update 20260123
This commit is contained in:
@@ -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" />
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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")]
|
||||
|
||||
@@ -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;
|
||||
|
||||
}
|
||||
|
||||
|
||||
208
API_NetFramework/Controllers/JsonController.cs
Normal file
208
API_NetFramework/Controllers/JsonController.cs
Normal 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();
|
||||
//}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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)
|
||||
{
|
||||
|
||||
|
||||
|
||||
165
API_NetFramework/DocTester.aspx
Normal file
165
API_NetFramework/DocTester.aspx
Normal 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>
|
||||
17
API_NetFramework/DocTester.aspx.cs
Normal file
17
API_NetFramework/DocTester.aspx.cs
Normal 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)
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
26
API_NetFramework/DocTester.aspx.designer.cs
generated
Normal file
26
API_NetFramework/DocTester.aspx.designer.cs
generated
Normal 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;
|
||||
}
|
||||
}
|
||||
18
API_NetFramework/Helper/DBHelper.cs
Normal file
18
API_NetFramework/Helper/DBHelper.cs
Normal 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;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
63
API_NetFramework/Helper/ImageHelper.cs
Normal file
63
API_NetFramework/Helper/ImageHelper.cs
Normal 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;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
23
API_NetFramework/Scripts/ace/ace.js
Normal file
23
API_NetFramework/Scripts/ace/ace.js
Normal file
File diff suppressed because one or more lines are too long
8
API_NetFramework/Scripts/ace/ext-searchbox.js
Normal file
8
API_NetFramework/Scripts/ace/ext-searchbox.js
Normal file
File diff suppressed because one or more lines are too long
1
API_NetFramework/Scripts/ace/mode-json.min.js
vendored
Normal file
1
API_NetFramework/Scripts/ace/mode-json.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
1
API_NetFramework/Scripts/ace/theme-tomorrow.min.js
vendored
Normal file
1
API_NetFramework/Scripts/ace/theme-tomorrow.min.js
vendored
Normal 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)});
|
||||
1
API_NetFramework/Scripts/ace/worker-json.js
Normal file
1
API_NetFramework/Scripts/ace/worker-json.js
Normal file
File diff suppressed because one or more lines are too long
2
API_NetFramework/Scripts/jquery.min.js
vendored
Normal file
2
API_NetFramework/Scripts/jquery.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
@@ -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.
BIN
API_NetFramework/bin/DataMatrix.net.dll
Normal file
BIN
API_NetFramework/bin/DataMatrix.net.dll
Normal file
Binary file not shown.
BIN
API_NetFramework/bin/DataMatrix.net.pdb
Normal file
BIN
API_NetFramework/bin/DataMatrix.net.pdb
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -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.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
@@ -1 +1 @@
|
||||
912e2514d1f2ddb24b54769f68c94a4776c9e4de5dc37cfb43da8300c2e75df3
|
||||
5237ce403c6cd685b286cdd5e304344db95734e1cfe12335b820aadf3f53f0a7
|
||||
|
||||
@@ -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
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Reference in New Issue
Block a user