update 20250721

This commit is contained in:
Stefan Hutter
2025-07-21 16:30:53 +02:00
parent df8777631a
commit cb8acfea57
156 changed files with 85153 additions and 113 deletions

View File

@@ -193,6 +193,9 @@
<Reference Include="System.Web.Optimization">
<HintPath>..\packages\Microsoft.AspNet.Web.Optimization.1.1.3\lib\net40\System.Web.Optimization.dll</HintPath>
</Reference>
<Reference Include="Versandstrasse">
<HintPath>..\Versandstrasse\bin\Debug\Versandstrasse.dll</HintPath>
</Reference>
<Reference Include="WebActivatorEx, Version=2.0.0.0, Culture=neutral, PublicKeyToken=7b26dc2a43f6a0d4, processorArchitecture=MSIL">
<HintPath>..\packages\WebActivatorEx.2.2.0\lib\net40\WebActivatorEx.dll</HintPath>
</Reference>

View File

@@ -868,7 +868,7 @@ namespace API_NetFramework.Controllers
db1.Exec_SQL("Update OnDoc_Versandstrasse_paket set versendet=1, versendet_am=getdate() where id=" + paketid);
}
db1 = null;
APILogging.Log((HttpRequestMessage)Request, "Opload Versandstrasse:" + debugfilename, LogLevelType.Debug);
APILogging.Log((HttpRequestMessage)Request, "Upload Versandstrasse:" + debugfilename, LogLevelType.Debug);
//Log nachführen
// Update_IL_Log(ref ilr, DokumentID);

View File

@@ -13,6 +13,16 @@ using API_NetFramework.Models;
using System.Security.Cryptography;
using edoka_dms;
using SecuringWebApiUsingApiKey.Middleware;
using System.Linq.Expressions;
using System.Data;
using System.Web.Management;
using System.Web;
using System.IO;
using OnDocAPI_NetFramework.Controllers;
using Versandstrasse;
using System.ComponentModel;
using System.Text;
using System.Text.Json.Serialization;
namespace API_NetFramework.Controllers
@@ -93,47 +103,334 @@ namespace API_NetFramework.Controllers
}
//[HttpGet]
//[Route("API/SendToOnBase")]
//public IHttpActionResult SendToOnBase(string dokid)
//{
// if (SecuringWebApiUsingApiKey.Middleware.ApiKeyMiddleware.Authorized((HttpRequestMessage)Request, tokenfunction) == false)
// {
// return Content(HttpStatusCode.Unauthorized, "Invalid Token or API-Key");
// }
// try
// {
// APILogging.Log((HttpRequestMessage)Request, "Start SendToOnBase:" + dokid, LogLevelType.Debug);
[HttpPost]
[Route("API/CreateDoc")]
public IHttpActionResult CreateDoc()
{
if (SecuringWebApiUsingApiKey.Middleware.ApiKeyMiddleware.Authorized((HttpRequestMessage)Request, tokenfunction) == false)
{
return Content(HttpStatusCode.Unauthorized, "Invalid Token or API-Key");
}
HttpRequestMessage rmsg = (HttpRequestMessage)Request;
string OwnHost = System.Configuration.ConfigurationManager.AppSettings["OwnHost"].ToString();
string imagepath = System.Configuration.ConfigurationManager.AppSettings["VSImagePath"].ToString();
// DB db = new DB(connectionstring);
// db.Get_Tabledata("Select * from dokument where dokumentid='" + dokid + "'", false, true);
// if (db.dsdaten.Tables[0].Rows.Count < 1)
// {
// db = null;
// APILogging.Log((HttpRequestMessage)Request, "Ende GetDocument DokumentID:" + dokid, LogLevelType.Debug);
// return BadRequest("Dokument " + dokid + " not found");
// }
// else
// {
// DocGet dg = new DocGet(connectionstring);
// clsdok dok = new clsdok("", "", "");
// dok = dg.GetDocAsPDF(dokid);
// db.Exec_SQL("Update dokument set loeschgrund='Archiviert' where dokumentid='" + dokid + "'");
// db = null;
// APILogging.Log((HttpRequestMessage)Request, "Ende GetDocument DokumentID:" + dokid, LogLevelType.Debug);
var key = rmsg.Headers.Authorization.Parameter.ToString();
string result = Request.Content.ReadAsStringAsync().Result;
DocCreate doccreate=new DocCreate();
doccreate = JsonConvert.DeserializeObject<DocCreate>(result);
clsDocData dokdata = new clsDocData();
string dokumentid = "";
// return Ok("Archivierung ausgelöst");
// }
// }
// catch (Exception e)
// {
// APILogging.Log((HttpRequestMessage)Request, e.Message, LogLevelType.Error);
// return Content(HttpStatusCode.InternalServerError, e.Message);
// }
string CheckResult = "";
CheckResult = CreateDoc_Verify(ref doccreate);
if (CheckResult != "")
{
return BadRequest(CheckResult);
}
Database.DB db = new DB(connectionstring);
db.Get_Tabledata("Select * from dokumenttyp where dokumenttypnr=" + doccreate.VorlagenTypID, false, true);
System.Data.DataRow dr = db.dsdaten.Tables[0].Rows[0];
db.Get_Tabledata("Select beschreibung from physischesarchiv where physischesarchivnr = " + dr["physisches_archiv"].ToString(), false, true);
dokdata.barcode_zusatz = db.dsdaten.Tables[0].Rows[0][0].ToString();
if (dokdata.barcode_zusatz != "") { dokdata.barcode_zusatz = " " + dokdata.barcode_zusatz; }
db.Get_Tabledata("Select office_vorlagenr,kopfzeile_generieren, bcpt,bcpl, bcw, bch, bchorizontal, barcodetype, datamatrixcontent from office_vorlage where office_vorlagenr=" + dr["office_vorlagenr"].ToString(), false, true);
dokdata.VorlageNr = Convert.ToInt32(dr["office_vorlagenr"]).ToString(); ;
try
{
dokdata.Kopfzeile_generieren = false;
if (Convert.ToBoolean(db.dsdaten.Tables[0].Rows[0][1]) == true) { dokdata.Kopfzeile_generieren = true; }
}
catch { }
dokdata.barcode_left = Convert.ToInt32(db.dsdaten.Tables[0].Rows[0]["bcpl"]);
dokdata.barcode_top = Convert.ToInt32(db.dsdaten.Tables[0].Rows[0]["bcpt"]);
dokdata.barcode_width = Convert.ToInt32(db.dsdaten.Tables[0].Rows[0]["bcw"]);
dokdata.barcode_height = Convert.ToInt32(db.dsdaten.Tables[0].Rows[0]["bch"]);
dokdata.barcode_horizontal = Convert.ToInt32(db.dsdaten.Tables[0].Rows[0]["bchorizontal"]);
dokdata.barcode_type = db.dsdaten.Tables[0].Rows[0]["BarcodeType"].ToString();
dokdata.barcode_content = db.dsdaten.Tables[0].Rows[0]["DatamatrixContent"].ToString();
Model.clsdocgendata docgendata = new Model.clsdocgendata();
DataTable dokwertlist = new DataTable();
dokwertlist = db.Get_DokumentWertList("", Convert.ToInt32(doccreate.VorlagenTypID),1);
docgendata.dokumentwerte = dokwertlist;
docgendata.partnernr = doccreate.Partnernr;
docgendata.inhaberadresse = "";
docgendata.zustelladresse = "";
docgendata.dokumenttypnr = doccreate.VorlagenTypID;
docgendata.unterschriftLinks = db.Get_Mitarbeiternr(doccreate.TGNrUnterschriftLinks).ToString();
docgendata.unterschriftRehts = db.Get_Mitarbeiternr(doccreate.TGNrUnterschriftRechts).ToString();
docgendata.verantwortlich = db.Get_Mitarbeiternr(doccreate.TGNrVerantwortlich).ToString();
docgendata.ersteller = db.Get_Mitarbeiternr(doccreate.TGNrErsteller).ToString();
docgendata.team = db.Get_Teamnr(docgendata.ersteller).ToString();
docgendata.digitaleunterschrift = false;
docgendata.frormularOhneUnterschrift = doccreate.OhneUnterschrift=="Yes";
docgendata.zustaendigkube = db.Get_Mitarbeiternr(doccreate.TGNrVerantwortlich).ToString();
docgendata.status = "-1";
docgendata.dokumentdatum = DateTime.Now.ToString("dd.MM.yyyy");
docgendata.dokumentdatum = doccreate.Dokumentdatum;
docgendata.frormularOhneUnterschrift = doccreate.OhneUnterschrift == "Yes";
docgendata.bezeichnung = doccreate.Bezeichnung;
if (doccreate.Result_FileType == "WORD") { docgendata.erstellungsart = Erstellungsart.DokumentBearbeiten; } else { docgendata.erstellungsart = Erstellungsart.DokumentAlsPDF; }
if (docgendata.verantwortlich == "0") { docgendata.verantwortlich = docgendata.ersteller; }
dokdata.PartnerNr = docgendata.partnernr;
dokdata.UseEDOKA_Values = "True";
dokdata.DokumenttypNr = docgendata.dokumenttypnr;
dokdata.Unterschrift_Links = docgendata.unterschriftLinks;
if (dokdata.Unterschrift_Links == "0") { dokdata.Unterschrift_Links = "-1"; }
dokdata.Unterschrift_Rechts = docgendata.unterschriftRehts;
if (dokdata.Unterschrift_Rechts == "0") { dokdata.Unterschrift_Rechts = "-1"; }
dokdata.Verantwortlich = docgendata.verantwortlich;
dokdata.Team = docgendata.team;
dokdata.Zustaendig = docgendata.zustaendigkube;
dokdata.Zustaendig = docgendata.zustaendigkube;
dokdata.Status = docgendata.status;
dokdata.Ersteller = docgendata.ersteller;
dokdata.DokumentDatum = docgendata.dokumentdatum;
dokdata.Termin = "01.01.1900";
dokdata.Bezeichnung = docgendata.bezeichnung;
dokdata.dokumentwerte = docgendata.dokumentwerte;
//Unterschriftenprüfung
dokdata.Form_ohne_Unterschrift = docgendata.frormularOhneUnterschrift.ToString();
dokdata.approval1 = 0;
dokdata.approval2 = 0;
dokdata.approved = 0;
if (dokdata.Form_ohne_Unterschrift == "True")
{
dokdata.Unterschrift_Links = "-1";
dokdata.Unterschrift_Rechts = "-1";
}
if (doccreate.FaksimileUnterschrift == "Yes")
{
dokdata.As_Faksimile = "True"; dokdata.sign = true; docgendata.digitaleunterschrift = true;
if (dokdata.Unterschrift_Links != "-1") { dokdata.approval1 = 1; }
if (dokdata.Unterschrift_Rechts != "-1") { dokdata.approval2 = 1; }
if (dokdata.Unterschrift_Links!="-1" && dokdata.Unterschrift_Rechts == "-1")
{
if (dokdata.Ersteller == dokdata.Unterschrift_Links)
{
dokdata.approved = 1;
} else {
dokdata.sign = false;
dokdata.toapprove = 1;
dokdata.approved = 0;
dokdata.approval1 = 0;
dokdata.approval2 = 1;
docgendata.erstellungsart = Erstellungsart.DokumentBearbeiten;
}
} else
{
docgendata.erstellungsart = Erstellungsart.DokumentBearbeiten;
dokdata.toapprove = 1;
dokdata.sign = false;
}
}
//}
dokdata.APIValues = doccreate.APIValues;
if (doccreate.PrintLogo == "Yes") { dokdata.PrintLogo = true; } else { dokdata.PrintLogo = false; }
if (docgendata.erstellungsart == Erstellungsart.DokumentAlsPDF) { dokdata.Result_as_PDF = "True"; } else { dokdata.Result_as_PDF = "False"; }
if (docgendata.digitaleunterschrift == true) { dokdata.As_Faksimile = "True"; } else { dokdata.As_Faksimile = "False"; }
dokumentid = db.Create_EDOKA_Doc(dokdata, false, "");
dokdata.Dokumentid=dokumentid;
DOCGEN.Generator.DocGenerator_from_EDOKA Generator = new DOCGEN.Generator.DocGenerator_from_EDOKA(this.connectionstring, OwnHost, key.ToString());
clsdok dok = new clsdok("", "", "", "");
dok = Generator.Generate_Doc_EDOKA(dokumentid, ref dokdata,false,0,false,false);
db.Save_To_DB(dokumentid, "", dok.dokument);
APILogging.Log((HttpRequestMessage)Request, "Ende GenDoc DokumentID:" + dokumentid, LogLevelType.Debug);
APILogging.DocLog((HttpRequestMessage)Request, doccreate.Partnernr, "Dokument über API erstellt", dokumentid, LogLevelType.Info);
if (doccreate.Result_Versandstrasse == "Yes")
{
clsVersandstrasse vs = new clsVersandstrasse();
string vsdoc = "";
vsdoc = vs.Prepare_PDF(dokumentid, "", connectionstring, OwnHost, key.ToString(), imagepath);
Versandpaket vp = new Versandpaket();
vp.partnernr = Convert.ToInt32(docgendata.partnernr);
vp.GASAdresse = doccreate.GAS_Adresse;
vp.Versandoption = doccreate.Versand_Option; ;
List<Versanddokument> vdoc = new List<Versanddokument>();
Versanddokument vd = new Versanddokument(dokumentid, doccreate.Partnernr + " - " + dokdata.Bezeichnung, doccreate.Partnernr);
vd.dokument = vsdoc;
vdoc.Add(vd);
vp.Dokument = vdoc;
vp.finaldoc = vsdoc;
vp.send_onbase_doc = true;
vp.verified = true;
send_vs(ref vp, dokdata.Ersteller,doccreate.Versand_Direkt=="Yes",OwnHost,key.ToString(),dokumentid,doccreate.Partnernr);
}
if (doccreate.ConfirmationMail == "Yes")
{
string message = "Dokument '" + doccreate.Bezeichnung + "' für Partner " + doccreate.Partnernr + " erstellt."+Environment.NewLine;
if (doccreate.Result_Versandstrasse == "Yes")
{
if (doccreate.Versand_Direkt == "Yes")
{
message = message + " Dokument über Versandstrasse versendet.";
}
else
{
message = message + " Dokument über Versandstrasse bereit gestellt.";
}
}
}
return Ok(dokumentid);
}
private void send_vs(ref Versandpaket vp, string mitarbeiternr,bool direktversenden, string url, string key, string dokumentid, string partnernr)
{
string jsonstring = JsonConvert.SerializeObject(vp);
DB db = new DB(connectionstring);
db.clear_parameter();
db.add_parameter("@ersteller", mitarbeiternr);
db.Get_Tabledata("ondoc_create_versandpaket", true, false);
int paketid = Convert.ToInt32(db.dsdaten.Tables[0].Rows[0][0]);
db.Get_Tabledata_for_Update("Select top 1 * from Ondoc_Versandstrasse_Paket where id=" + paketid.ToString(), false, true);
DataRow dr = db.daten.Tables[0].Rows[0];
dr[2] = jsonstring;
dr["aktiv"] = 1;
dr["versandoption"] = vp.Versandoption.ToString();
dr["Bemerkung"] = vp.bemerkung;
// db.daten.Tables[0].Rows.Add(dr);
db.Update_Data();
db.daten.Tables.Clear();
db.Get_Tabledata_for_Update("Select * from ondoc_versandstrasse_paket_dokumentid where couvert_id = -1", false, true);
foreach (Versanddokument vd in vp.Dokument)
{
DataRow dr1 = db.daten.Tables[0].NewRow();
dr1[1] = paketid;
dr1[2] = vd.DokumentID;
dr1[3] = 1;
db.daten.Tables[0].Rows.Add(dr1);
}
db.Update_Data();
Logging.DocLog.Info("Versandpaket vorbereitet", "OnDoc-API", dokumentid, partnernr, "");
if (!direktversenden)
{
return;
}
string URL = url + "api/Send_Versandstrasse?paketid=" + paketid.ToString();
WebRequest request;
var data = Encoding.UTF8.GetBytes(jsonstring);
request = WebRequest.Create(URL);
request.ContentLength = data.Length;
request.ContentType = "application/json";
request.Method = "POST";
request.Headers["Authorization"] = "Bearer " + key;
string response;
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))
{
response = reader.ReadToEnd();
}
if (response.ToString().Contains("*archiviert"))
{
}
}
}
Logging.DocLog.Info("Versandpaket versendet", "OnDoc-API", dokumentid, partnernr, "");
return;
}
catch (Exception ex)
{
Logging.DocLog.Info("Direktversand nicht möglich: "+ex.Message, "OnDoc-API", dokumentid, partnernr, "");
}
}
private string CreateDoc_Verify(ref DocCreate doccreate)
{
try
{
APILogging.Log((HttpRequestMessage)Request, "Start GenDoc ", LogLevelType.Debug);
if (!(ParamCheck("partnernr", doccreate.Partnernr.ToString()))) { return "Partnernr " + doccreate.Partnernr + " ist ungültig"; }
if (!(ParamCheck("dokumenttyp", doccreate.VorlagenTypID))) { return "Vorlagentyp " + doccreate.VorlagenTypID + " ist ungültig"; }
if (!(ParamCheck("tgnr", doccreate.TGNrErsteller))) { return "TGNr-Ersteller " + doccreate.TGNrErsteller + " ist ungültig"; }
if (!(ParamCheck("tgnr", doccreate.TGNrVerantwortlich))) { return "TGNr-Verantwortlich " + doccreate.TGNrVerantwortlich + " ist ungültig"; }
if (!(ParamCheck("tgnr", doccreate.TGNrUnterschriftLinks))) { return "TGNr-Unterschriftlinks " + doccreate.TGNrUnterschriftLinks + " ist ungültig"; }
if (!(ParamCheck("tgnr", doccreate.TGNrUnterschriftRechts))) { return "TGNr-Unterschriftrechts " + doccreate.TGNrUnterschriftRechts + " ist ungültig"; }
if (!(ParamCheck("yesno", doccreate.FaksimileUnterschrift))) { return "Parameter Faxsimile " + doccreate.FaksimileUnterschrift + " ist ungültig"; }
if (!(ParamCheck("yesno", doccreate.OhneUnterschrift))) { return "Parameter Form ohne Unterschrift " + doccreate.OhneUnterschrift + " ist ungültig"; }
if (!(ParamCheck("yesno", doccreate.PrintLogo))) { return "Parameter PrintLogo " + doccreate.PrintLogo + " ist ungültig"; }
if (!(ParamCheck("yesno", doccreate.Result_Versandstrasse))) { return "Parameter Result_Versandstrasse " + doccreate.Result_Versandstrasse + " ist ungültig"; }
if (!(ParamCheck("yesno", doccreate.Versand_Direkt))) { return "Parameter Versand Direkt " + doccreate.Versand_Direkt + " ist ungültig"; }
if (!(ParamCheck("yesno", doccreate.Result_OnDoc))) { return "Parameter Result_OnDoc " + doccreate.Result_OnDoc + " ist ungültig"; }
if (!(ParamCheck("yesno", doccreate.Result_Sender))) { return "Parameter Result_Sender " + doccreate.Result_Sender + " ist ungültig"; }
if (!(ParamCheck("filetype", doccreate.Result_FileType))) { return "Parameter Result_Filetype " + doccreate.Result_FileType + " ist ungültig"; }
if (!(ParamCheck("yesno", doccreate.ConfirmationMail))) { return "Parameter ConfirmationMail " + doccreate.ConfirmationMail + " ist ungültig"; }
if (!(ParamCheck("yesno", doccreate.ConfirmationMail))) { return "Parameter ConfirmationMail " + doccreate.ConfirmationMail + " ist ungültig"; }
if (!(ParamCheck("versandoption", doccreate.Versand_Option))) { return "Versandoption " + doccreate.Versand_Option + " ist ungültig"; }
if (doccreate.ConfirmationMail.ToUpper() == "YES" && doccreate.ConfirmationMailAddress.ToString() != "") { return "E-Mailadresse für Confirmation fehlt"; }
if (doccreate.TGNrUnterschriftLinks.ToString()=="") { doccreate.TGNrUnterschriftLinks = "-1"; }
if (doccreate.TGNrUnterschriftRechts.ToString() == "") { doccreate.TGNrUnterschriftRechts= "-1"; }
if (doccreate.FaksimileUnterschrift.ToUpper() == "YES")
{
if (doccreate.TGNrUnterschriftLinks.ToString() == "-1") { return "Faksimile Unterschrift benötigt mit den Parameter TGUnterschriftLinks"; }
if (doccreate.TGNrUnterschriftLinks.ToString() != "")
{
string path = System.Configuration.ConfigurationManager.AppSettings["UnterschriftPath"].ToString() + doccreate.TGNrUnterschriftLinks.ToString() + ".jpg";
if (!System.IO.File.Exists(path)) { return "Image Unterschrift links " + doccreate.TGNrUnterschriftLinks + " ist nicht vorhanden"; }
}
if (doccreate.TGNrUnterschriftRechts.ToString() != "-1")
{
string path = System.Configuration.ConfigurationManager.AppSettings["UnterschriftPath"].ToString() + doccreate.TGNrUnterschriftLinks.ToString() + ".jpg";
if (!System.IO.File.Exists(path)) { return "Image Unterschrift rechts " + doccreate.TGNrUnterschriftRechts + " ist nicht vorhanden"; }
}
}
if (doccreate.Result_Versandstrasse == "Yes")
{
if (ParamCheck("doktypversandstrasse", doccreate.VorlagenTypID) == false) { return "Vorlagentyp " + doccreate.VorlagenTypID + " ist nicht für die Versandstrasse konfiguriert"; }
if (doccreate.TGNrUnterschriftLinks.ToLower()!="-1" && doccreate.TGNrUnterschriftRechts.ToString() != "-1") { return "Versandstrasse mit zwei Unterschriften kann nicht automatisch angesteuert werden"; }
if (doccreate.Versand_Option=="") { return "Versandoption fehlt (A_Post, B1_Post, B2_Post"; }
}
return "";
}
catch (Exception ex) { return ex.Message; }
}
[HttpPost]
[Route("API/GenDoc")]
@@ -156,6 +453,8 @@ namespace API_NetFramework.Controllers
if (!(ParamCheck("faksimile", Faksimile))) { return BadRequest("Parameter Faxsimile " + Faksimile + " ist ungültig"); }
if (!(ParamCheck("formohneunterschrift", FoU))) { return BadRequest("Parameter Form ohne Unterschrift " + FoU + " ist ungültig"); }
if (!(ParamCheck("printlogo", PrintLogo))) { return BadRequest("Parameter PrintLogo " + PrintLogo + " ist ungültig"); }
Database.DB db = new DB(connectionstring);
Model.clsdocgendata docgendata = new Model.clsdocgendata();
@@ -220,39 +519,58 @@ namespace API_NetFramework.Controllers
private bool ParamCheck(string ParamType, string ParamValue)
{
DB db = new DB(connectionstring);
switch (ParamType)
try
{
case "partnernr":
db.Get_Tabledata("Select count(*) from partner where nrpar00=" + ParamValue, false, true);
if (db.dsdaten.Tables[0].Rows[0][0].ToString() == "0") { return false; }
break;
case "dokumenttyp":
db.Get_Tabledata("Select count(*) from dokumenttyp where dokumenttypnr=" + ParamValue, false, true);
if (db.dsdaten.Tables[0].Rows[0][0].ToString() == "0") { return false; }
break;
case "partnerdokumenttyp":
//Prüfung Person/Doktyp BP/Doktyp
break;
case "tgcreator": case "tgresp": case "tgul": case "tgur":
if (ParamType == "tgcreator" && ParamValue == "") { return false; } else { if (ParamValue == "") { return true; } };
db.Get_Tabledata("Select count(*) from mitarbeiter where tgnummer='" + ParamValue+"'", false, true);
if (db.dsdaten.Tables[0].Rows[0][0].ToString() == "0") { return false; }
break;
case "faksimile":
if (ParamValue != "Yes" && ParamValue != "No" && ParamValue !="") { return false; };
break;
case "formohneunterschrift":
if (ParamValue != "Yes" && ParamValue != "No" && ParamValue != "") { return false; };
break;
case "printlogo":
if (ParamValue != "Yes" && ParamValue != "No" && ParamValue != "") { return false; };
break;
default:
return false;
break;
switch (ParamType)
{
case "partnernr":
db.Get_Tabledata("Select count(*) from partner where nrpar00=" + ParamValue, false, true);
if (db.dsdaten.Tables[0].Rows[0][0].ToString() == "0") { return false; }
break;
case "dokumenttyp":
db.Get_Tabledata("Select count(*) from dokumenttyp where dokumenttypnr=" + ParamValue, false, true);
if (db.dsdaten.Tables[0].Rows[0][0].ToString() == "0") { return false; }
break;
case "partnerdokumenttyp":
//Prüfung Person/Doktyp BP/Doktyp
break;
case "tgcreator":
case "tgresp":
case "tgul":
case "tgur":
case "tgnr":
if (ParamType == "tgcreator" && ParamValue == "") { return false; } else { if (ParamValue == "") { return true; } };
db.Get_Tabledata("Select count(*) from mitarbeiter where tgnummer='" + ParamValue + "'", false, true);
if (db.dsdaten.Tables[0].Rows[0][0].ToString() == "0") { return false; }
break;
case "yesno":
if (ParamValue != "Yes" && ParamValue != "No" && ParamValue != "") { return false; };
break;
case "filetype":
if (ParamValue != "WORD" && ParamValue != "PDF") { return false; }
break;
case "versandoption":
if (ParamValue != "A_POST" && ParamValue != "B1_POST" && ParamValue != "B2_POST" && ParamValue != "") { return false; }
break;
case "doktypversandstrasse":
db.Get_Tabledata("Select versandstrasse_moeglich, versandstrasse_firstdoc from dokumenttyp where dokumenttypnr=" + ParamValue, false, true);
if (Convert.ToInt32(db.dsdaten.Tables[0].Rows[0][0]) == 0 || Convert.ToInt32(db.dsdaten.Tables[0].Rows[0][1]) == 0) { return false; }
break;
default:
return false;
break;
}
return true;
}
catch
{
return false;
}
finally
{
db = null;
}
return true;
}

View File

@@ -20,11 +20,22 @@ namespace API_NetFramework.Models
if (Logging.Logging.IntLogLevel == "")
{
string connectionstring = StringCipher.Decrypt(ConfigurationManager.ConnectionStrings["EDOKAConnectionstring"].ConnectionString, "i%!k!7pab%bNLdA5hE4pkR4XaB%E^jB3d9tHuQ4pbF&BZjF7SB#WBWit5#HrbJiLrLVm");
string journalconnectionstring = StringCipher.Decrypt(ConfigurationManager.ConnectionStrings["JournalConnectionstring"].ConnectionString, "i%!k!7pab%bNLdA5hE4pkR4XaB%E^jB3d9tHuQ4pbF&BZjF7SB#WBWit5#HrbJiLrLVm");
DB db = new DB(connectionstring);
db.Get_Tabledata("Select * from nlog_parameter where id=3", false, true);
Logging.Logging.IntLogLevel = db.dsdaten.Tables[0].Rows[0]["LogLevel"].ToString();
Logging.Logging.IntUserID = db.dsdaten.Tables[0].Rows[0]["LogUserID"].ToString();
//Logging.Logging.connectionstring = journalconnectionstring;
//Logging.Logging.init_logger();
db.Get_Tabledata("Select * from nlog_parameter WHERE ID=2", false, true);
Logging.DocLog.IntLogLevel = db.dsdaten.Tables[0].Rows[0]["LogLevel"].ToString();
Logging.DocLog.IntUserID = db.dsdaten.Tables[0].Rows[0]["LogUserID"].ToString();
Logging.DocLog.connectionstring= journalconnectionstring;
Logging.DocLog.init_logger();
// Logging.DocLog.init_logger();
//Logging.DocLog.connectionstring = connectionstring;
db = null;
}
}
@@ -58,5 +69,35 @@ namespace API_NetFramework.Models
}
}
}
public static void DocLog(HttpRequestMessage request, string partnernr, string message, string dokumentid, LogLevelType logtype)
{
string userhost = "";
if (request.Properties.ContainsKey("MS_HttpContext"))
{
userhost = ((HttpContextWrapper)request.Properties["MS_HttpContext"]).Request.UserHostAddress;
}
switch (logtype)
{
case LogLevelType.Info:
Logging.DocLog.Info(message, request.RequestUri.ToString(), dokumentid, partnernr, "");
break;
case LogLevelType.Warning:
Logging.DocLog.Warning(message, request.RequestUri.ToString(), dokumentid, partnernr, "");
break;
case LogLevelType.Trace:
Logging.DocLog.Trance(message, request.RequestUri.ToString(), dokumentid, partnernr, "");
break;
case LogLevelType.Debug:
Logging.DocLog.Debug(message, request.RequestUri.ToString(), dokumentid, partnernr, "");
break;
case LogLevelType.Error:
Logging.DocLog.Error(message, request.RequestUri.ToString(), dokumentid, partnernr, "");
break;
default:
break;
}
}
}
}

View File

@@ -5,7 +5,7 @@ https://go.microsoft.com/fwlink/?LinkID=208121.
<Project>
<PropertyGroup>
<_PublishTargetUrl>E:\Software-Projekte\OnDoc\PubServices\OnDoc</_PublishTargetUrl>
<History>True|2025-06-18T19:46:07.0469838Z||;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|2025-07-21T13:11:25.9501591Z||;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>
<LastFailureDetails />
</PropertyGroup>
<ItemGroup>
@@ -82,10 +82,10 @@ https://go.microsoft.com/fwlink/?LinkID=208121.
<publishTime>04/09/2024 19:25:14</publishTime>
</File>
<File Include="bin/BarcodeLib.dll">
<publishTime>06/15/2025 08:32:39</publishTime>
<publishTime>07/21/2025 10:04:07</publishTime>
</File>
<File Include="bin/BarcodeLib.pdb">
<publishTime>06/15/2025 08:32:39</publishTime>
<publishTime>07/21/2025 10:04:07</publishTime>
</File>
<File Include="bin/CSVNET.dll">
<publishTime>02/28/2025 10:40:17</publishTime>
@@ -94,10 +94,10 @@ https://go.microsoft.com/fwlink/?LinkID=208121.
<publishTime>02/28/2025 10:40:17</publishTime>
</File>
<File Include="bin/Database.dll">
<publishTime>06/15/2025 08:30:32</publishTime>
<publishTime>07/21/2025 08:53:09</publishTime>
</File>
<File Include="bin/Database.pdb">
<publishTime>06/15/2025 08:30:32</publishTime>
<publishTime>07/21/2025 08:53:09</publishTime>
</File>
<File Include="bin/de/System.Net.Http.Formatting.resources.dll">
<publishTime>10/20/2023 22:35:02</publishTime>
@@ -130,13 +130,13 @@ https://go.microsoft.com/fwlink/?LinkID=208121.
<publishTime>10/20/2023 22:35:04</publishTime>
</File>
<File Include="bin/DOCGEN.dll">
<publishTime>06/18/2025 21:46:05</publishTime>
<publishTime>07/21/2025 15:11:24</publishTime>
</File>
<File Include="bin/DOCGEN.dll.config">
<publishTime>12/23/2024 22:17:43</publishTime>
</File>
<File Include="bin/DOCGEN.pdb">
<publishTime>06/18/2025 21:46:05</publishTime>
<publishTime>07/21/2025 15:11:24</publishTime>
</File>
<File Include="bin/FastReport.Bars.dll">
<publishTime>11/27/2023 09:49:58</publishTime>
@@ -154,19 +154,19 @@ https://go.microsoft.com/fwlink/?LinkID=208121.
<publishTime>11/27/2023 09:50:04</publishTime>
</File>
<File Include="bin/Helper.dll">
<publishTime>03/28/2025 14:01:17</publishTime>
<publishTime>03/07/2025 12:17:55</publishTime>
</File>
<File Include="bin/Helper.pdb">
<publishTime>03/28/2025 14:01:17</publishTime>
<publishTime>03/07/2025 12:17:55</publishTime>
</File>
<File Include="bin/libSkiaSharp.dylib">
<publishTime>04/09/2024 18:58:02</publishTime>
</File>
<File Include="bin/Logging.dll">
<publishTime>04/24/2025 17:39:17</publishTime>
<publishTime>03/07/2025 12:17:55</publishTime>
</File>
<File Include="bin/Logging.pdb">
<publishTime>04/24/2025 17:39:17</publishTime>
<publishTime>03/07/2025 12:17:55</publishTime>
</File>
<File Include="bin/Microsoft.AspNetCore.Http.Abstractions.dll">
<publishTime>11/12/2018 18:29:00</publishTime>
@@ -214,10 +214,10 @@ https://go.microsoft.com/fwlink/?LinkID=208121.
<publishTime>04/11/2022 19:09:46</publishTime>
</File>
<File Include="bin/Model.dll">
<publishTime>02/06/2025 15:43:12</publishTime>
<publishTime>07/21/2025 08:53:03</publishTime>
</File>
<File Include="bin/Model.pdb">
<publishTime>02/06/2025 15:43:12</publishTime>
<publishTime>07/21/2025 08:53:03</publishTime>
</File>
<File Include="bin/MW6.SDK.dll">
<publishTime>08/19/2014 21:33:57</publishTime>
@@ -250,16 +250,16 @@ https://go.microsoft.com/fwlink/?LinkID=208121.
<publishTime>02/28/2025 10:40:16</publishTime>
</File>
<File Include="bin/OnDocOffice.dll">
<publishTime>06/18/2025 21:46:05</publishTime>
<publishTime>07/21/2025 15:11:24</publishTime>
</File>
<File Include="bin/OnDocOffice.pdb">
<publishTime>06/18/2025 21:46:05</publishTime>
<publishTime>07/21/2025 15:11:24</publishTime>
</File>
<File Include="bin/OnDoc_NetFramework.dll">
<publishTime>06/18/2025 21:46:06</publishTime>
<publishTime>07/21/2025 15:11:25</publishTime>
</File>
<File Include="bin/OnDoc_NetFramework.pdb">
<publishTime>06/18/2025 21:46:06</publishTime>
<publishTime>07/21/2025 15:11:25</publishTime>
</File>
<File Include="bin/Owin.dll">
<publishTime>11/13/2012 13:19:34</publishTime>
@@ -454,10 +454,10 @@ https://go.microsoft.com/fwlink/?LinkID=208121.
<publishTime>10/20/2023 22:33:58</publishTime>
</File>
<File Include="bin/vbBarcodes.dll">
<publishTime>06/06/2025 10:46:02</publishTime>
<publishTime>07/18/2025 15:47:10</publishTime>
</File>
<File Include="bin/vbBarcodes.pdb">
<publishTime>06/06/2025 10:46:02</publishTime>
<publishTime>07/18/2025 15:47:10</publishTime>
</File>
<File Include="bin/VBFileManagement.dll">
<publishTime>03/28/2025 14:01:17</publishTime>
@@ -466,10 +466,16 @@ https://go.microsoft.com/fwlink/?LinkID=208121.
<publishTime>03/28/2025 14:01:17</publishTime>
</File>
<File Include="bin/VBOffice.dll">
<publishTime>06/06/2025 10:46:01</publishTime>
<publishTime>07/18/2025 15:47:10</publishTime>
</File>
<File Include="bin/VBOffice.pdb">
<publishTime>06/06/2025 10:46:01</publishTime>
<publishTime>07/18/2025 15:47:10</publishTime>
</File>
<File Include="bin/Versandstrasse.dll">
<publishTime>07/18/2025 15:47:09</publishTime>
</File>
<File Include="bin/Versandstrasse.pdb">
<publishTime>07/18/2025 15:47:09</publishTime>
</File>
<File Include="bin/WebActivatorEx.dll">
<publishTime>10/05/2016 15:11:52</publishTime>
@@ -664,7 +670,7 @@ https://go.microsoft.com/fwlink/?LinkID=208121.
<publishTime>06/03/2024 08:11:55</publishTime>
</File>
<File Include="Web.config">
<publishTime>01/01/0001 00:00:00</publishTime>
<publishTime>07/20/2025 22:02:06</publishTime>
</File>
</ItemGroup>
</Project>

View File

@@ -35,6 +35,8 @@
<add key="URI" value="http://" />
<add key="ArchivierungAktiv" value="True"></add>
<add key="ArchivierungNoAktivMessage" value="Aufgrund von technischen Umstellung ist die Archivierung aktuell nicht aktiv." />
<add key ="OwnHost" value="https://localhost:44303/"/>
<add key="VSImagePath" value="E:\Software-Projekte\OnDoc\" />
</appSettings>
<connectionStrings>
<add name="EDOKAConnectionstring" connectionString="Po7oIigu4hOz6zXOpaSnrhveCQyfGgFeskvEQsvm3CEgxjJMEYYDEbnWlt9Qr9vGTkzqm5hvURTLA1hKVU++/ozcvT5qIVTpDLBTKd4AM/4YgN3+L9cx3mxMoWmv1JMjqxZVbR6GYiuSo1xuD05sl3IGoUenfugP6hBP/IC7MjUjisDUE6msFpWiraJr53gcfDvIrc2CUBTVUS+f94kewhlKxjtEohtCM71PN2zpoMiPyBIuXDyrYlYyokUOg6uV" />

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -24,13 +24,25 @@
<parameter name="@UserID" layout="${environment-user}"/>
<parameter name="@Div" layout="${gdc:Zusatz}"/>
</target>
</targets>
<target type="Database" name="DocLog" connectionstring="Server=SHU01\SHU00;Database=edoka_journale;User ID=sa;Password=*shu29">
<commandText>
sp_insert_nlog_DOC @Origin,@Message,@LogLevel, @UserID, @docid,@partnernr,@aktion
</commandText>
<parameter name="@Origin" layout="${gdc:Herkunft}"/>
<parameter name="@LogLevel" layout="${level}"/>
<parameter name="@message" layout="${message}"/>
<parameter name="@UserID" layout="${environment-user}"/>
<parameter name="@docid" layout="${gdc:Dokumentid}"/>
<parameter name="@partnernr" layout="${gdc:Partnernr}"/>
<parameter name="@aktion" layout="${gdc:Aktion}"/>
</target>
</targets>
<rules>
<!--<logger name="*" levels="Info,Error,Debug,Warn,Trace,Fail" writeTo="console" />-->
<logger name="*" levels="Info,Error" writeTo="console" />
<logger name="*" levels="Info,Debug,Error" writeTo="file" />
<logger name="*" levels="Info,Debug,Error" writeTo="Database" />
<logger name="DocLog" levels="Info,Debug,Error,Warning,Trace" writeTo="DocLog" />
<!-- <logger name="*" levels="Error" writeTo="email" /> -->
</rules>
</nlog>

View File

@@ -35,6 +35,8 @@
<add key="URI" value="http://" />
<add key="ArchivierungAktiv" value="True"></add>
<add key="ArchivierungNoAktivMessage" value="Aufgrund von technischen Umstellung ist die Archivierung aktuell nicht aktiv." />
<add key ="OwnHost" value="https://localhost:44303/"/>
<add key="VSImagePath" value="E:\Software-Projekte\OnDoc\" />
</appSettings>
<connectionStrings>
<add name="EDOKAConnectionstring" connectionString="Po7oIigu4hOz6zXOpaSnrhveCQyfGgFeskvEQsvm3CEgxjJMEYYDEbnWlt9Qr9vGTkzqm5hvURTLA1hKVU++/ozcvT5qIVTpDLBTKd4AM/4YgN3+L9cx3mxMoWmv1JMjqxZVbR6GYiuSo1xuD05sl3IGoUenfugP6hBP/IC7MjUjisDUE6msFpWiraJr53gcfDvIrc2CUBTVUS+f94kewhlKxjtEohtCM71PN2zpoMiPyBIuXDyrYlYyokUOg6uV" />

Binary file not shown.

Binary file not shown.

File diff suppressed because it is too large Load Diff

View File

@@ -1 +1 @@
92902da4595bdfbcac10c5c889d2eb4957baef133deeeb6c45d75284c1e6f96f
0dd8e07b33e8bdd9dcc15aeb25a6e74c53fc66565c537a06363cb50717878c9f

View File

@@ -319,3 +319,5 @@ E:\Software-Projekte\OnDoc\OnDoc\API_NetFramework\bin\VBOffice.xml
E:\Software-Projekte\OnDoc\OnDoc\API_NetFramework\bin\vbBarcodes.pdb
E:\Software-Projekte\OnDoc\OnDoc\API_NetFramework\bin\vbBarcodes.xml
E:\Software-Projekte\OnDoc\OnDoc\API_NetFramework\bin\FastReport.xml
E:\Software-Projekte\OnDoc\OnDoc\API_NetFramework\bin\Versandstrasse.dll
E:\Software-Projekte\OnDoc\OnDoc\API_NetFramework\bin\Versandstrasse.pdb

View File

@@ -35,6 +35,8 @@
<add key="URI" value="http://" />
<add key="ArchivierungAktiv" value="True"></add>
<add key="ArchivierungNoAktivMessage" value="Aufgrund von technischen Umstellung ist die Archivierung aktuell nicht aktiv." />
<add key="OwnHost" value="https://localhost:44303/" />
<add key="VSImagePath" value="E:\Software-Projekte\OnDoc\" />
</appSettings>
<connectionStrings>
<add name="EDOKAConnectionstring" connectionString="Po7oIigu4hOz6zXOpaSnrhveCQyfGgFeskvEQsvm3CEgxjJMEYYDEbnWlt9Qr9vGTkzqm5hvURTLA1hKVU++/ozcvT5qIVTpDLBTKd4AM/4YgN3+L9cx3mxMoWmv1JMjqxZVbR6GYiuSo1xuD05sl3IGoUenfugP6hBP/IC7MjUjisDUE6msFpWiraJr53gcfDvIrc2CUBTVUS+f94kewhlKxjtEohtCM71PN2zpoMiPyBIuXDyrYlYyokUOg6uV" />

View File

@@ -35,6 +35,8 @@
<add key="URI" value="http://" />
<add key="ArchivierungAktiv" value="True"></add>
<add key="ArchivierungNoAktivMessage" value="Aufgrund von technischen Umstellung ist die Archivierung aktuell nicht aktiv." />
<add key ="OwnHost" value="https://localhost:44303/"/>
<add key="VSImagePath" value="E:\Software-Projekte\OnDoc\" />
</appSettings>
<connectionStrings>
<add name="EDOKAConnectionstring" connectionString="Po7oIigu4hOz6zXOpaSnrhveCQyfGgFeskvEQsvm3CEgxjJMEYYDEbnWlt9Qr9vGTkzqm5hvURTLA1hKVU++/ozcvT5qIVTpDLBTKd4AM/4YgN3+L9cx3mxMoWmv1JMjqxZVbR6GYiuSo1xuD05sl3IGoUenfugP6hBP/IC7MjUjisDUE6msFpWiraJr53gcfDvIrc2CUBTVUS+f94kewhlKxjtEohtCM71PN2zpoMiPyBIuXDyrYlYyokUOg6uV" />

View File

@@ -35,6 +35,8 @@
<add key="URI" value="http://" />
<add key="ArchivierungAktiv" value="True"></add>
<add key="ArchivierungNoAktivMessage" value="Aufgrund von technischen Umstellung ist die Archivierung aktuell nicht aktiv." />
<add key="OwnHost" value="https://localhost:44303/" />
<add key="VSImagePath" value="E:\Software-Projekte\OnDoc\" />
</appSettings>
<connectionStrings>
<add name="EDOKAConnectionstring" connectionString="Po7oIigu4hOz6zXOpaSnrhveCQyfGgFeskvEQsvm3CEgxjJMEYYDEbnWlt9Qr9vGTkzqm5hvURTLA1hKVU++/ozcvT5qIVTpDLBTKd4AM/4YgN3+L9cx3mxMoWmv1JMjqxZVbR6GYiuSo1xuD05sl3IGoUenfugP6hBP/IC7MjUjisDUE6msFpWiraJr53gcfDvIrc2CUBTVUS+f94kewhlKxjtEohtCM71PN2zpoMiPyBIuXDyrYlYyokUOg6uV" />