Update vor Umbau Service

This commit is contained in:
Stefan Hutter
2026-02-13 06:42:52 +01:00
parent 41588e8c92
commit 9e64ca707d
925 changed files with 1109250 additions and 584 deletions

View File

@@ -156,6 +156,7 @@
<Reference Include="System.ComponentModel.DataAnnotations" />
<Reference Include="System.Core" />
<Reference Include="System.Data.DataSetExtensions" />
<Reference Include="System.Web.Extensions" />
<Reference Include="System.Web.Helpers, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.AspNet.WebPages.3.3.0\lib\net45\System.Web.Helpers.dll</HintPath>
</Reference>
@@ -174,6 +175,7 @@
<Reference Include="System.Web.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.AspNet.Razor.3.3.0\lib\net45\System.Web.Razor.dll</HintPath>
</Reference>
<Reference Include="System.Web.Services" />
<Reference Include="System.Web.WebPages, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.AspNet.WebPages.3.3.0\lib\net45\System.Web.WebPages.dll</HintPath>
</Reference>
@@ -272,6 +274,13 @@
<Compile Include="DocTester.aspx.designer.cs">
<DependentUpon>DocTester.aspx</DependentUpon>
</Compile>
<Compile Include="dt.aspx.cs">
<DependentUpon>dt.aspx</DependentUpon>
<SubType>ASPXCodeBehind</SubType>
</Compile>
<Compile Include="dt.aspx.designer.cs">
<DependentUpon>dt.aspx</DependentUpon>
</Compile>
<Compile Include="Global.asax.cs">
<DependentUpon>Global.asax</DependentUpon>
</Compile>
@@ -280,7 +289,15 @@
<Compile Include="Helper\ImageHelper.cs" />
<Compile Include="Models\StaticParams.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="SelectTable.aspx.cs">
<DependentUpon>SelectTable.aspx</DependentUpon>
<SubType>ASPXCodeBehind</SubType>
</Compile>
<Compile Include="SelectTable.aspx.designer.cs">
<DependentUpon>SelectTable.aspx</DependentUpon>
</Compile>
<Compile Include="Startup.cs" />
<Compile Include="TableConfigProvider.cs" />
</ItemGroup>
<ItemGroup>
<Content Include="Areas\HelpPage\HelpPage.css" />
@@ -301,6 +318,7 @@
<Content Include="Content\bootstrap.rtl.css" />
<Content Include="Content\bootstrap.rtl.min.css" />
<Content Include="DocTester.aspx" />
<Content Include="dt.aspx" />
<Content Include="favicon.ico" />
<Content Include="Global.asax" />
<Content Include="Scripts\bootstrap.bundle.js" />
@@ -328,12 +346,14 @@
<Content Include="Areas\HelpPage\Views\Help\DisplayTemplates\CollectionModelDescription.cshtml" />
<Content Include="Areas\HelpPage\Views\Help\DisplayTemplates\ApiGroup.cshtml" />
<Content Include="Areas\HelpPage\Views\Help\Api.cshtml" />
<Content Include="App_Data\TableConfig.json" />
<None Include="Scripts\jquery-3.7.1.intellisense.js" />
<Content Include="Scripts\jquery-3.7.1.js" />
<Content Include="Scripts\jquery-3.7.1.min.js" />
<Content Include="Scripts\jquery-3.7.1.slim.js" />
<Content Include="Scripts\jquery-3.7.1.slim.min.js" />
<Content Include="Scripts\modernizr-2.8.3.js" />
<Content Include="SelectTable.aspx" />
<Content Include="Web.config" />
<Content Include="Web.Debug.config">
<DependentUpon>Web.config</DependentUpon>
@@ -351,7 +371,6 @@
<Content Include="Views\Home\APIGenerator.cshtml" />
</ItemGroup>
<ItemGroup>
<Folder Include="App_Data\" />
<Folder Include="Views\Unterschrift\" />
</ItemGroup>
<ItemGroup>

View File

@@ -0,0 +1,32 @@
{
"tables": [
{
"key": "ProvDokuments",
"displayName": "ESS-Dokumente",
"sqlList": "SELECT ProvDokumentid as id, provDokumentID as Name FROM ProvDokuments order by erstelltam desc",
"sqlById": "SELECT JavaScriptObject as JsonData FROM ProvDokuments where provdokumentid=@id",
"idField": "Id",
"displayField": "ProvDokumentID",
"jsonField": "JsonData"
},
{
"key": "Ondoc_Versandstrasse_Paket",
"displayName": "Ondoc_Versandstrasse_Paket",
"sqlList": "SELECT ID, erstellt_am as Name from Ondoc_Versandstrasse_Paket order by Id desc",
"sqlById": "SELECT paket as JsonData from Ondoc_Versandstrasse_Paket where id= @id ",
"idField": "ID",
"displayField": "ID",
"jsonField": "JsonData"
},
{
"key": "NLOGApiDoc",
"displayName": "APIDoc",
"sqlList": "SELECT ID, CreatedOn, GUID from edoka_journale.dbo.nlogapidoc where message='Input JSON' and isnull(div,'')<>'' order by Id desc",
"sqlById": "SELECT div as JsonData from edoka_journale.dbo.nlogapidoc where id= @id ",
"idField": "ID",
"displayField": "ID",
"jsonField": "JsonData"
}
]
}

View File

@@ -934,6 +934,7 @@ namespace API_NetFramework.Controllers
}
onbasedoc.attributes.Add(new OnBaseDocUpload.attribute("O2O Dochandle", oba.DocumentHandle.ToString()));
onbasedoc.attributes.Add(new OnBaseDocUpload.attribute("O2O Status", oba.Status.ToString()));
onbasedoc.attributes.Add(new OnBaseDocUpload.attribute("O2O ExternalReference", oba.ReferenceId.ToString()));
ILResponse ilr = new ILResponse();
string debugfilename = System.Configuration.ConfigurationManager.AppSettings["JSONDebugPath"];

File diff suppressed because it is too large Load Diff

View File

@@ -18,6 +18,8 @@ using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using System.Web.Http.Results;
using System.Net.Http.Headers;
using System.Drawing;
using Syncfusion.DocIO.DLS;
namespace OnDocAPI_NetFramework.Controllers
@@ -54,9 +56,19 @@ namespace OnDocAPI_NetFramework.Controllers
}
if (json == null)
return NotFound();
{
using (SqlConnection con = new SqlConnection(_connectionString))
using (SqlCommand cmd = new SqlCommand(
"SELECT JsonObjekt FROM _OnDoc_API_TestScripts WHERE id = @key", con))
{
cmd.Parameters.AddWithValue("@key", key);
con.Open();
json = cmd.ExecuteScalar()?.ToString();
}
if (json == null) return NotFound();
}
return Ok(json);
return Ok(json);
}
// 🔹 JSON SPEICHERN
@@ -69,13 +81,21 @@ namespace OnDocAPI_NetFramework.Controllers
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
IF EXISTS (SELECT 1 FROM _OnDoc_API_TestScripts WHERE id = @key)
UPDATE _OnDoc_API_TestScripts SET JsonObjekt =@json
WHERE id = @key
ELSE
INSERT INTO provdokuments (provdokumentid,erstelltam,geaendertam, JavaScriptObject)
VALUES (@key, getdate(),getdate(),@json)
INSERT INTO _OnDoc_API_TestScripts (id,JsonObjekt)
VALUES (@key, @json)
", con))
//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);
@@ -100,6 +120,8 @@ ELSE
[System.Web.Http.Route("GeneratePDF")]
public async Task<HttpResponseMessage> GeneratePdf(JsonRequestDto dto)
{
if (dto == null || string.IsNullOrWhiteSpace(dto.Json))
return new HttpResponseMessage(HttpStatusCode.BadRequest);
@@ -109,8 +131,8 @@ ELSE
{
Content = new ByteArrayContent(pdfBytes)
};
response.Content.Headers.ContentType =
new MediaTypeHeaderValue("application/pdf");
@@ -120,81 +142,208 @@ ELSE
FileName = $"{dto.Key}.pdf"
};
response.Content.Headers.ContentLength = pdfBytes.Length;
return response;
}
private async Task<byte[]> CallExternalPdfApi(string json)
{
string ownHost = System.Configuration.ConfigurationManager.AppSettings["OwnHost"];
string token = System.Configuration.ConfigurationManager.AppSettings["OwnToken"];
string URL = ownHost + "API/DokumentGenerator";
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";
uri = OwnHost + "/API/DokumentGenerator";
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())
var webRequest = System.Net.WebRequest.Create(URL);
if (webRequest != null)
{
requestStream.Write(data, 0, data.Length);
requestStream.Close();
webRequest.Method = "POST";
webRequest.Timeout = 20000;
webRequest.ContentType = "application/json";
webRequest.Headers["Authorization"] = "Bearer " + token;
using (Stream responseStream = request.GetResponse().GetResponseStream())
using (System.IO.Stream s = webRequest.GetRequestStream())
{
using (var reader = new StreamReader(responseStream))
{
var response = reader.ReadToEnd();
try
{
apiok = JsonConvert.DeserializeObject<APIOK>(response);
var jo = JObject.Parse(response.ToString());
using (System.IO.StreamWriter sw = new System.IO.StreamWriter(s))
sw.Write(json);
}
return Convert.FromBase64String(apiok.file);
}
catch (Exception ex)
{
apireturn = JsonConvert.DeserializeObject<APIErrorSimple>(response);
}
using (System.IO.Stream s = webRequest.GetResponse().GetResponseStream())
{
using (System.IO.StreamReader sr = new System.IO.StreamReader(s))
{
var jsonResponse = sr.ReadToEnd();
System.Diagnostics.Debug.WriteLine(String.Format("Response: {0}", jsonResponse));
}
}
}
return null;
}
catch {
byte[] pdf;
return null;}
catch (Exception ex)
{
System.Diagnostics.Debug.WriteLine(ex.ToString());
}
// 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())
//string URL = ownHost + "API/CreateCLM";
//HttpWebRequest webRequest = HttpWebRequest.Create(URL) as HttpWebRequest;
//webRequest.Method = WebRequestMethods.Http.Post;
//webRequest.
//webRequest.Headers["Authorization"] = "Bearer " + Token;
//try
//{
// rs.CopyTo(ms);
// return ms.ToArray();
// using (HttpWebResponse response = webRequest.GetResponse() as HttpWebResponse)
// {
// if (response.StatusCode == HttpStatusCode.OK)
// {
// StreamReader reader = new StreamReader(response.GetResponseStream());
// string responseContent = reader.ReadToEnd();
// return responseContent;
// }
// else
// {
// Logging.Logging.Error(URL + ": " + response.StatusCode.ToString() + " / " + response.StatusDescription, "Client - GetImage", "");
// return "";
// }
// }
//}
//catch (Exception ex)
//{
// return "";
//}
string uri = ownHost + "/API/CreateCLM";
try
{
using (var client = new HttpClient())
{
client.DefaultRequestHeaders.Authorization =
new AuthenticationHeaderValue("Bearer", token);
client.DefaultRequestHeaders.Accept.Add(
new MediaTypeWithQualityHeaderValue("application/json"));
var content = new StringContent(json, Encoding.UTF8, "application/json");
HttpResponseMessage response = client.PostAsync(uri, content).Result;
string responseContent = response.Content.ReadAsStringAsync().Result;
try
{
// Erfolgsfall
var apiok = JsonConvert.DeserializeObject<APIOK>(responseContent);
if (!string.IsNullOrEmpty(apiok?.file))
{
return Convert.FromBase64String(apiok.file);
}
}
catch
{
// Fehlerfall
var apireturn = JsonConvert.DeserializeObject<APIErrorSimple>(responseContent);
}
}
}
catch (Exception ex)
{
Logging.APIDocLog.Error("API-Call fehlgeschlagen", ex.Message,"","");
}
return null;
//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";
// uri = OwnHost + "/API/DokumentGenerator";
// Logging.APIDocLog.Info("URI", "IIS", "123", uri);
// request = WebRequest.Create(uri);
// request.ContentLength = data.Length;
// request.ContentType = "application/json";
// request.Method = "POST";
// request.Headers["Authorization"] = "Bearer " + System.Configuration.ConfigurationManager.AppSettings["OwnToken"].ToString();
// try
// {
// 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 (Exception ex)
// {
// 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

@@ -71,9 +71,30 @@
border: 1px solid #ccc;
background: #fafafa;
}
html, body { margin:0; padding:0; height:100%; font-family:Arial; background:#f4f6f8; }
.page-header {
background-color: #2563eb;
color: #fff;
padding: 15px 30px;
box-shadow: 0 2px 4px rgba(0,0,0,0.1);
}
.page-header h1 {
margin:0;
font-size:1.8rem;
}
.page-header p {
margin:4px 0 0 0;
font-size:0.95rem;
color:#dbeafe;
}
</style>
</head>
<body>
<div class="page-header">
<h1>OnDoc-DocPreview</h1>
<p></p>
</div>
<div class="toolbar">
<label>Schlüssel:</label>

View File

@@ -1,17 +1,54 @@
using System;
using Newtonsoft.Json;
using SecuringWebApiUsingApiKey.Middleware;
using System;
using System.Collections.Generic;
using System.Configuration;
using System.Data.SqlClient;
using System.Linq;
using System.Runtime.Remoting.Messaging;
using System.Web;
using System.Web.Services;
using System.Web.UI;
using System.Web.UI.WebControls;
using WebApp;
namespace OnDocAPI_NetFramework
namespace WebApp
{
public partial class DocTester : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
[WebMethod]
public static object GetJson(string tableKey, string id, string mode)
{
string _connectionString = StringCipher.Decrypt(ConfigurationManager.ConnectionStrings["DocTesterconnectionstring"].ConnectionString, "i%!k!7pab%bNLdA5hE4pkR4XaB%E^jB3d9tHuQ4pbF&BZjF7SB#WBWit5#HrbJiLrLVm");
string json;
if (mode == "prov")
{
using (SqlConnection con = new SqlConnection(_connectionString))
using (SqlCommand cmd = new SqlCommand(
"SELECT JavaScriptObject FROM ProvDokuments WHERE ProvDokumentid = @key", con))
{
cmd.Parameters.AddWithValue("@key", id);
con.Open();
json = cmd.ExecuteScalar()?.ToString();
}
if (json == null)
return "";
}
json = "";
return json;
}
protected void LoadJson(object sender, EventArgs e)
{
string a = "1";
}
}
}

View File

@@ -1,13 +1,13 @@
//------------------------------------------------------------------------------
// <auto-generated>
// <automatisch generiert>
// 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>
// </automatisch generiert>
//------------------------------------------------------------------------------
namespace OnDocAPI_NetFramework
namespace WebApp
{
@@ -15,12 +15,21 @@ namespace OnDocAPI_NetFramework
{
/// <summary>
/// form1-Steuerelement
/// form1-Steuerelement.
/// </summary>
/// <remarks>
/// Automatisch generiertes Feld.
/// Zum Ändern die Felddeklaration aus der Designerdatei in die CodeBehind-Datei verschieben.
/// Zum Ändern Felddeklaration aus der Designerdatei in eine Code-Behind-Datei verschieben.
/// </remarks>
protected global::System.Web.UI.HtmlControls.HtmlForm form1;
/// <summary>
/// BtnLoad-Steuerelement.
/// </summary>
/// <remarks>
/// Automatisch generiertes Feld.
/// Zum Ändern Felddeklaration aus der Designerdatei in eine Code-Behind-Datei verschieben.
/// </remarks>
protected global::System.Web.UI.WebControls.Button BtnLoad;
}
}

View File

@@ -1,5 +1,6 @@
using System;
using System.Collections.Generic;
using System.Globalization;
using System.Linq;
using System.Text;
using System.Web;
@@ -40,5 +41,49 @@ namespace OnDocAPI_NetFramework.Helper
return lowerCase ? builder.ToString().ToLower() : builder.ToString();
}
public static string NormalizeDateToSystemFormat(string input)
{
if (string.IsNullOrWhiteSpace(input))
return input;
var culture = CultureInfo.CurrentCulture;
string[] knownFormats =
{
"yyyy-MM-dd",
"yyyyMMdd",
"dd.MM.yyyy",
"d.M.yyyy",
"dd/MM/yyyy",
"MM/dd/yyyy",
"yyyy-MM-ddTHH:mm:ss",
"yyyy-MM-dd HH:mm:ss",
"dd.MM.yyyy HH:mm:ss",
"d.M.yyyy HH:mm:ss"
};
DateTime date;
// 1. Exakte Formate
if (DateTime.TryParseExact(
input.Trim(),
knownFormats,
culture,
DateTimeStyles.AllowWhiteSpaces | DateTimeStyles.AssumeLocal,
out date))
{
return date.ToString(culture.DateTimeFormat.ShortDatePattern, culture);
}
// 2. Fallback: freie Erkennung
if (DateTime.TryParse(input, culture, DateTimeStyles.AssumeLocal, out date))
{
return date.ToString(culture.DateTimeFormat.ShortDatePattern, culture);
}
return input;
}
}
}

View File

@@ -34,7 +34,7 @@ namespace API_NetFramework.Models
Logging.DocLog.connectionstring= journalconnectionstring;
Logging.DocLog.init_logger();
db.Get_Tabledata("Select * from nlog_parameter WHERE ID=2", false, true);
db.Get_Tabledata("Select * from nlog_parameter WHERE ID=5", false, true);
Logging.APIDocLog.IntLogLevel = db.dsdaten.Tables[0].Rows[0]["LogLevel"].ToString();
Logging.APIDocLog.IntUserID = db.dsdaten.Tables[0].Rows[0]["LogUserID"].ToString();
Logging.APIDocLog.connectionstring = journalconnectionstring;

View File

@@ -5,12 +5,15 @@ https://go.microsoft.com/fwlink/?LinkID=208121.
<Project>
<PropertyGroup>
<_PublishTargetUrl>E:\Software-Projekte\OnDoc\PubServices\OnDoc</_PublishTargetUrl>
<History>True|2025-10-10T13:41:22.9564966Z||;True|2025-10-10T15:21:08.6905497+02:00||;True|2025-09-19T09:11:10.1942384+02:00||;True|2025-09-19T07:55:35.0537789+02:00||;True|2025-09-18T21:48:40.2991372+02:00||;True|2025-09-18T13:16:54.4124291+02:00||;True|2025-09-18T10:23:27.1134868+02:00||;True|2025-09-18T10:13:34.7405491+02:00||;True|2025-09-17T15:43:19.1968865+02:00||;True|2025-09-17T15:10:10.4467969+02:00||;True|2025-09-17T14:50:26.2708120+02:00||;True|2025-09-17T14:38:16.6713613+02:00||;True|2025-09-17T14:27:41.2827503+02:00||;True|2025-09-16T14:40:20.4155584+02:00||;True|2025-09-14T10:11:07.0112380+02:00||;True|2025-08-25T14:37:08.2725069+02:00||;True|2025-08-25T14:37:00.3337309+02:00||;True|2025-08-19T18:30:42.3338032+02:00||;True|2025-07-29T10:29:50.9928831+02:00||;True|2025-07-28T13:40:59.0692059+02:00||;True|2025-07-28T13:31:38.8352333+02:00||;True|2025-07-28T10:53:02.7503896+02:00||;True|2025-07-28T10:31:56.3061779+02:00||;True|2025-07-28T10:07:32.1199283+02:00||;True|2025-07-27T12:13:11.7201345+02:00||;True|2025-07-23T12:31:01.1003759+02:00||;True|2025-07-23T11:05:44.2579070+02:00||;True|2025-07-23T10:23:34.5089684+02:00||;True|2025-07-23T09:24:38.1420693+02:00||;True|2025-07-23T07:42:17.0908668+02:00||;True|2025-07-21T15:11:25.9501591+02:00||;True|2025-07-21T13:01:29.5444866+02:00||;True|2025-07-21T10:19:00.3579413+02:00||;True|2025-07-21T08:53:15.8022664+02:00||;True|2025-07-21T08:52:13.5024447+02:00||;True|2025-07-20T22:02:07.7503979+02:00||;True|2025-06-18T21:46:07.0469838+02:00||;True|2025-06-18T12:17:09.8417440+02:00||;True|2025-06-18T11:06:43.5839212+02:00||;True|2025-05-06T12:58:55.8720511+02:00||;True|2025-05-05T10:30:22.0524225+02:00||;True|2025-05-05T09:37:27.1162038+02:00||;True|2025-05-04T13:37:01.8401491+02:00||;True|2025-04-14T15:32:13.3923265+02:00||;True|2025-03-27T09:55:34.9678501+01:00||;True|2025-03-27T07:47:45.1288274+01:00||;True|2025-03-26T19:03:04.7550972+01:00||;True|2025-02-27T19:20:43.3755758+01:00||;True|2025-02-27T18:15:21.2843332+01:00||;True|2025-02-25T19:05:51.2823294+01:00||;True|2025-02-25T19:04:29.0810473+01:00||;True|2025-02-21T10:28:09.2279895+01:00||;True|2025-02-21T09:59:33.3258979+01:00||;True|2025-02-12T12:49:01.5618262+01:00||;True|2025-02-09T14:47:25.8660147+01:00||;True|2025-02-09T12:40:23.8730229+01:00||;True|2025-02-05T14:41:27.6196364+01:00||;True|2025-02-04T22:19:44.0470841+01:00||;True|2025-02-04T21:33:03.4165210+01:00||;True|2025-02-02T20:06:51.6815543+01:00||;True|2025-01-20T10:17:24.5425008+01:00||;True|2025-01-19T16:20:16.1036874+01:00||;True|2025-01-19T16:19:11.5720999+01:00||;True|2025-01-12T14:24:46.2550852+01:00||;True|2025-01-12T14:00:23.9205001+01:00||;True|2025-01-07T15:08:24.2722613+01:00||;True|2025-01-06T09:25:16.5522864+01:00||;True|2024-12-22T16:49:54.0855447+01:00||;True|2024-12-08T09:59:39.7127943+01:00||;True|2024-12-08T09:26:52.1924006+01:00||;True|2024-12-02T09:50:13.5426444+01:00||;True|2024-12-01T18:53:55.8128003+01:00||;True|2024-11-26T19:32:44.7379810+01:00||;True|2024-11-25T16:02:25.7013060+01:00||;True|2024-11-24T18:56:32.4321643+01:00||;True|2024-11-24T18:48:11.3494435+01:00||;True|2024-11-24T17:50:10.7679996+01:00||;True|2024-11-22T08:35:58.1296657+01:00||;True|2024-11-13T17:47:13.0183160+01:00||;True|2024-11-13T17:46:36.5183689+01:00||;True|2024-11-11T13:42:23.6578245+01:00||;True|2024-11-09T12:11:00.0777236+01:00||;True|2024-11-09T11:54:51.8503924+01:00||;</History>
<History>True|2026-02-12T08:21:36.9475377Z||;True|2026-02-11T09:09:26.3046534+01:00||;True|2026-02-09T12:16:03.1919757+01:00||;True|2026-02-09T10:52:16.6031577+01:00||;True|2026-02-09T10:43:50.3235884+01:00||;True|2026-02-09T10:32:56.5607905+01:00||;True|2026-02-09T09:28:25.4932552+01:00||;True|2026-02-09T09:11:35.2661821+01:00||;True|2026-02-09T09:09:05.8813514+01:00||;True|2026-02-09T08:54:25.9191904+01:00||;True|2026-02-09T08:41:16.2561697+01:00||;True|2026-02-09T08:22:16.8766070+01:00||;True|2026-02-09T08:09:42.8971751+01:00||;True|2026-02-08T11:04:49.3984275+01:00||;True|2026-02-08T11:00:30.1676134+01:00||;True|2026-02-08T10:02:58.9814683+01:00||;True|2026-02-08T09:53:57.1672910+01:00||;True|2026-02-08T09:50:45.8178289+01:00||;True|2026-02-08T09:47:06.6864472+01:00||;True|2026-02-08T09:44:42.9541012+01:00||;True|2026-02-08T09:44:34.5282303+01:00||;True|2026-02-08T09:42:53.1642218+01:00||;True|2026-02-07T20:47:10.6440687+01:00||;True|2026-02-07T20:45:09.1431081+01:00||;True|2026-02-07T20:43:29.6280085+01:00||;True|2026-02-07T20:42:07.5303009+01:00||;True|2026-02-07T20:40:45.5900631+01:00||;True|2026-02-07T20:39:21.4280903+01:00||;True|2026-02-07T20:37:35.6740413+01:00||;True|2026-02-07T20:35:28.7713095+01:00||;True|2026-02-07T17:44:22.3698834+01:00||;True|2026-02-07T17:41:18.9012786+01:00||;True|2026-02-07T17:38:04.4942892+01:00||;True|2026-02-07T17:36:20.2684316+01:00||;True|2026-02-07T17:34:04.9490195+01:00||;True|2026-02-07T17:22:59.3565852+01:00||;True|2026-02-06T13:40:59.2939609+01:00||;True|2026-02-06T11:18:07.8969690+01:00||;True|2026-02-06T10:59:39.4737336+01:00||;True|2026-02-05T21:32:59.4185291+01:00||;True|2026-02-05T12:13:20.2332661+01:00||;True|2026-02-04T16:35:40.9208916+01:00||;True|2025-10-10T15:41:22.9564966+02:00||;True|2025-10-10T15:21:08.6905497+02:00||;True|2025-09-19T09:11:10.1942384+02:00||;True|2025-09-19T07:55:35.0537789+02:00||;True|2025-09-18T21:48:40.2991372+02:00||;True|2025-09-18T13:16:54.4124291+02:00||;True|2025-09-18T10:23:27.1134868+02:00||;True|2025-09-18T10:13:34.7405491+02:00||;True|2025-09-17T15:43:19.1968865+02:00||;True|2025-09-17T15:10:10.4467969+02:00||;True|2025-09-17T14:50:26.2708120+02:00||;True|2025-09-17T14:38:16.6713613+02:00||;True|2025-09-17T14:27:41.2827503+02:00||;True|2025-09-16T14:40:20.4155584+02:00||;True|2025-09-14T10:11:07.0112380+02:00||;True|2025-08-25T14:37:08.2725069+02:00||;True|2025-08-25T14:37:00.3337309+02:00||;True|2025-08-19T18:30:42.3338032+02:00||;True|2025-07-29T10:29:50.9928831+02:00||;True|2025-07-28T13:40:59.0692059+02:00||;True|2025-07-28T13:31:38.8352333+02:00||;True|2025-07-28T10:53:02.7503896+02:00||;True|2025-07-28T10:31:56.3061779+02:00||;True|2025-07-28T10:07:32.1199283+02:00||;True|2025-07-27T12:13:11.7201345+02:00||;True|2025-07-23T12:31:01.1003759+02:00||;True|2025-07-23T11:05:44.2579070+02:00||;True|2025-07-23T10:23:34.5089684+02:00||;True|2025-07-23T09:24:38.1420693+02:00||;True|2025-07-23T07:42:17.0908668+02:00||;True|2025-07-21T15:11:25.9501591+02:00||;True|2025-07-21T13:01:29.5444866+02:00||;True|2025-07-21T10:19:00.3579413+02:00||;True|2025-07-21T08:53:15.8022664+02:00||;True|2025-07-21T08:52:13.5024447+02:00||;True|2025-07-20T22:02:07.7503979+02:00||;True|2025-06-18T21:46:07.0469838+02:00||;True|2025-06-18T12:17:09.8417440+02:00||;True|2025-06-18T11:06:43.5839212+02:00||;True|2025-05-06T12:58:55.8720511+02:00||;True|2025-05-05T10:30:22.0524225+02:00||;True|2025-05-05T09:37:27.1162038+02:00||;True|2025-05-04T13:37:01.8401491+02:00||;True|2025-04-14T15:32:13.3923265+02:00||;True|2025-03-27T09:55:34.9678501+01:00||;True|2025-03-27T07:47:45.1288274+01:00||;True|2025-03-26T19:03:04.7550972+01:00||;True|2025-02-27T19:20:43.3755758+01:00||;True|2025-02-27T18:15:21.2843332+01:00||;True|2025-02-25T19:05:51.2823294+01:00||;True|2025-02-25T19:04:29.0810473+01:00||;True|2025-02-21T10:28:09.2279895+01:00||;True|2025-02-21T09:59:33.3258979+01:00||;True|2025-02-12T12:49:01.5618262+01:00||;True|2025-02-09T14:47:25.8660147+01:00||;True|2025-02-09T12:40:23.8730229+01:00||;True|2025-02-05T14:41:27.6196364+01:00||;True|2025-02-04T22:19:44.0470841+01:00||;</History>
<LastFailureDetails />
</PropertyGroup>
<ItemGroup>
<File Include="App_Data/TableConfig.json">
<publishTime>02/01/2026 19:14:03</publishTime>
</File>
<File Include="Areas/HelpPage/HelpPage.css">
<publishTime>06/03/2024 09:20:46</publishTime>
<publishTime>03/06/2024 09:20:46</publishTime>
</File>
<File Include="Areas/HelpPage/Views/Help/Api.cshtml">
<publishTime>07/19/2024 12:24:15</publishTime>
@@ -49,7 +52,7 @@ https://go.microsoft.com/fwlink/?LinkID=208121.
<publishTime>07/19/2024 12:24:15</publishTime>
</File>
<File Include="Areas/HelpPage/Views/Help/DisplayTemplates/Samples.cshtml">
<publishTime>06/03/2024 09:20:41</publishTime>
<publishTime>03/06/2024 09:20:41</publishTime>
</File>
<File Include="Areas/HelpPage/Views/Help/DisplayTemplates/SimpleTypeModelDescription.cshtml">
<publishTime>07/19/2024 12:24:15</publishTime>
@@ -64,28 +67,28 @@ https://go.microsoft.com/fwlink/?LinkID=208121.
<publishTime>07/19/2024 12:24:15</publishTime>
</File>
<File Include="Areas/HelpPage/Views/Shared/_Layout.cshtml">
<publishTime>06/03/2024 09:20:40</publishTime>
<publishTime>03/06/2024 09:20:40</publishTime>
</File>
<File Include="Areas/HelpPage/Views/Web.config">
<publishTime>06/03/2024 09:20:40</publishTime>
<publishTime>03/06/2024 09:20:40</publishTime>
</File>
<File Include="Areas/HelpPage/Views/_ViewStart.cshtml">
<publishTime>06/03/2024 09:20:40</publishTime>
<publishTime>03/06/2024 09:20:40</publishTime>
</File>
<File Include="bin/Antlr3.Runtime.dll">
<publishTime>09/10/2013 17:29:20</publishTime>
<publishTime>10/09/2013 17:29:20</publishTime>
</File>
<File Include="bin/Antlr3.Runtime.pdb">
<publishTime>09/10/2013 17:29:20</publishTime>
<publishTime>10/09/2013 17:29:20</publishTime>
</File>
<File Include="bin/arm64/libSkiaSharp.dll">
<publishTime>04/09/2024 19:25:14</publishTime>
<publishTime>09/04/2024 19:25:14</publishTime>
</File>
<File Include="bin/BarcodeLib.dll">
<publishTime>09/25/2025 11:01:16</publishTime>
<publishTime>02/09/2026 10:50:03</publishTime>
</File>
<File Include="bin/BarcodeLib.pdb">
<publishTime>09/25/2025 11:01:16</publishTime>
<publishTime>02/09/2026 10:50:03</publishTime>
</File>
<File Include="bin/CSVNET.dll">
<publishTime>02/28/2025 10:40:17</publishTime>
@@ -94,13 +97,19 @@ https://go.microsoft.com/fwlink/?LinkID=208121.
<publishTime>02/28/2025 10:40:17</publishTime>
</File>
<File Include="bin/Database.dll">
<publishTime>09/23/2025 19:54:51</publishTime>
<publishTime>02/09/2026 08:00:30</publishTime>
</File>
<File Include="bin/Database.dll.config">
<publishTime>09/18/2025 08:15:15</publishTime>
</File>
<File Include="bin/Database.pdb">
<publishTime>09/23/2025 19:54:51</publishTime>
<publishTime>02/09/2026 08:00:30</publishTime>
</File>
<File Include="bin/DataMatrix.net.dll">
<publishTime>01/14/2026 08:32:18</publishTime>
</File>
<File Include="bin/DataMatrix.net.pdb">
<publishTime>01/14/2026 08:32:18</publishTime>
</File>
<File Include="bin/de/System.Net.Http.Formatting.resources.dll">
<publishTime>10/20/2023 22:35:02</publishTime>
@@ -118,7 +127,7 @@ https://go.microsoft.com/fwlink/?LinkID=208121.
<publishTime>10/20/2023 22:35:02</publishTime>
</File>
<File Include="bin/de/System.Web.Optimization.resources.dll">
<publishTime>02/11/2014 16:28:40</publishTime>
<publishTime>11/02/2014 16:28:40</publishTime>
</File>
<File Include="bin/de/System.Web.Razor.resources.dll">
<publishTime>10/20/2023 22:35:02</publishTime>
@@ -133,22 +142,22 @@ https://go.microsoft.com/fwlink/?LinkID=208121.
<publishTime>10/20/2023 22:35:04</publishTime>
</File>
<File Include="bin/DOCGEN.dll">
<publishTime>10/10/2025 15:41:21</publishTime>
<publishTime>02/12/2026 09:21:35</publishTime>
</File>
<File Include="bin/DOCGEN.dll.config">
<publishTime>09/18/2025 10:22:52</publishTime>
</File>
<File Include="bin/DOCGEN.pdb">
<publishTime>10/10/2025 15:41:21</publishTime>
<publishTime>02/12/2026 09:21:35</publishTime>
</File>
<File Include="bin/FastReport.Bars.dll">
<publishTime>11/27/2023 09:49:58</publishTime>
</File>
<File Include="bin/FastReport.Compat.dll">
<publishTime>09/07/2023 11:54:46</publishTime>
<publishTime>07/09/2023 11:54:46</publishTime>
</File>
<File Include="bin/FastReport.DataVisualization.dll">
<publishTime>09/07/2023 12:19:34</publishTime>
<publishTime>07/09/2023 12:19:34</publishTime>
</File>
<File Include="bin/FastReport.dll">
<publishTime>11/27/2023 09:50:34</publishTime>
@@ -157,40 +166,40 @@ https://go.microsoft.com/fwlink/?LinkID=208121.
<publishTime>11/27/2023 09:50:04</publishTime>
</File>
<File Include="bin/Helper.dll">
<publishTime>09/18/2025 08:11:14</publishTime>
<publishTime>12/01/2025 09:36:24</publishTime>
</File>
<File Include="bin/Helper.pdb">
<publishTime>09/18/2025 08:11:14</publishTime>
<publishTime>12/01/2025 09:36:24</publishTime>
</File>
<File Include="bin/libSkiaSharp.dylib">
<publishTime>04/09/2024 18:58:02</publishTime>
<publishTime>09/04/2024 18:58:02</publishTime>
</File>
<File Include="bin/Logging.dll">
<publishTime>09/18/2025 08:11:14</publishTime>
<publishTime>12/01/2025 09:36:24</publishTime>
</File>
<File Include="bin/Logging.dll.config">
<publishTime>09/17/2025 15:09:13</publishTime>
</File>
<File Include="bin/Logging.pdb">
<publishTime>09/18/2025 08:11:14</publishTime>
<publishTime>12/01/2025 09:36:24</publishTime>
</File>
<File Include="bin/Microsoft.AspNetCore.Http.Abstractions.dll">
<publishTime>11/12/2018 18:29:00</publishTime>
<publishTime>12/11/2018 18:29:00</publishTime>
</File>
<File Include="bin/Microsoft.AspNetCore.Http.dll">
<publishTime>01/25/2019 00:18:54</publishTime>
</File>
<File Include="bin/Microsoft.AspNetCore.Http.Features.dll">
<publishTime>11/12/2018 18:28:58</publishTime>
<publishTime>12/11/2018 18:28:58</publishTime>
</File>
<File Include="bin/Microsoft.AspNetCore.WebUtilities.dll">
<publishTime>11/12/2018 18:29:00</publishTime>
<publishTime>12/11/2018 18:29:00</publishTime>
</File>
<File Include="bin/Microsoft.Bcl.AsyncInterfaces.dll">
<publishTime>12/02/2025 00:12:14</publishTime>
<publishTime>02/12/2025 00:12:14</publishTime>
</File>
<File Include="bin/Microsoft.CodeDom.Providers.DotNetCompilerPlatform.dll">
<publishTime>03/05/2023 23:41:40</publishTime>
<publishTime>05/03/2023 23:41:40</publishTime>
</File>
<File Include="bin/Microsoft.Extensions.Configuration.Abstractions.dll">
<publishTime>10/31/2023 16:04:06</publishTime>
@@ -214,16 +223,16 @@ https://go.microsoft.com/fwlink/?LinkID=208121.
<publishTime>10/31/2023 16:00:32</publishTime>
</File>
<File Include="bin/Microsoft.Net.Http.Headers.dll">
<publishTime>11/12/2018 18:28:58</publishTime>
<publishTime>12/11/2018 18:28:58</publishTime>
</File>
<File Include="bin/Microsoft.Web.Infrastructure.dll">
<publishTime>04/11/2022 19:09:46</publishTime>
<publishTime>11/04/2022 19:09:46</publishTime>
</File>
<File Include="bin/Model.dll">
<publishTime>09/23/2025 19:45:21</publishTime>
<publishTime>02/09/2026 08:00:30</publishTime>
</File>
<File Include="bin/Model.pdb">
<publishTime>09/23/2025 19:45:21</publishTime>
<publishTime>02/09/2026 08:00:30</publishTime>
</File>
<File Include="bin/MW6.SDK.dll">
<publishTime>08/19/2014 21:33:57</publishTime>
@@ -235,37 +244,37 @@ https://go.microsoft.com/fwlink/?LinkID=208121.
<publishTime>11/28/2018 00:07:54</publishTime>
</File>
<File Include="bin/Newtonsoft.Json.dll">
<publishTime>03/08/2023 06:09:56</publishTime>
<publishTime>08/03/2023 06:09:56</publishTime>
</File>
<File Include="bin/NLog.Database.dll">
<publishTime>08/10/2025 20:21:44</publishTime>
<publishTime>10/08/2025 20:21:44</publishTime>
</File>
<File Include="bin/NLog.dll">
<publishTime>06/21/2025 15:10:40</publishTime>
</File>
<File Include="bin/OfficePrinter.dll">
<publishTime>09/18/2025 08:11:14</publishTime>
<publishTime>01/01/0001 00:00:00</publishTime>
</File>
<File Include="bin/OfficePrinter.pdb">
<publishTime>09/18/2025 08:11:14</publishTime>
<publishTime>01/01/0001 00:00:00</publishTime>
</File>
<File Include="bin/OfficeToPDFConverter.dll">
<publishTime>02/28/2025 10:40:16</publishTime>
<publishTime>01/01/0001 00:00:00</publishTime>
</File>
<File Include="bin/OfficeToPDFConverter.pdb">
<publishTime>02/28/2025 10:40:16</publishTime>
<publishTime>01/01/0001 00:00:00</publishTime>
</File>
<File Include="bin/OnDocOffice.dll">
<publishTime>10/10/2025 15:41:21</publishTime>
<publishTime>02/12/2026 09:21:35</publishTime>
</File>
<File Include="bin/OnDocOffice.pdb">
<publishTime>10/10/2025 15:41:21</publishTime>
<publishTime>02/12/2026 09:21:35</publishTime>
</File>
<File Include="bin/OnDoc_NetFramework.dll">
<publishTime>10/10/2025 15:41:21</publishTime>
<publishTime>02/12/2026 09:21:36</publishTime>
</File>
<File Include="bin/OnDoc_NetFramework.pdb">
<publishTime>10/10/2025 15:41:21</publishTime>
<publishTime>02/12/2026 09:21:36</publishTime>
</File>
<File Include="bin/Owin.dll">
<publishTime>11/13/2012 13:19:34</publishTime>
@@ -313,10 +322,10 @@ https://go.microsoft.com/fwlink/?LinkID=208121.
<publishTime>02/15/2022 06:21:10</publishTime>
</File>
<File Include="bin/roslyn/Microsoft.DiaSymReader.Native.amd64.dll">
<publishTime>10/05/2021 02:47:54</publishTime>
<publishTime>05/10/2021 02:47:54</publishTime>
</File>
<File Include="bin/roslyn/Microsoft.DiaSymReader.Native.x86.dll">
<publishTime>10/05/2021 02:49:46</publishTime>
<publishTime>05/10/2021 02:49:46</publishTime>
</File>
<File Include="bin/roslyn/Microsoft.Managed.Core.CurrentVersions.targets">
<publishTime>02/15/2022 06:33:08</publishTime>
@@ -367,34 +376,34 @@ https://go.microsoft.com/fwlink/?LinkID=208121.
<publishTime>02/15/2022 06:38:42</publishTime>
</File>
<File Include="bin/Swashbuckle.Core.dll">
<publishTime>07/08/2017 03:30:56</publishTime>
<publishTime>08/07/2017 03:30:56</publishTime>
</File>
<File Include="bin/Syncfusion.Compression.Base.dll">
<publishTime>01/08/2025 12:18:28</publishTime>
<publishTime>08/01/2025 12:18:28</publishTime>
</File>
<File Include="bin/Syncfusion.DocIO.Base.dll">
<publishTime>01/08/2025 12:21:18</publishTime>
<publishTime>08/01/2025 12:21:18</publishTime>
</File>
<File Include="bin/Syncfusion.DocToPDFConverter.Base.dll">
<publishTime>01/08/2025 12:24:08</publishTime>
<publishTime>08/01/2025 12:24:08</publishTime>
</File>
<File Include="bin/Syncfusion.ExcelToPDFConverter.Base.dll">
<publishTime>01/08/2025 12:29:16</publishTime>
<publishTime>08/01/2025 12:29:16</publishTime>
</File>
<File Include="bin/Syncfusion.Licensing.dll">
<publishTime>01/08/2025 12:14:22</publishTime>
<publishTime>08/01/2025 12:14:22</publishTime>
</File>
<File Include="bin/Syncfusion.OfficeChart.Base.dll">
<publishTime>01/08/2025 12:19:40</publishTime>
<publishTime>08/01/2025 12:19:40</publishTime>
</File>
<File Include="bin/Syncfusion.Pdf.Base.dll">
<publishTime>01/08/2025 12:23:02</publishTime>
<publishTime>08/01/2025 12:23:02</publishTime>
</File>
<File Include="bin/Syncfusion.Presentation.Base.dll">
<publishTime>01/08/2025 12:28:16</publishTime>
<publishTime>08/01/2025 12:28:16</publishTime>
</File>
<File Include="bin/Syncfusion.XlsIO.Base.dll">
<publishTime>01/08/2025 12:25:24</publishTime>
<publishTime>08/01/2025 12:25:24</publishTime>
</File>
<File Include="bin/System.Buffers.dll">
<publishTime>02/19/2020 11:05:18</publishTime>
@@ -403,10 +412,10 @@ https://go.microsoft.com/fwlink/?LinkID=208121.
<publishTime>05/15/2018 15:29:36</publishTime>
</File>
<File Include="bin/System.IO.Pipelines.dll">
<publishTime>12/02/2025 00:12:24</publishTime>
<publishTime>02/12/2025 00:12:24</publishTime>
</File>
<File Include="bin/System.Memory.dll">
<publishTime>05/08/2022 05:31:02</publishTime>
<publishTime>08/05/2022 05:31:02</publishTime>
</File>
<File Include="bin/System.Net.Http.Formatting.dll">
<publishTime>10/20/2023 22:33:52</publishTime>
@@ -418,10 +427,10 @@ https://go.microsoft.com/fwlink/?LinkID=208121.
<publishTime>10/23/2021 01:40:18</publishTime>
</File>
<File Include="bin/System.Text.Encodings.Web.dll">
<publishTime>12/02/2025 00:18:34</publishTime>
<publishTime>02/12/2025 00:18:34</publishTime>
</File>
<File Include="bin/System.Text.Json.dll">
<publishTime>12/02/2025 00:18:50</publishTime>
<publishTime>02/12/2025 00:18:50</publishTime>
</File>
<File Include="bin/System.Threading.Tasks.Extensions.dll">
<publishTime>02/19/2020 11:05:18</publishTime>
@@ -430,7 +439,7 @@ https://go.microsoft.com/fwlink/?LinkID=208121.
<publishTime>05/15/2018 15:29:52</publishTime>
</File>
<File Include="bin/System.Web.Cors.dll">
<publishTime>10/01/2013 22:54:22</publishTime>
<publishTime>01/10/2013 22:54:22</publishTime>
</File>
<File Include="bin/System.Web.Helpers.dll">
<publishTime>10/20/2023 22:33:58</publishTime>
@@ -438,6 +447,9 @@ https://go.microsoft.com/fwlink/?LinkID=208121.
<File Include="bin/System.Web.Http.dll">
<publishTime>10/20/2023 22:34:06</publishTime>
</File>
<File Include="bin/System.Web.Http.Tracing.dll">
<publishTime>10/20/2023 22:34:08</publishTime>
</File>
<File Include="bin/System.Web.Http.WebHost.dll">
<publishTime>10/20/2023 22:34:08</publishTime>
</File>
@@ -445,7 +457,7 @@ https://go.microsoft.com/fwlink/?LinkID=208121.
<publishTime>01/01/0001 00:00:00</publishTime>
</File>
<File Include="bin/System.Web.Optimization.dll">
<publishTime>02/11/2014 15:26:04</publishTime>
<publishTime>11/02/2014 15:26:04</publishTime>
</File>
<File Include="bin/System.Web.Razor.dll">
<publishTime>10/20/2023 22:33:48</publishTime>
@@ -460,10 +472,10 @@ https://go.microsoft.com/fwlink/?LinkID=208121.
<publishTime>10/20/2023 22:33:58</publishTime>
</File>
<File Include="bin/vbBarcodes.dll">
<publishTime>09/17/2025 15:09:26</publishTime>
<publishTime>01/06/2026 12:51:01</publishTime>
</File>
<File Include="bin/vbBarcodes.pdb">
<publishTime>09/17/2025 15:09:26</publishTime>
<publishTime>01/06/2026 12:51:01</publishTime>
</File>
<File Include="bin/VBFileManagement.dll">
<publishTime>09/18/2025 08:11:14</publishTime>
@@ -472,199 +484,208 @@ https://go.microsoft.com/fwlink/?LinkID=208121.
<publishTime>09/18/2025 08:11:14</publishTime>
</File>
<File Include="bin/VBOffice.dll">
<publishTime>09/17/2025 15:09:26</publishTime>
<publishTime>01/06/2026 12:51:01</publishTime>
</File>
<File Include="bin/VBOffice.pdb">
<publishTime>09/17/2025 15:09:26</publishTime>
<publishTime>01/06/2026 12:51:01</publishTime>
</File>
<File Include="bin/Versandstrasse.dll">
<publishTime>09/29/2025 11:36:48</publishTime>
<publishTime>01/06/2026 12:51:01</publishTime>
</File>
<File Include="bin/Versandstrasse.pdb">
<publishTime>09/29/2025 11:36:48</publishTime>
<publishTime>01/06/2026 12:51:01</publishTime>
</File>
<File Include="bin/WebActivatorEx.dll">
<publishTime>10/05/2016 15:11:52</publishTime>
<publishTime>05/10/2016 15:11:52</publishTime>
</File>
<File Include="bin/WebGrease.dll">
<publishTime>01/23/2014 13:57:34</publishTime>
</File>
<File Include="bin/x64/libSkiaSharp.dll">
<publishTime>04/09/2024 19:24:38</publishTime>
<publishTime>09/04/2024 19:24:38</publishTime>
</File>
<File Include="bin/x86/libSkiaSharp.dll">
<publishTime>04/09/2024 19:24:38</publishTime>
<publishTime>09/04/2024 19:24:38</publishTime>
</File>
<File Include="Content/bootstrap-grid.css">
<publishTime>06/03/2024 09:16:17</publishTime>
<publishTime>03/06/2024 09:16:17</publishTime>
</File>
<File Include="Content/bootstrap-grid.css.map">
<publishTime>06/03/2024 09:16:16</publishTime>
<publishTime>03/06/2024 09:16:16</publishTime>
</File>
<File Include="Content/bootstrap-grid.min.css">
<publishTime>06/03/2024 09:16:16</publishTime>
<publishTime>03/06/2024 09:16:16</publishTime>
</File>
<File Include="Content/bootstrap-grid.min.css.map">
<publishTime>06/03/2024 09:16:16</publishTime>
<publishTime>03/06/2024 09:16:16</publishTime>
</File>
<File Include="Content/bootstrap-grid.rtl.css">
<publishTime>06/03/2024 09:16:16</publishTime>
<publishTime>03/06/2024 09:16:16</publishTime>
</File>
<File Include="Content/bootstrap-grid.rtl.css.map">
<publishTime>06/03/2024 09:16:16</publishTime>
<publishTime>03/06/2024 09:16:16</publishTime>
</File>
<File Include="Content/bootstrap-grid.rtl.min.css">
<publishTime>06/03/2024 09:16:16</publishTime>
<publishTime>03/06/2024 09:16:16</publishTime>
</File>
<File Include="Content/bootstrap-grid.rtl.min.css.map">
<publishTime>06/03/2024 09:16:16</publishTime>
<publishTime>03/06/2024 09:16:16</publishTime>
</File>
<File Include="Content/bootstrap-reboot.css">
<publishTime>06/03/2024 09:16:16</publishTime>
<publishTime>03/06/2024 09:16:16</publishTime>
</File>
<File Include="Content/bootstrap-reboot.css.map">
<publishTime>06/03/2024 09:16:16</publishTime>
<publishTime>03/06/2024 09:16:16</publishTime>
</File>
<File Include="Content/bootstrap-reboot.min.css">
<publishTime>06/03/2024 09:16:16</publishTime>
<publishTime>03/06/2024 09:16:16</publishTime>
</File>
<File Include="Content/bootstrap-reboot.min.css.map">
<publishTime>06/03/2024 09:16:16</publishTime>
<publishTime>03/06/2024 09:16:16</publishTime>
</File>
<File Include="Content/bootstrap-reboot.rtl.css">
<publishTime>06/03/2024 09:16:16</publishTime>
<publishTime>03/06/2024 09:16:16</publishTime>
</File>
<File Include="Content/bootstrap-reboot.rtl.css.map">
<publishTime>06/03/2024 09:16:16</publishTime>
<publishTime>03/06/2024 09:16:16</publishTime>
</File>
<File Include="Content/bootstrap-reboot.rtl.min.css">
<publishTime>06/03/2024 09:16:16</publishTime>
<publishTime>03/06/2024 09:16:16</publishTime>
</File>
<File Include="Content/bootstrap-reboot.rtl.min.css.map">
<publishTime>06/03/2024 09:16:16</publishTime>
<publishTime>03/06/2024 09:16:16</publishTime>
</File>
<File Include="Content/bootstrap-utilities.css">
<publishTime>06/03/2024 09:16:15</publishTime>
<publishTime>03/06/2024 09:16:15</publishTime>
</File>
<File Include="Content/bootstrap-utilities.css.map">
<publishTime>06/03/2024 09:16:15</publishTime>
<publishTime>03/06/2024 09:16:15</publishTime>
</File>
<File Include="Content/bootstrap-utilities.min.css">
<publishTime>06/03/2024 09:16:15</publishTime>
<publishTime>03/06/2024 09:16:15</publishTime>
</File>
<File Include="Content/bootstrap-utilities.min.css.map">
<publishTime>06/03/2024 09:16:15</publishTime>
<publishTime>03/06/2024 09:16:15</publishTime>
</File>
<File Include="Content/bootstrap-utilities.rtl.css">
<publishTime>06/03/2024 09:16:15</publishTime>
<publishTime>03/06/2024 09:16:15</publishTime>
</File>
<File Include="Content/bootstrap-utilities.rtl.css.map">
<publishTime>06/03/2024 09:16:15</publishTime>
<publishTime>03/06/2024 09:16:15</publishTime>
</File>
<File Include="Content/bootstrap-utilities.rtl.min.css">
<publishTime>06/03/2024 09:16:15</publishTime>
<publishTime>03/06/2024 09:16:15</publishTime>
</File>
<File Include="Content/bootstrap-utilities.rtl.min.css.map">
<publishTime>06/03/2024 09:16:15</publishTime>
<publishTime>03/06/2024 09:16:15</publishTime>
</File>
<File Include="Content/bootstrap.css">
<publishTime>06/03/2024 09:16:15</publishTime>
<publishTime>03/06/2024 09:16:15</publishTime>
</File>
<File Include="Content/bootstrap.css.map">
<publishTime>06/03/2024 09:16:15</publishTime>
<publishTime>03/06/2024 09:16:15</publishTime>
</File>
<File Include="Content/bootstrap.min.css">
<publishTime>06/03/2024 09:16:15</publishTime>
<publishTime>03/06/2024 09:16:15</publishTime>
</File>
<File Include="Content/bootstrap.min.css.map">
<publishTime>06/03/2024 09:16:15</publishTime>
<publishTime>03/06/2024 09:16:15</publishTime>
</File>
<File Include="Content/bootstrap.rtl.css">
<publishTime>06/03/2024 09:16:15</publishTime>
<publishTime>03/06/2024 09:16:15</publishTime>
</File>
<File Include="Content/bootstrap.rtl.css.map">
<publishTime>06/03/2024 09:16:15</publishTime>
<publishTime>03/06/2024 09:16:15</publishTime>
</File>
<File Include="Content/bootstrap.rtl.min.css">
<publishTime>06/03/2024 09:16:15</publishTime>
<publishTime>03/06/2024 09:16:15</publishTime>
</File>
<File Include="Content/bootstrap.rtl.min.css.map">
<publishTime>06/03/2024 09:16:14</publishTime>
<publishTime>03/06/2024 09:16:14</publishTime>
</File>
<File Include="Content/Site.css">
<publishTime>06/03/2024 08:11:55</publishTime>
<publishTime>03/06/2024 08:11:55</publishTime>
</File>
<File Include="DocTester.aspx">
<publishTime>01/02/2026 20:46:24</publishTime>
</File>
<File Include="dt.aspx">
<publishTime>02/08/2026 09:59:34</publishTime>
</File>
<File Include="favicon.ico">
<publishTime>06/03/2024 08:11:55</publishTime>
<publishTime>03/06/2024 08:11:55</publishTime>
</File>
<File Include="Global.asax">
<publishTime>07/19/2024 12:25:43</publishTime>
</File>
<File Include="Scripts/bootstrap.bundle.js">
<publishTime>06/03/2024 09:16:14</publishTime>
<publishTime>03/06/2024 09:16:14</publishTime>
</File>
<File Include="Scripts/bootstrap.bundle.js.map">
<publishTime>06/03/2024 09:16:14</publishTime>
<publishTime>03/06/2024 09:16:14</publishTime>
</File>
<File Include="Scripts/bootstrap.bundle.min.js">
<publishTime>06/03/2024 09:16:14</publishTime>
<publishTime>03/06/2024 09:16:14</publishTime>
</File>
<File Include="Scripts/bootstrap.bundle.min.js.map">
<publishTime>06/03/2024 09:16:14</publishTime>
<publishTime>03/06/2024 09:16:14</publishTime>
</File>
<File Include="Scripts/bootstrap.esm.js">
<publishTime>06/03/2024 09:16:14</publishTime>
<publishTime>03/06/2024 09:16:14</publishTime>
</File>
<File Include="Scripts/bootstrap.esm.js.map">
<publishTime>06/03/2024 09:16:14</publishTime>
<publishTime>03/06/2024 09:16:14</publishTime>
</File>
<File Include="Scripts/bootstrap.esm.min.js">
<publishTime>06/03/2024 09:16:14</publishTime>
<publishTime>03/06/2024 09:16:14</publishTime>
</File>
<File Include="Scripts/bootstrap.esm.min.js.map">
<publishTime>06/03/2024 09:16:14</publishTime>
<publishTime>03/06/2024 09:16:14</publishTime>
</File>
<File Include="Scripts/bootstrap.js">
<publishTime>06/03/2024 09:16:14</publishTime>
<publishTime>03/06/2024 09:16:14</publishTime>
</File>
<File Include="Scripts/bootstrap.js.map">
<publishTime>06/03/2024 09:16:14</publishTime>
<publishTime>03/06/2024 09:16:14</publishTime>
</File>
<File Include="Scripts/bootstrap.min.js">
<publishTime>06/03/2024 09:16:14</publishTime>
<publishTime>03/06/2024 09:16:14</publishTime>
</File>
<File Include="Scripts/bootstrap.min.js.map">
<publishTime>06/03/2024 09:16:13</publishTime>
<publishTime>03/06/2024 09:16:13</publishTime>
</File>
<File Include="Scripts/jquery-3.7.1.js">
<publishTime>06/03/2024 09:16:17</publishTime>
<publishTime>03/06/2024 09:16:17</publishTime>
</File>
<File Include="Scripts/jquery-3.7.1.min.js">
<publishTime>06/03/2024 09:16:17</publishTime>
<publishTime>03/06/2024 09:16:17</publishTime>
</File>
<File Include="Scripts/jquery-3.7.1.min.map">
<publishTime>06/03/2024 09:16:17</publishTime>
<publishTime>03/06/2024 09:16:17</publishTime>
</File>
<File Include="Scripts/jquery-3.7.1.slim.js">
<publishTime>06/03/2024 09:16:17</publishTime>
<publishTime>03/06/2024 09:16:17</publishTime>
</File>
<File Include="Scripts/jquery-3.7.1.slim.min.js">
<publishTime>06/03/2024 09:16:17</publishTime>
<publishTime>03/06/2024 09:16:17</publishTime>
</File>
<File Include="Scripts/jquery-3.7.1.slim.min.map">
<publishTime>06/03/2024 09:16:17</publishTime>
<publishTime>03/06/2024 09:16:17</publishTime>
</File>
<File Include="Scripts/modernizr-2.8.3.js">
<publishTime>06/03/2024 08:12:04</publishTime>
<publishTime>03/06/2024 08:12:04</publishTime>
</File>
<File Include="SelectTable.aspx">
<publishTime>02/01/2026 13:52:15</publishTime>
</File>
<File Include="Views/Home/APIGenerator.cshtml">
<publishTime>10/01/2024 20:21:44</publishTime>
<publishTime>01/10/2024 20:21:44</publishTime>
</File>
<File Include="Views/Home/Index.cshtml">
<publishTime>04/14/2025 18:12:39</publishTime>
</File>
<File Include="Views/Shared/Error.cshtml">
<publishTime>06/03/2024 08:11:55</publishTime>
<publishTime>03/06/2024 08:11:55</publishTime>
</File>
<File Include="Views/Shared/_Layout.cshtml">
<publishTime>04/14/2025 18:11:03</publishTime>
@@ -673,10 +694,10 @@ https://go.microsoft.com/fwlink/?LinkID=208121.
<publishTime>07/19/2024 12:25:43</publishTime>
</File>
<File Include="Views/_ViewStart.cshtml">
<publishTime>06/03/2024 08:11:55</publishTime>
<publishTime>03/06/2024 08:11:55</publishTime>
</File>
<File Include="Web.config">
<publishTime>10/10/2025 15:21:07</publishTime>
<publishTime>02/05/2026 21:32:58</publishTime>
</File>
</ItemGroup>
</Project>

View File

@@ -0,0 +1,143 @@
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="SelectTable.aspx.cs" Inherits="WebApp.SelectTable" %>
<!DOCTYPE html>
<html>
<head runat="server">
<%--<title>Daten & JSON Editor</title>--%>
<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>
html, body { margin:0; padding:0; height:100%; font-family:Arial; background:#f4f6f8; }
.page-header {
background-color: #2563eb;
color: #fff;
padding: 15px 30px;
box-shadow: 0 2px 4px rgba(0,0,0,0.1);
}
.page-header h1 {
margin:0;
font-size:1.8rem;
}
.page-header p {
margin:4px 0 0 0;
font-size:0.95rem;
color:#dbeafe;
}
.layout { display:flex; height:calc(100% - 70px); } /* 70px für header */
.left {
width:45%;
padding:20px;
background:#fff;
border-right:1px solid #ddd;
overflow:auto;
}
.right {
width:55%;
padding:0;
height:100%;
display:flex;
flex-direction: column;
}
#editor {
flex:1;
width:100%;
}
select { width:100%; padding:8px; margin-bottom:12px; }
table { width:100%; border-collapse:collapse; font-size:14px; }
th, td { padding:8px; border-bottom:1px solid #e5e7eb; }
tr:hover { background:#f9fafb; }
.pager a, .pager span { padding:5px 9px; border:1px solid #ddd; border-radius:5px; margin-left:4px; text-decoration:none; font-size:13px; }
.pager span { background:#2563eb; color:#fff; border-color:#2563eb; }
a.open { color:#2563eb; cursor:pointer; text-decoration:none; }
a.open:hover { text-decoration:underline; }
</style>
</head>
<body>
<!-- TITEL -->
<div class="page-header">
<h1>OnDoc-Json-Viewer</h1>
<p>Tabellen auswählen, Datensätze ansehen und JSON anzeigen</p>
</div>
<!-- LAYOUT -->
<div class="layout">
<form runat="server" class="left">
<asp:ScriptManager ID="ScriptManager1" runat="server" EnablePageMethods="true" />
<h2>Tabellen & Datensätze</h2>
<asp:DropDownList
ID="ddlTables"
runat="server"
AutoPostBack="true"
OnSelectedIndexChanged="ddlTables_SelectedIndexChanged" />
<asp:GridView
ID="gvData"
runat="server"
AutoGenerateColumns="true"
AllowPaging="true"
PageSize="20"
PagerStyle-CssClass="pager"
OnPageIndexChanging="gvData_PageIndexChanging"
OnRowCreated="gvData_RowCreated"
OnRowDataBound="gvData_RowDataBound" />
</form>
<!-- ACE EDITOR außerhalb des Form-Tags -->
<div class="right">
<div id="editor"></div>
</div>
</div>
<script>
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);
//let editor;
//$(function () {
// 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);
// editor.commands.addCommand({
// name: "find",
// bindKey: { win: "Ctrl-F", mac: "Command-F" },
// exec: function (ed) {
// ace.require("ace/ext/searchbox").Search(ed);
// }
// });
//});
function loadJson(tableKey, id) {
editor.setValue("// lade JSON ...", -1);
PageMethods.GetJson(
tableKey,
id,
function (result) {
editor.setValue(result, -1);
},
function (err) {
editor.setValue(JSON.stringify({ error: err.get_message() }, null, 2), -1);
}
);
}
</script>
</body>
</html>

View File

@@ -0,0 +1,156 @@
using System;
using System.Data;
using System.Data.SqlClient;
using System.Linq;
using System.Web.Services;
using System.Web.UI.WebControls;
using System.Web;
using Newtonsoft.Json;
using System.Web.UI;
using SecuringWebApiUsingApiKey.Middleware;
using System.Configuration;
using Model;
namespace WebApp
{
public partial class SelectTable : System.Web.UI.Page
{
private string ConnectionString = StringCipher.Decrypt(ConfigurationManager.ConnectionStrings["DocTesterconnectionstring"].ConnectionString, "i%!k!7pab%bNLdA5hE4pkR4XaB%E^jB3d9tHuQ4pbF&BZjF7SB#WBWit5#HrbJiLrLVm");
private TableConfig CurrentTable =>
TableConfigProvider.LoadConfig().Tables.FirstOrDefault(t => t.Key == ddlTables.SelectedValue);
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
BindTables();
}
private void BindTables()
{
var config = TableConfigProvider.LoadConfig();
ddlTables.DataSource = config.Tables;
ddlTables.DataTextField = "DisplayName";
ddlTables.DataValueField = "Key";
ddlTables.DataBind();
ddlTables.Items.Insert(0, "-- bitte wählen --");
}
protected void ddlTables_SelectedIndexChanged(object sender, EventArgs e)
{
gvData.PageIndex = 0;
LoadTableData();
}
protected void gvData_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
gvData.PageIndex = e.NewPageIndex;
LoadTableData();
}
private void LoadTableData()
{
if (ddlTables.SelectedIndex <= 0 || CurrentTable == null) return;
var cfg = CurrentTable;
using (var con = new SqlConnection(ConnectionString))
using (var cmd = new SqlCommand(cfg.SqlList, con))
{
var dt = new DataTable();
con.Open();
dt.Load(cmd.ExecuteReader());
gvData.DataSource = dt;
gvData.DataBind();
}
}
protected void gvData_RowCreated(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.Header)
e.Row.Cells.Add(new TableHeaderCell { Text = "Details" });
}
protected void gvData_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType != DataControlRowType.DataRow) return;
var cfg = CurrentTable;
if (cfg == null) return;
var id = DataBinder.Eval(e.Row.DataItem, cfg.IdField)?.ToString();
if (string.IsNullOrEmpty(id)) return;
string tableKeyJs = HttpUtility.JavaScriptStringEncode(cfg.Key);
string idJs = HttpUtility.JavaScriptStringEncode(id);
var cell = new TableCell();
var lnk = new LinkButton
{
Text = "Öffnen",
CssClass = "open"
};
lnk.OnClientClick = $"loadJson('{tableKeyJs}','{idJs}'); return false;";
cell.Controls.Add(lnk);
e.Row.Cells.Add(cell);
}
[WebMethod]
//public static object GetJson(string table, string id)
//{
// var config = TableConfigProvider.LoadConfig();
// var cfg = config.Tables.FirstOrDefault(t => t.Key == table);
// if (cfg == null) return new { error = "Tabelle nicht gefunden" };
// using (var con = new SqlConnection(StringCipher.Decrypt(ConfigurationManager.ConnectionStrings["DocTesterconnectionstring"].ConnectionString, "i%!k!7pab%bNLdA5hE4pkR4XaB%E^jB3d9tHuQ4pbF&BZjF7SB#WBWit5#HrbJiLrLVm")))
// using (var cmd = new SqlCommand(cfg.SqlById, con))
// {
// cmd.Parameters.AddWithValue("@id", id);
// con.Open();
// var json = cmd.ExecuteScalar()?.ToString();
// if (string.IsNullOrEmpty(json))
// return new { error = "Datensatz nicht gefunden" };
// return JsonConvert.DeserializeObject(json);
// }
//}
public static object GetJson(string table, string id)
{
var config = TableConfigProvider.LoadConfig();
var cfg = config.Tables.FirstOrDefault(t => t.Key == table);
if (cfg == null) return"Tabelle nicht gefunden" ;
using (var con = new SqlConnection(StringCipher.Decrypt(ConfigurationManager.ConnectionStrings["DocTesterconnectionstring"].ConnectionString, "i%!k!7pab%bNLdA5hE4pkR4XaB%E^jB3d9tHuQ4pbF&BZjF7SB#WBWit5#HrbJiLrLVm")))
using (var cmd = new SqlCommand(cfg.SqlById, con))
{
cmd.Parameters.AddWithValue("@id", id);
con.Open();
string json = cmd.ExecuteScalar()?.ToString();
if (string.IsNullOrEmpty(json)) return "Datensatz nicht gefunden" ;
try
{
if (json.TrimStart().StartsWith("\""))
{
json = JsonConvert.DeserializeObject<string>(json);
}
Versandpaket vp = new Versandpaket();
vp = JsonConvert.DeserializeObject<Versandpaket>(json);
vp.finaldoc = "ABCD...";
foreach (Versanddokument vd in vp.Dokument)
{
vd.dokument = "ABC...";
}
//vp.Dokument.Clear();
json = JsonConvert.SerializeObject(vp, Formatting.Indented);
}
catch (Exception ex) { }
// JSON in Objekt parsen, damit PageMethods es korrekt als JS-Objekt liefert
return (json);
}
}
}
}

View File

@@ -0,0 +1,44 @@
//------------------------------------------------------------------------------
// <automatisch generiert>
// 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.
// </automatisch generiert>
//------------------------------------------------------------------------------
namespace WebApp
{
public partial class SelectTable
{
/// <summary>
/// ScriptManager1-Steuerelement.
/// </summary>
/// <remarks>
/// Automatisch generiertes Feld.
/// Zum Ändern Felddeklaration aus der Designerdatei in eine Code-Behind-Datei verschieben.
/// </remarks>
protected global::System.Web.UI.ScriptManager ScriptManager1;
/// <summary>
/// ddlTables-Steuerelement.
/// </summary>
/// <remarks>
/// Automatisch generiertes Feld.
/// Zum Ändern Felddeklaration aus der Designerdatei in eine Code-Behind-Datei verschieben.
/// </remarks>
protected global::System.Web.UI.WebControls.DropDownList ddlTables;
/// <summary>
/// gvData-Steuerelement.
/// </summary>
/// <remarks>
/// Automatisch generiertes Feld.
/// Zum Ändern Felddeklaration aus der Designerdatei in eine Code-Behind-Datei verschieben.
/// </remarks>
protected global::System.Web.UI.WebControls.GridView gvData;
}
}

View File

@@ -0,0 +1,46 @@
using Newtonsoft.Json;
using System.IO;
using System.Web;
namespace WebApp
{
public class TableConfigRoot
{
public System.Collections.Generic.List<TableConfig> Tables { get; set; }
}
public class TableConfig
{
public string Key { get; set; }
public string DisplayName { get; set; }
public string SqlList { get; set; }
public string SqlById { get; set; }
public string IdField { get; set; }
public string DisplayField { get; set; }
public string JsonField { get; set; }
}
public static class TableConfigProvider
{
private static TableConfigRoot _cache;
public static TableConfigRoot LoadConfig()
{
if (_cache != null)
return _cache;
// ✅ HttpContext.Current verwenden statt Context
string path = HttpContext.Current.Server.MapPath("~/App_Data/TableConfig.json");
if (!File.Exists(path))
throw new FileNotFoundException("TableConfig.json nicht gefunden", path);
string json = File.ReadAllText(path);
_cache = JsonConvert.DeserializeObject<TableConfigRoot>(json);
if (_cache.Tables == null) _cache.Tables = new System.Collections.Generic.List<TableConfig>();
return _cache;
}
public static void ResetCache() => _cache = null;
}
}

View File

@@ -47,6 +47,7 @@
<add key="CLMKube" value="0"/>
<add key="CLMSaveOnDoc" value="True"/>
<add key ="DecTestConnString"/>
<add key ="OwnToken" value="pZkuG6l6ORCEckqQimPK58PO1A9EnkMtL5oCgRX9WiWnD4xeH7ikGzhWnTBy/vk8J4Iiz8gCSx9uFHA4+DvITG0roO97sk82d/0BCjVlwLWINpXlJfGYEF3X96AdoCQvb3ruwv/tVqEHsSU5aNfyxBAe+EhLTHQ8t7ysgJZWh98="/>
</appSettings>
<connectionStrings>

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

@@ -47,6 +47,7 @@
<add key="CLMKube" value="0"/>
<add key="CLMSaveOnDoc" value="True"/>
<add key ="DecTestConnString"/>
<add key ="OwnToken" value="pZkuG6l6ORCEckqQimPK58PO1A9EnkMtL5oCgRX9WiWnD4xeH7ikGzhWnTBy/vk8J4Iiz8gCSx9uFHA4+DvITG0roO97sk82d/0BCjVlwLWINpXlJfGYEF3X96AdoCQvb3ruwv/tVqEHsSU5aNfyxBAe+EhLTHQ8t7ysgJZWh98="/>
</appSettings>
<connectionStrings>

113
API_NetFramework/dt.aspx Normal file
View File

@@ -0,0 +1,113 @@
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="dt.aspx.cs" Inherits="OnDocAPI_NetFramework.dt" %>
<!DOCTYPE html>
<html>
<head runat="server">
<title>JSON Editor</title>
<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>
html, body { height:100%; margin:0; font-family:Arial; }
.toolbar {
padding: 10px;
background: #f5f5f5;
border-bottom: 1px solid #ccc;
}
.content {
display:flex;
height:calc(100% - 50px);
}
#editor {
width:50%;
height:100%;
}
iframe {
width:50%;
border:none;
}
.page-header {
background-color: #2563eb;
color: #fff;
padding: 15px 30px;
box-shadow: 0 2px 4px rgba(0,0,0,0.1);
}
.page-header h1 {
margin:0;
font-size:1.8rem;
}
.page-header p {
margin:4px 0 0 0;
font-size:0.95rem;
color:#dbeafe;
}
</style>
</head>
<body>
<form runat="server">
<div class="page-header">
<h1>OnDoc-DocPreview</h1>
</div>
<!-- Toolbar -->
<div class="toolbar">
Schlüssel:
<asp:TextBox ID="txtKey" runat="server" />
<asp:Button ID="btnLoad" runat="server"
Text="Laden"
OnClick="btnLoad_Click" />
<asp:Button ID="btnSave" runat="server"
Text="Speichern"
OnClick="btnSave_Click" />
<asp:Button ID="btnPdf" runat="server"
Text="PDF erstellen"
OnClick="btnPdf_Click" />
</div>
<!-- HiddenField für JSON -->
<asp:HiddenField ID="hfJson" runat="server" />
<iframe id="pdfFrame" runat="server"></iframe>
</form>
<div class="content">
<div id="editor"></div>
</div>
<script>
var editor = ace.edit("editor");
editor.session.setMode("ace/mode/json");
//editor.setTheme("ace/theme/tomorrow");
//editor.session.setMode("ace/mode/json");
//editor.setShowPrintMargin(false);
//editor.session.setTabSize(2);
//editor.session.setUseSoftTabs(true);
// Sync HiddenField bei PostBack
document.forms[0].onsubmit = function () {
document.getElementById("<%= hfJson.ClientID %>").value =
editor.getValue();
};
// JSON vom Server laden
editor.setValue(document.getElementById("<%= hfJson.ClientID %>").value || "", -1);
</script>
</body>
</html>

177
API_NetFramework/dt.aspx.cs Normal file
View File

@@ -0,0 +1,177 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System;
using System.Configuration;
using System.Data.SqlClient;
using SecuringWebApiUsingApiKey.Middleware;
using Model;
using Newtonsoft.Json.Linq;
using Newtonsoft.Json;
using System.IO;
using System.Net;
using System.Text;
namespace OnDocAPI_NetFramework
{
public partial class dt : System.Web.UI.Page
{
string _connectionString = StringCipher.Decrypt(ConfigurationManager.ConnectionStrings["DocTesterconnectionstring"].ConnectionString, "i%!k!7pab%bNLdA5hE4pkR4XaB%E^jB3d9tHuQ4pbF&BZjF7SB#WBWit5#HrbJiLrLVm");
protected void Page_Load(object sender, EventArgs e)
{
}
private void ResetPdf()
{
pdfFrame.Attributes["src"] = "about:blank";
}
protected void btnLoad_Click(object sender, EventArgs e)
{
ResetPdf();
string json = "";
using (var con = new SqlConnection(_connectionString))
using (SqlCommand cmd = new SqlCommand(
"SELECT JavaScriptObject FROM ProvDokuments WHERE ProvDokumentid = @key", con))
{
cmd.Parameters.AddWithValue("@key", txtKey.Text);
con.Open();
json = cmd.ExecuteScalar()?.ToString();
}
if (json == null)
{
using (SqlConnection con = new SqlConnection(_connectionString))
using (SqlCommand cmd = new SqlCommand(
"SELECT JsonObjekt FROM _OnDoc_API_TestScripts WHERE id = @key", con))
{
cmd.Parameters.AddWithValue("@key", txtKey.Text);
con.Open();
json = cmd.ExecuteScalar()?.ToString();
}
}
hfJson.Value = json;
}
protected void btnSave_Click(object sender, EventArgs e)
{
using (SqlConnection con = new SqlConnection(_connectionString))
using (SqlCommand cmd = new SqlCommand(@"
IF EXISTS (SELECT 1 FROM _OnDoc_API_TestScripts WHERE id = @key)
UPDATE _OnDoc_API_TestScripts SET JsonObjekt =@json
WHERE id = @key
ELSE
INSERT INTO _OnDoc_API_TestScripts (id,JsonObjekt)
VALUES (@key, @json)
", con))
//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", txtKey.Text);
cmd.Parameters.AddWithValue("@json", hfJson.Value);
con.Open();
cmd.ExecuteNonQuery();
}
}
protected void btnPdf_Click(object sender, EventArgs e)
{
//byte[] pdf = PdfGenerator.CreatePdfFromJson(hfJson.Value);
//string base64 = Convert.ToBase64String(pdf);
//pdfFrame.Attributes["src"] =
// "data:application/pdf;base64," + base64;
try
{
APIErrorSimple apireturn = new APIErrorSimple();
APIOK apiok = new APIOK();
;
string jsonstring = hfJson.Value;
WebRequest request;
var data = Encoding.UTF8.GetBytes(jsonstring);
string OwnHost = System.Configuration.ConfigurationManager.AppSettings["OwnHost"].ToString();
string uri = OwnHost + "/API/CreateCLM";
uri = OwnHost + "/API/DokumentGenerator";
request = WebRequest.Create(uri);
request.ContentLength = data.Length;
request.ContentType = "application/json";
request.Method = "POST";
request.Headers["Authorization"] = "Bearer " + System.Configuration.ConfigurationManager.AppSettings["OwnToken"].ToString();
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());
byte[] pdf = null;
pdfFrame.Attributes["src"] =
"data:application/pdf;base64," + apiok.file;
}
catch (Exception ex)
{
apireturn = JsonConvert.DeserializeObject<APIErrorSimple>(response);
}
}
}
}
}
catch
{
byte[] pdf;
}
// 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();
//}
}
}
}

71
API_NetFramework/dt.aspx.designer.cs generated Normal file
View File

@@ -0,0 +1,71 @@
//------------------------------------------------------------------------------
// <automatisch generiert>
// 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.
// </automatisch generiert>
//------------------------------------------------------------------------------
namespace OnDocAPI_NetFramework
{
public partial class dt
{
/// <summary>
/// txtKey-Steuerelement.
/// </summary>
/// <remarks>
/// Automatisch generiertes Feld.
/// Zum Ändern Felddeklaration aus der Designerdatei in eine Code-Behind-Datei verschieben.
/// </remarks>
protected global::System.Web.UI.WebControls.TextBox txtKey;
/// <summary>
/// btnLoad-Steuerelement.
/// </summary>
/// <remarks>
/// Automatisch generiertes Feld.
/// Zum Ändern Felddeklaration aus der Designerdatei in eine Code-Behind-Datei verschieben.
/// </remarks>
protected global::System.Web.UI.WebControls.Button btnLoad;
/// <summary>
/// btnSave-Steuerelement.
/// </summary>
/// <remarks>
/// Automatisch generiertes Feld.
/// Zum Ändern Felddeklaration aus der Designerdatei in eine Code-Behind-Datei verschieben.
/// </remarks>
protected global::System.Web.UI.WebControls.Button btnSave;
/// <summary>
/// btnPdf-Steuerelement.
/// </summary>
/// <remarks>
/// Automatisch generiertes Feld.
/// Zum Ändern Felddeklaration aus der Designerdatei in eine Code-Behind-Datei verschieben.
/// </remarks>
protected global::System.Web.UI.WebControls.Button btnPdf;
/// <summary>
/// hfJson-Steuerelement.
/// </summary>
/// <remarks>
/// Automatisch generiertes Feld.
/// Zum Ändern Felddeklaration aus der Designerdatei in eine Code-Behind-Datei verschieben.
/// </remarks>
protected global::System.Web.UI.WebControls.HiddenField hfJson;
/// <summary>
/// pdfFrame-Steuerelement.
/// </summary>
/// <remarks>
/// Automatisch generiertes Feld.
/// Zum Ändern Felddeklaration aus der Designerdatei in eine Code-Behind-Datei verschieben.
/// </remarks>
protected global::System.Web.UI.HtmlControls.HtmlIframe pdfFrame;
}
}

File diff suppressed because it is too large Load Diff

View File

@@ -1 +1 @@
5237ce403c6cd685b286cdd5e304344db95734e1cfe12335b820aadf3f53f0a7
864fd2221a9d818a62092de256b1b472b4819362deedbe4a1ef169e47e1bafe0

View File

@@ -0,0 +1,32 @@
{
"tables": [
{
"key": "ProvDokuments",
"displayName": "ESS-Dokumente",
"sqlList": "SELECT ProvDokumentid as id, provDokumentID as Name FROM ProvDokuments order by erstelltam desc",
"sqlById": "SELECT JavaScriptObject as JsonData FROM ProvDokuments where provdokumentid=@id",
"idField": "Id",
"displayField": "ProvDokumentID",
"jsonField": "JsonData"
},
{
"key": "Ondoc_Versandstrasse_Paket",
"displayName": "Ondoc_Versandstrasse_Paket",
"sqlList": "SELECT ID, erstellt_am as Name from Ondoc_Versandstrasse_Paket order by Id desc",
"sqlById": "SELECT paket as JsonData from Ondoc_Versandstrasse_Paket where id= @id ",
"idField": "ID",
"displayField": "ID",
"jsonField": "JsonData"
},
{
"key": "NLOGApiDoc",
"displayName": "APIDoc",
"sqlList": "SELECT ID, CreatedOn, GUID from edoka_journale.dbo.nlogapidoc where message='Input JSON' and isnull(div,'')<>'' order by Id desc",
"sqlById": "SELECT div as JsonData from edoka_journale.dbo.nlogapidoc where id= @id ",
"idField": "ID",
"displayField": "ID",
"jsonField": "JsonData"
}
]
}

View File

@@ -0,0 +1,212 @@
<%@ 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;
}
html, body { margin:0; padding:0; height:100%; font-family:Arial; background:#f4f6f8; }
.page-header {
background-color: #2563eb;
color: #fff;
padding: 15px 30px;
box-shadow: 0 2px 4px rgba(0,0,0,0.1);
}
.page-header h1 {
margin:0;
font-size:1.8rem;
}
.page-header p {
margin:4px 0 0 0;
font-size:0.95rem;
color:#dbeafe;
}
</style>
</head>
<body>
<div class="page-header">
<h1>OnDoc-DocPreview</h1>
<p></p>
</div>
<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 -->
<table>
<tr>
<div class="right">
<iframe id="pdfFrame" title="PDF Vorschau"></iframe>
</div>
</tr>
</table>
</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);
const editor1 = ace.edit("editor");
editor1.setTheme("ace/theme/tomorrow");
editor1.session.setMode("ace/mode/json");
editor1.setShowPrintMargin(false);
editor1.session.setTabSize(2);
editor1.session.setUseSoftTabs(true);
// JSON LADEN
function loadJson() {
editor.setValue("", -1);
clearPdfPreview();
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));
}
function clearPdfPreview() {
const frame = document.getElementById("pdfFrame");
// iframe leeren
frame.src = "";
// optional: alte Blob-URL freigeben
if (frame.dataset.blobUrl) {
URL.revokeObjectURL(frame.dataset.blobUrl);
frame.dataset.blobUrl = "";
}
}
</script>
</body>
</html>

View File

@@ -0,0 +1,143 @@
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="SelectTable.aspx.cs" Inherits="WebApp.SelectTable" %>
<!DOCTYPE html>
<html>
<head runat="server">
<%--<title>Daten & JSON Editor</title>--%>
<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>
html, body { margin:0; padding:0; height:100%; font-family:Arial; background:#f4f6f8; }
.page-header {
background-color: #2563eb;
color: #fff;
padding: 15px 30px;
box-shadow: 0 2px 4px rgba(0,0,0,0.1);
}
.page-header h1 {
margin:0;
font-size:1.8rem;
}
.page-header p {
margin:4px 0 0 0;
font-size:0.95rem;
color:#dbeafe;
}
.layout { display:flex; height:calc(100% - 70px); } /* 70px für header */
.left {
width:45%;
padding:20px;
background:#fff;
border-right:1px solid #ddd;
overflow:auto;
}
.right {
width:55%;
padding:0;
height:100%;
display:flex;
flex-direction: column;
}
#editor {
flex:1;
width:100%;
}
select { width:100%; padding:8px; margin-bottom:12px; }
table { width:100%; border-collapse:collapse; font-size:14px; }
th, td { padding:8px; border-bottom:1px solid #e5e7eb; }
tr:hover { background:#f9fafb; }
.pager a, .pager span { padding:5px 9px; border:1px solid #ddd; border-radius:5px; margin-left:4px; text-decoration:none; font-size:13px; }
.pager span { background:#2563eb; color:#fff; border-color:#2563eb; }
a.open { color:#2563eb; cursor:pointer; text-decoration:none; }
a.open:hover { text-decoration:underline; }
</style>
</head>
<body>
<!-- TITEL -->
<div class="page-header">
<h1>OnDoc-Json-Viewer</h1>
<p>Tabellen auswählen, Datensätze ansehen und JSON anzeigen</p>
</div>
<!-- LAYOUT -->
<div class="layout">
<form runat="server" class="left">
<asp:ScriptManager ID="ScriptManager1" runat="server" EnablePageMethods="true" />
<h2>Tabellen & Datensätze</h2>
<asp:DropDownList
ID="ddlTables"
runat="server"
AutoPostBack="true"
OnSelectedIndexChanged="ddlTables_SelectedIndexChanged" />
<asp:GridView
ID="gvData"
runat="server"
AutoGenerateColumns="true"
AllowPaging="true"
PageSize="20"
PagerStyle-CssClass="pager"
OnPageIndexChanging="gvData_PageIndexChanging"
OnRowCreated="gvData_RowCreated"
OnRowDataBound="gvData_RowDataBound" />
</form>
<!-- ACE EDITOR außerhalb des Form-Tags -->
<div class="right">
<div id="editor"></div>
</div>
</div>
<script>
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);
//let editor;
//$(function () {
// 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);
// editor.commands.addCommand({
// name: "find",
// bindKey: { win: "Ctrl-F", mac: "Command-F" },
// exec: function (ed) {
// ace.require("ace/ext/searchbox").Search(ed);
// }
// });
//});
function loadJson(tableKey, id) {
editor.setValue("// lade JSON ...", -1);
PageMethods.GetJson(
tableKey,
id,
function (result) {
editor.setValue(result, -1);
},
function (err) {
editor.setValue(JSON.stringify({ error: err.get_message() }, null, 2), -1);
}
);
}
</script>
</body>
</html>

View File

@@ -39,10 +39,20 @@
<add key="VSImagePath" value="E:\Software-Projekte\OnDoc\" />
<add key="Mailempfaenger" value="stefan.hutter@tkb.ch" />
<add key="GASSize" value="True" />
<add key="CLMVerantwortung" value="3793" />
<add key="CLMTeam" value="146" />
<add key="CLMZustaendig" value="3793" />
<add key="CLMUnterschriftlinks" value="0" />
<add key="CLMUnterschriftrechts" value="0" />
<add key="CLMKube" value="0" />
<add key="CLMSaveOnDoc" value="True" />
<add key="DecTestConnString" />
<add key="OwnToken" value="pZkuG6l6ORCEckqQimPK58PO1A9EnkMtL5oCgRX9WiWnD4xeH7ikGzhWnTBy/vk8J4Iiz8gCSx9uFHA4+DvITG0roO97sk82d/0BCjVlwLWINpXlJfGYEF3X96AdoCQvb3ruwv/tVqEHsSU5aNfyxBAe+EhLTHQ8t7ysgJZWh98=" />
</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" />

View File

@@ -0,0 +1,113 @@
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="dt.aspx.cs" Inherits="OnDocAPI_NetFramework.dt" %>
<!DOCTYPE html>
<html>
<head runat="server">
<title>JSON Editor</title>
<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>
html, body { height:100%; margin:0; font-family:Arial; }
.toolbar {
padding: 10px;
background: #f5f5f5;
border-bottom: 1px solid #ccc;
}
.content {
display:flex;
height:calc(100% - 50px);
}
#editor {
width:50%;
height:100%;
}
iframe {
width:50%;
border:none;
}
.page-header {
background-color: #2563eb;
color: #fff;
padding: 15px 30px;
box-shadow: 0 2px 4px rgba(0,0,0,0.1);
}
.page-header h1 {
margin:0;
font-size:1.8rem;
}
.page-header p {
margin:4px 0 0 0;
font-size:0.95rem;
color:#dbeafe;
}
</style>
</head>
<body>
<form runat="server">
<div class="page-header">
<h1>OnDoc-DocPreview</h1>
</div>
<!-- Toolbar -->
<div class="toolbar">
Schlüssel:
<asp:TextBox ID="txtKey" runat="server" />
<asp:Button ID="btnLoad" runat="server"
Text="Laden"
OnClick="btnLoad_Click" />
<asp:Button ID="btnSave" runat="server"
Text="Speichern"
OnClick="btnSave_Click" />
<asp:Button ID="btnPdf" runat="server"
Text="PDF erstellen"
OnClick="btnPdf_Click" />
</div>
<!-- HiddenField für JSON -->
<asp:HiddenField ID="hfJson" runat="server" />
<iframe id="pdfFrame" runat="server"></iframe>
</form>
<div class="content">
<div id="editor"></div>
</div>
<script>
var editor = ace.edit("editor");
editor.session.setMode("ace/mode/json");
//editor.setTheme("ace/theme/tomorrow");
//editor.session.setMode("ace/mode/json");
//editor.setShowPrintMargin(false);
//editor.session.setTabSize(2);
//editor.session.setUseSoftTabs(true);
// Sync HiddenField bei PostBack
document.forms[0].onsubmit = function () {
document.getElementById("<%= hfJson.ClientID %>").value =
editor.getValue();
};
// JSON vom Server laden
editor.setValue(document.getElementById("<%= hfJson.ClientID %>").value || "", -1);
</script>
</body>
</html>

View File

@@ -39,11 +39,22 @@
<add key="VSImagePath" value="E:\Software-Projekte\OnDoc\" />
<add key="Mailempfaenger" value="stefan.hutter@tkb.ch" />
<add key="GASSize" value="True" />
<add key="CLMVerantwortung" value="3793"/>
<add key="CLMTeam" value="146"/>
<add key="CLMZustaendig" value="3793"/>
<add key="CLMUnterschriftlinks" value="0"/>
<add key="CLMUnterschriftrechts" value="0"/>
<add key="CLMKube" value="0"/>
<add key="CLMSaveOnDoc" value="True"/>
<add key ="DecTestConnString"/>
<add key ="OwnToken" value="pZkuG6l6ORCEckqQimPK58PO1A9EnkMtL5oCgRX9WiWnD4xeH7ikGzhWnTBy/vk8J4Iiz8gCSx9uFHA4+DvITG0roO97sk82d/0BCjVlwLWINpXlJfGYEF3X96AdoCQvb3ruwv/tVqEHsSU5aNfyxBAe+EhLTHQ8t7ysgJZWh98="/>
</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" />

View File

@@ -39,10 +39,20 @@
<add key="VSImagePath" value="E:\Software-Projekte\OnDoc\" />
<add key="Mailempfaenger" value="stefan.hutter@tkb.ch" />
<add key="GASSize" value="True" />
<add key="CLMVerantwortung" value="3793" />
<add key="CLMTeam" value="146" />
<add key="CLMZustaendig" value="3793" />
<add key="CLMUnterschriftlinks" value="0" />
<add key="CLMUnterschriftrechts" value="0" />
<add key="CLMKube" value="0" />
<add key="CLMSaveOnDoc" value="True" />
<add key="DecTestConnString" />
<add key="OwnToken" value="pZkuG6l6ORCEckqQimPK58PO1A9EnkMtL5oCgRX9WiWnD4xeH7ikGzhWnTBy/vk8J4Iiz8gCSx9uFHA4+DvITG0roO97sk82d/0BCjVlwLWINpXlJfGYEF3X96AdoCQvb3ruwv/tVqEHsSU5aNfyxBAe+EhLTHQ8t7ysgJZWh98=" />
</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" />

View File