using System; using System.Collections.Generic; using System.Configuration; using System.Linq; using System.Net; using System.Net.Http; using System.Web.Http; using DOCGEN; using Model; using Database; using Newtonsoft.Json; 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; using Microsoft.Ajax.Utilities; using System.Collections; using Microsoft.Extensions.Options; using System.Web.Helpers; using Syncfusion.CompoundFile.DocIO.Native; using System.Web.UI.WebControls; using System.Drawing.Text; using System.Runtime.InteropServices.ComTypes; using System.Reflection; namespace API_NetFramework.Controllers { public class TestParam { public string param1 { get; set; } public string param2 { get; set; } } public class DocumentController : ApiController { public string tokenfunction = "Dokument"; string connectionstring = StringCipher.Decrypt(ConfigurationManager.ConnectionStrings["EDOKAConnectionstring"].ConnectionString, "i%!k!7pab%bNLdA5hE4pkR4XaB%E^jB3d9tHuQ4pbF&BZjF7SB#WBWit5#HrbJiLrLVm"); [HttpGet] [Route("API/GetDocument")] public IHttpActionResult GetDocument(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 GetDocument DokumentID:" + dokid, LogLevelType.Debug); DOCGEN.DocGet gd = new DocGet(connectionstring); clsdok dok = new clsdok("", "", "", ""); dok = gd.GetDoc(dokid); APILogging.Log((HttpRequestMessage)Request, "Ende GetDocument DokumentID:" + dokid, LogLevelType.Debug); return Ok(dok); } catch (Exception e) { APILogging.Log((HttpRequestMessage)Request, e.Message, LogLevelType.Error); return Content(HttpStatusCode.InternalServerError, e.Message); } } [Route("API/GetDocumentPDF")] [HttpGet] public IHttpActionResult GetDocumentPDF(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 GetDocumentPDF DokumentID:" + dokid, LogLevelType.Debug); DOCGEN.DocGet gd = new DocGet(connectionstring); clsdok dok = new clsdok("", "", "", ""); dok = gd.GetDocAsPDF(dokid); dok.extension = "pdf"; dok.doktype = "P"; APILogging.Log((HttpRequestMessage)Request, "Ende GetDocument DokumentID:" + dokid, LogLevelType.Debug); return Ok(dok); } catch (Exception e) { APILogging.Log((HttpRequestMessage)Request, e.Message, LogLevelType.Error); return Content(HttpStatusCode.InternalServerError, e.Message); } } private string create_paketdoc(APIDokument dokument, DokumentCreate paket, string key, ref APIErrorSimple apireturn) { string OwnHost = System.Configuration.ConfigurationManager.AppSettings["OwnHost"].ToString(); string dokumentid = ""; clsDocData dokdata = new clsDocData(); Database.DB db = new DB(connectionstring); db.Get_Tabledata("Select * from dokumenttyp where dokumenttypnr=" + dokument.VorlagenTypID, false, true); System.Data.DataRow dr = db.dsdaten.Tables[0].Rows[0]; dokdata.Barcode = Convert.ToBoolean(dr["Vertrag"]) == true; 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 { } if (dokdata.Barcode) { 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(); string sql = ""; sql = "select bcpt, bcpl, bcw, bch, bchorizontal from OnDocBarcodeMpping "; sql = sql + "where orig_bcpt = " + dokdata.barcode_top.ToString() + " and orig_bcpl=" + dokdata.barcode_left.ToString() + " "; sql = sql + "and orig_bcw=" + dokdata.barcode_width.ToString() + " and orig_bch=" + dokdata.barcode_height.ToString(); db.Get_Tabledata(sql, false, true); if (db.dsdaten.Tables[0].Rows.Count > 0) { 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"]); } if (dokdata.barcode_type == "1") { DB dB = new DB(connectionstring); dB.clear_parameter(); dB.add_parameter("@dokumentid", dokumentid); dB.add_parameter("@DokumentidBR", ""); dB.add_parameter("@BARCODEFONTNAME", ""); dB.add_parameter("@BARCODEFONTSIZE", ""); dB.add_parameter("@BarcodeKantenlaenge", ""); dB.Get_Tabledata("sp_get_OnDoc_barcodetype_and_value", true, false); dokdata.barcode_content = dB.dsdaten.Tables[0].Rows[0][1].ToString(); dokdata.barcode_formatn = dB.dsdaten.Tables[0].Rows[0][3].ToString(); dokdata.barcode_text = dB.dsdaten.Tables[0].Rows[0][4].ToString(); dokdata.barcode_kantenlaenge = dB.dsdaten.Tables[0].Rows[0][5].ToString(); dokdata.Zusatz_Font = dB.dsdaten.Tables[0].Rows[0][6].ToString(); dokdata.Zusatz_FontSize = Convert.ToInt32(dB.dsdaten.Tables[0].Rows[0][7]); dokdata.barcode_width = Convert.ToInt32(dB.dsdaten.Tables[0].Rows[0][8]); dokdata.barcode_height = Convert.ToInt32(dB.dsdaten.Tables[0].Rows[0][9]); //dokdata.barcode_type= dB.dsdaten.Tables[0].Rows[0][3].ToString(); sql = "select bcpt, bcpl, bcw, bch, bchorizontal from OnDocBarcodeMpping "; sql = sql + "where orig_bcpt = " + dokdata.barcode_top.ToString() + " and orig_bcpl=" + dokdata.barcode_left.ToString() + " "; sql = sql + "and orig_bcw=" + dokdata.barcode_width.ToString() + " and orig_bch=" + dokdata.barcode_height.ToString(); dB.Get_Tabledata(sql, false, true); if (dB.dsdaten.Tables[0].Rows.Count > 0) { Logging.Logging.Debug("Barcode-Übersteuerung" + dokdata.DokumenttypNr.ToString(), "Dokumenterstellung", ""); 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"]); } } db.Get_Tabledata("Select * from ondoc_appparams", false, true); dokdata.barcode_font = db.dsdaten.Tables[0].Rows[0]["barcodefont"].ToString(); dokdata.barcode_fontsize = Convert.ToInt32(db.dsdaten.Tables[0].Rows[0]["barcodefontsize"].ToString()); dokdata.Zusatz_Font = db.dsdaten.Tables[0].Rows[0]["Zusatzfont"].ToString(); dokdata.Zusatz_FontSize = Convert.ToInt32(db.dsdaten.Tables[0].Rows[0]["ZusatzfontSize"].ToString()); dokdata.barcode_textposition = db.dsdaten.Tables[0].Rows[0]["barcodetextposition"].ToString(); ; } Model.clsdocgendata docgendata = new Model.clsdocgendata(); DataTable dokwertlist = new DataTable(); dokwertlist = db.Get_DokumentWertList("", Convert.ToInt32(dokument.VorlagenTypID), 1); docgendata.dokumentwerte = dokwertlist; docgendata.partnernr = dokument.PartnerNr; docgendata.inhaberadresse = ""; docgendata.zustelladresse = ""; docgendata.dokumenttypnr = dokument.VorlagenTypID; docgendata.unterschriftLinks = db.Get_Mitarbeiternr(dokument.TGNrUnterschriftLinks).ToString(); docgendata.unterschriftRehts = db.Get_Mitarbeiternr(dokument.TGNrUnterschriftRechts).ToString(); docgendata.verantwortlich = db.Get_Mitarbeiternr(dokument.TGNrVerantwortlich).ToString(); docgendata.ersteller = db.Get_Mitarbeiternr(dokument.TGNrErsteller).ToString(); docgendata.team = db.Get_Teamnr(docgendata.ersteller).ToString(); docgendata.digitaleunterschrift = false; docgendata.frormularOhneUnterschrift = dokument.OhneUnterschrift == "true"; docgendata.zustaendigkube = db.Get_Mitarbeiternr(dokument.TGNrVerantwortlich).ToString(); docgendata.status = "-1"; docgendata.dokumentdatum = DateTime.Now.ToString("dd.MM.yyyy"); docgendata.dokumentdatum = dokument.Dokumentdatum; docgendata.frormularOhneUnterschrift = dokument.OhneUnterschrift == "true"; docgendata.bezeichnung = dokument.Bezeichnung; if (paket.ResultFileType == "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 (dokument.FaksimileUnterschrift == "true") { 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; } dokdata.approved = 1; docgendata.erstellungsart = Erstellungsart.DokumentBearbeiten; } dokdata.APIValues = dokument.APIValues; dokdata.TextToReplace = dokument.TextToReplace; if (dokument.PrintLogo == "true") { 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); dokdata = null; docgendata = null; db = null; Generator = null; dok = null; return dokumentid; } public string RandomString(int size, bool lowerCase = false) { var builder = new StringBuilder(size); char offset = lowerCase ? 'a' : 'A'; const int lettersOffset = 26; // A...Z or a..z: length=26 for (var i = 0; i < size; i++) { var @char = (char)_random.Next(offset, offset + lettersOffset); builder.Append(@char); } return lowerCase ? builder.ToString().ToLower() : builder.ToString(); } private readonly Random _random = new Random(); private string guid = ""; public static void CopyProperties(object source, object target) { var sourceProps = source.GetType().GetProperties(); var targetProps = target.GetType().GetProperties(); foreach (var prop in sourceProps) { var targetProp = targetProps.FirstOrDefault(p => p.Name == prop.Name && p.PropertyType == prop.PropertyType); if (targetProp != null && targetProp.CanWrite) { targetProp.SetValue(target, prop.GetValue(source)); } } } [HttpPost] [Route("API/CreateDoks")] public IHttpActionResult CreateDoks() { APIErrorSimple apireturn = new APIErrorSimple(); guid = Guid.NewGuid().ToString(); Logging.APIDocLog.Info("CreateDoks Start", "CreateDoks", guid,""); bool hasattachment = false; 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(); var key = rmsg.Headers.Authorization.Parameter.ToString(); string result = Request.Content.ReadAsStringAsync().Result; DokumentCreate paket = new DokumentCreate(); paket = JsonConvert.DeserializeObject(result); Logging.APIDocLog.Info("Input Json", "CreateDoks", guid, result); result = ""; Logging.APIDocLog.Info("Herkunftsapplikation", "CreateDoks", guid, paket.Herkunftsapplikation); Logging.APIDocLog.Info("Ersteller", "CreateDoks", guid, paket.Dokumente[0].TGNrErsteller); string CheckResult = ""; CheckResult = CreatePaket_Verify(ref paket, ref apireturn); if (CheckResult != "") { Logging.APIDocLog.Error(CheckResult, "OnDocAPI", guid, ""); apireturn.code = "ONDOC-ERR-Verify"; apireturn.status = "400"; apireturn.message = CheckResult; apireturn.traceid = ""; apireturn.field = ""; paket = null; return BadRequest(Newtonsoft.Json.JsonConvert.SerializeObject(apireturn)); } try { foreach (APIDokument dokument in paket.Dokumente) { if (dokument.PDFDoc != "" && dokument.PDFDoc != null) { string gid = "ATT" + RandomString(19); dokument.DokumentID = gid; hasattachment = true; Logging.APIDocLog.Info("Attachment angefügt", "CreateDoks", guid, dokument.DokumentID); } else { clsDocData dokdata = new clsDocData(); Model.clsdocgendata docgendata = new Model.clsdocgendata(); DocCreate doccreate = new DocCreate(); CopyProperties(dokument, doccreate); dokument.DokumentID = gendoc(ref doccreate, ref dokdata, ref docgendata, key.ToString()); // dokument.DokumentID = create_paketdoc(dokument, paket, key, ref apireturn); Logging.APIDocLog.Info("Dok erstellt", "CreateDoks", guid, dokument.DokumentID); } } } catch (Exception ex) { Logging.APIDocLog.Error("ONDOC-ERR-CreatePaketDoc", "CreateDoks", guid, ex.Message); paket = null; apireturn.code = "ONDOC-ERR-CreatePaketDoc"; apireturn.status = "400"; apireturn.message = ex.Message; apireturn.traceid = ""; apireturn.field = ""; return BadRequest(Newtonsoft.Json.JsonConvert.SerializeObject(apireturn)); } if (paket.ResultSender == "true") { List Dokumente = new List(); clsVersandstrasse vs1 = new clsVersandstrasse(); foreach (APIDokument dokumennt in paket.Dokumente) { if (dokumennt.DokumentID.Contains("ATT")) { APIDokumentResult aPIDokumentResult = new APIDokumentResult(); aPIDokumentResult.dokumentid = dokumennt.DokumentID; aPIDokumentResult.dokument = dokumennt.PDFDoc; Dokumente.Add(aPIDokumentResult); } else { APIDokumentResult aPIDokumentResult = new APIDokumentResult(); aPIDokumentResult.dokumentid = dokumennt.DokumentID; if (paket.ResultFileType != "PDF") { DOCGEN.DocGet gd = new DocGet(connectionstring); clsdok dok = new clsdok("", "", "", ""); dok = gd.GetDoc(dokumennt.DokumentID); aPIDokumentResult.dokument = dok.dokument; dok = null; gd = null; } else { aPIDokumentResult.dokument = vs1.Prepare_PDF(dokumennt.DokumentID.ToString(), "", connectionstring, OwnHost, key.ToString(), imagepath); } Dokumente.Add(aPIDokumentResult); } } vs1 = null; Dokumente = null; string json = System.Text.Json.JsonSerializer.Serialize(Dokumente); paket = null; return Ok(json); } if (paket.Versandstrasse == "true") { clsVersandstrasse vs = new clsVersandstrasse(); string vsdoc = ""; List vdoc = new List(); string partnernr = ""; int i = 0; Versandpaket vp = new Versandpaket(); Stream[] streams = new Stream[paket.Dokumente.Count]; try { foreach (APIDokument dokumennt in paket.Dokumente) { if (dokumennt.DokumentID.Contains("ATT")) { vsdoc = vs.check_pdf_pages(dokumennt.PDFDoc); } else { vsdoc = vs.Prepare_PDF(dokumennt.DokumentID.ToString(), "", connectionstring, OwnHost, key.ToString(), imagepath); } i = i + 1; Versanddokument vd = new Versanddokument(dokumennt.DokumentID.ToString(), dokumennt.PartnerNr.ToString() + " - " + dokumennt.Bezeichnung, partnernr); vd.Partnernr = dokumennt.PartnerNr; vd.dokument = vsdoc; vdoc.Add(vd); } i = 0; foreach (Versanddokument vd in vdoc) { { var stream = new MemoryStream(Convert.FromBase64String(vd.dokument)); streams[i] = stream; i++; } } string stapel = vs.save_stapel(ref streams, 19000000); vp.partnernr = Convert.ToInt32(paket.Dokumente[0].PartnerNr.ToString()); vp.GASAdresse = paket.GASAdresse; vp.Mitteilung = ""; vp.PaketNr = new Guid().ToString(); if (vp.GASAdresse != "") { vp.GAS = "1"; } else { vp.GAS = ""; } vp.GASSize = paket.GASCouvert; vp.Versandoption = paket.VersandOption; vp.Dokument = vdoc; vp.finaldoc = stapel; if (vp.Dokument.Count > 1) { vp.send_onbase_doc = false; } else { vp.send_onbase_doc = true; } vp.verified = true; DB db = new DB(connectionstring); int manr = db.Get_Mitarbeiternr(paket.VersandVerantwortlich.ToString()); send_vs(ref vp, manr.ToString(), paket.VersandDirekt == "true", OwnHost, key.ToString(), "", paket.Dokumente[0].PartnerNr, paket, ref apireturn); db = null; streams = null; vs = null; vp = null; } catch (Exception ex) { streams = null; vs = null; vp = null; apireturn.code = "ONDOC-ERR-PaketVersandstrasse"; apireturn.status = "400"; apireturn.message = ex.Message; apireturn.traceid = ""; apireturn.field = ""; return BadRequest(Newtonsoft.Json.JsonConvert.SerializeObject(apireturn)); } } Logging.APIDocLog.Info("Dokumentpaket abgeschlossen", "CreateDoks", guid,""); apireturn.code = "OK"; apireturn.status = "200"; apireturn.message = "Paket generiert"; apireturn.traceid = ""; apireturn.field = "GUID="+guid; return Ok(Newtonsoft.Json.JsonConvert.SerializeObject(apireturn)); } private string CreatePaket_Verify(ref DokumentCreate paket,ref APIErrorSimple apireturn) { try { APILogging.Log((HttpRequestMessage)Request, "Start GenDoc ", LogLevelType.Debug); int i = 0; foreach (APIDokument dokument in paket.Dokumente) { i = i + 1; if (dokument.PDFDoc != null && dokument.PDFDoc.Length > 0) { if (i == 1) { return "Ein Anhang (PDF-Dokument) kann nicht als erstes Dokument bereit gestellt werden."; } if (!(ParamCheck("partnernr", dokument.PartnerNr.ToString()))) { return "Partnernr " + dokument.PartnerNr + " ist ungültig"; } if (dokument.VorlagenTypID != "0") { return "Vorlagentyp muss bei PDF-Dokumenten '0' sein"; } break; } if (!(ParamCheck("partnernr", dokument.PartnerNr.ToString()))) { return "PartnerNr " + dokument.PartnerNr + " ist ungültig"; } if (dokument.VorlagenTypID == "" && dokument.PDFDoc == "") { return "Vorlagentyp emptry und PDFDoc empty"; } if (!(ParamCheck("dokumenttyp", dokument.VorlagenTypID))) { return "Vorlagentyp " + dokument.VorlagenTypID + " ist ungültig"; } if (!(ParamCheck("tgnr", dokument.TGNrErsteller))) { return "TGNr-Ersteller " + dokument.TGNrErsteller + " ist ungültig"; } if (!(ParamCheck("tgnr", dokument.TGNrVerantwortlich))) { return "TGNr-Verantwortlich " + dokument.TGNrVerantwortlich + " ist ungültig"; } if (!(ParamCheck("tgnr", dokument.TGNrUnterschriftLinks))) { return "TGNr-Unterschriftlinks " + dokument.TGNrUnterschriftLinks + " ist ungültig"; } if (!(ParamCheck("tgnr", dokument.TGNrUnterschriftRechts))) { return "TGNr-Unterschriftrechts " + dokument.TGNrUnterschriftRechts + " ist ungültig"; } if (!(ParamCheck("yesno", dokument.FaksimileUnterschrift))) { return "Parameter Faxsimile " + dokument.FaksimileUnterschrift + " ist ungültig"; } if (!(ParamCheck("yesno", dokument.OhneUnterschrift))) { return "Parameter Form ohne Unterschrift " + dokument.OhneUnterschrift + " ist ungültig"; } if (!(ParamCheck("yesno", dokument.PrintLogo))) { return "Parameter PrintLogo " + dokument.PrintLogo + " ist ungültig"; } if (!(ParamCheck("yesno", dokument.UnterschriftLinksGeprueft))) { return "Parameter UnterschriftLinksGeprueft" + dokument.UnterschriftLinksGeprueft + " ist ungültig"; } if (!(ParamCheck("yesno", dokument.UnterschriftRechtsGeprueft))) { return "Parameter UnterschriftRechtsGeprueft" + dokument.UnterschriftRechtsGeprueft + " ist ungültig"; } if (dokument.TGNrUnterschriftLinks.ToString() == "") { dokument.TGNrUnterschriftLinks = "-1"; } if (dokument.TGNrUnterschriftRechts.ToString() == "") { dokument.TGNrUnterschriftRechts = "-1"; } if (dokument.FaksimileUnterschrift.ToUpper() == "TRUE") { if (dokument.TGNrUnterschriftLinks.ToString() == "-1") { return "Faksimile Unterschrift benötigt mit den Parameter TGUnterschriftLinks"; } if (dokument.TGNrUnterschriftLinks.ToString() != "") { string path = System.Configuration.ConfigurationManager.AppSettings["UnterschriftPath"].ToString() + dokument.TGNrUnterschriftLinks.ToString() + ".jpg"; if (!System.IO.File.Exists(path)) { return "Image Unterschrift links " + dokument.TGNrUnterschriftLinks + " ist nicht vorhanden"; } } if (dokument.TGNrUnterschriftRechts.ToString() != "-1") { string path = System.Configuration.ConfigurationManager.AppSettings["UnterschriftPath"].ToString() + dokument.TGNrUnterschriftLinks.ToString() + ".jpg"; if (!System.IO.File.Exists(path)) { return "Image Unterschrift rechts " + dokument.TGNrUnterschriftRechts + " ist nicht vorhanden"; } } } if (paket.Versandstrasse == "true") { if (dokument.TGNrUnterschriftLinks!="" && dokument.UnterschriftLinksGeprueft != "true" && paket.OnDocSignCheck!="true") { return "Versandstrasse mit ungeprüfter, linker Unterschrift ist nicht möglich"; } if (dokument.TGNrUnterschriftRechts != "" && dokument.UnterschriftRechtsGeprueft != "true" && paket.OnDocSignCheck != "true") { return "Versandstrasse mit ungeprüfter, rechter Unterschrift ist nicht möglich"; } if (ParamCheck("doktypversandstrasse", dokument.VorlagenTypID) == false) { return "Vorlagentyp " + dokument.VorlagenTypID + " ist nicht für die Versandstrasse konfiguriert"; } if (i == 1) { if (ParamCheck("firstdoc", dokument.VorlagenTypID) == false) { return "Vorlagentyp " + dokument.VorlagenTypID + " kann nicht als erstes Dokument im Paket sein"; } } //if (dokument.TGNrUnterschriftLinks.ToLower() != "-1" && dokument.TGNrUnterschriftRechts.ToString() != "-1") { return "Versandstrasse mit zwei Unterschriften kann nicht automatisch angesteuert werden"; } } } if (!(ParamCheck("yesno", paket.Versandstrasse))) { return "Parameter Versandstrasse " + paket.Versandstrasse + " ist ungültig"; } if (!(ParamCheck("yesno", paket.VersandDirekt))) { return "Parameter Versand Direkt " + paket.VersandDirekt + " ist ungültig"; } if (!(ParamCheck("yesno", paket.ResultOnDoc))) { return "Parameter Result_OnDoc " + paket.ResultOnDoc + " ist ungültig"; } if (!(ParamCheck("yesno", paket.ResultSender))) { return "Parameter Result_Sender " + paket.ResultSender + " ist ungültig"; } if (!(ParamCheck("filetype", paket.ResultFileType))) { return "Parameter Result_Filetype " + paket.ResultFileType + " ist ungültig"; } if (!(ParamCheck("yesno", paket.ConfirmationMail))) { return "Parameter ConfirmationMail " + paket.ConfirmationMail + " ist ungültig"; } if (!(ParamCheck("yesno", paket.ConfirmationMail))) { return "Parameter ConfirmationMail " + paket.ConfirmationMail + " ist ungültig"; } if (!(ParamCheck("versandoption", paket.VersandOption))) { return "Versandoption " + paket.VersandOption + " ist ungültig"; } if (paket.ConfirmationMail.ToUpper() == "YES" && paket.ConfirmationMailAddress.ToString() != "") { return "E-Mailadresse für Confirmation fehlt"; } if (paket.Versandstrasse == "true") { if (paket.VersandOption == "") { return "Versandoption fehlt (A_Post, B1_Post, B2_Post"; } } return ""; } catch (Exception ex) { return ex.Message; } } private string gendoc(ref DocCreate doccreate, ref clsDocData dokdata, ref Model.clsdocgendata docgendata, string key) { string OwnHost = System.Configuration.ConfigurationManager.AppSettings["OwnHost"].ToString(); string imagepath = System.Configuration.ConfigurationManager.AppSettings["VSImagePath"].ToString(); string dokumentid = ""; ; 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]; dokdata.Barcode = Convert.ToBoolean(dr["Vertrag"]) == true; 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 { } if (dokdata.Barcode) { 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(); string sql = ""; sql = "select bcpt, bcpl, bcw, bch, bchorizontal from OnDocBarcodeMpping "; sql = sql + "where orig_bcpt = " + dokdata.barcode_top.ToString() + " and orig_bcpl=" + dokdata.barcode_left.ToString() + " "; sql = sql + "and orig_bcw=" + dokdata.barcode_width.ToString() + " and orig_bch=" + dokdata.barcode_height.ToString(); db.Get_Tabledata(sql, false, true); if (db.dsdaten.Tables[0].Rows.Count > 0) { 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"]); } if (dokdata.barcode_type == "1") { DB dB = new DB(connectionstring); dB.clear_parameter(); dB.add_parameter("@dokumentid", dokumentid); dB.add_parameter("@DokumentidBR", ""); dB.add_parameter("@BARCODEFONTNAME", ""); dB.add_parameter("@BARCODEFONTSIZE", ""); dB.add_parameter("@BarcodeKantenlaenge", ""); dB.Get_Tabledata("sp_get_OnDoc_barcodetype_and_value", true, false); dokdata.barcode_content = dB.dsdaten.Tables[0].Rows[0][1].ToString(); dokdata.barcode_formatn = dB.dsdaten.Tables[0].Rows[0][3].ToString(); dokdata.barcode_text = dB.dsdaten.Tables[0].Rows[0][4].ToString(); dokdata.barcode_kantenlaenge = dB.dsdaten.Tables[0].Rows[0][5].ToString(); dokdata.Zusatz_Font = dB.dsdaten.Tables[0].Rows[0][6].ToString(); dokdata.Zusatz_FontSize = Convert.ToInt32(dB.dsdaten.Tables[0].Rows[0][7]); dokdata.barcode_width = Convert.ToInt32(dB.dsdaten.Tables[0].Rows[0][8]); dokdata.barcode_height = Convert.ToInt32(dB.dsdaten.Tables[0].Rows[0][9]); //dokdata.barcode_type= dB.dsdaten.Tables[0].Rows[0][3].ToString(); sql = "select bcpt, bcpl, bcw, bch, bchorizontal from OnDocBarcodeMpping "; sql = sql + "where orig_bcpt = " + dokdata.barcode_top.ToString() + " and orig_bcpl=" + dokdata.barcode_left.ToString() + " "; sql = sql + "and orig_bcw=" + dokdata.barcode_width.ToString() + " and orig_bch=" + dokdata.barcode_height.ToString(); dB.Get_Tabledata(sql, false, true); if (dB.dsdaten.Tables[0].Rows.Count > 0) { Logging.Logging.Debug("Barcode-Übersteuerung" + dokdata.DokumenttypNr.ToString(), "Dokumenterstellung", ""); 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"]); } } db.Get_Tabledata("Select * from ondoc_appparams", false, true); dokdata.barcode_font = db.dsdaten.Tables[0].Rows[0]["barcodefont"].ToString(); dokdata.barcode_fontsize = Convert.ToInt32(db.dsdaten.Tables[0].Rows[0]["barcodefontsize"].ToString()); dokdata.Zusatz_Font = db.dsdaten.Tables[0].Rows[0]["Zusatzfont"].ToString(); dokdata.Zusatz_FontSize = Convert.ToInt32(db.dsdaten.Tables[0].Rows[0]["ZusatzfontSize"].ToString()); dokdata.barcode_textposition = db.dsdaten.Tables[0].Rows[0]["barcodetextposition"].ToString(); ; } 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 == "true"; 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 == "true"; docgendata.bezeichnung = doccreate.Bezeichnung; if (doccreate.ResultFileType == "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 == "true") { 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; dokdata.TextToReplace = doccreate.TextToReplace; if (doccreate.PrintLogo == "true") { 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); return ""; } [HttpPost] [Route("API/CreateDok")] public IHttpActionResult CreateDok() { string guid = Guid.NewGuid().ToString(); Logging.APIDocLog.Info("Start CreateDoc", "CreateDoc", guid, ""); APIErrorSimple apireturn = new APIErrorSimple(); 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(); var key = rmsg.Headers.Authorization.Parameter.ToString(); string result = Request.Content.ReadAsStringAsync().Result; var root = JsonConvert.DeserializeObject(result); Logging.APIDocLog.Info("Input JSON", "CreateDoc", guid, result); DocCreate doccreate = new DocCreate(); //dynamic data = JsonConvert.DeserializeObject(result); doccreate = JsonConvert.DeserializeObject(result); result = ""; //clsDocData dokdata = new clsDocData(); //string dokumentid = ""; string CheckResult = ""; CheckResult = CreateDoc_Verify(ref doccreate); if (CheckResult != "") { Logging.APIDocLog.Error("Error Verify ", "CreateDoks", guid, CheckResult); apireturn.code = "ONDOC-ERR-CreateDoc"; apireturn.status = "400"; apireturn.message = CheckResult; apireturn.traceid = ""; apireturn.field = ""; return BadRequest(Newtonsoft.Json.JsonConvert.SerializeObject(apireturn)); } clsDocData dokdata = new clsDocData(); Model.clsdocgendata docgendata = new Model.clsdocgendata(); string dokumentid = gendoc(ref doccreate, ref dokdata, ref docgendata,key.ToString()); //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]; //dokdata.Barcode = Convert.ToBoolean(dr["Vertrag"]) == true; //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 { } //if (dokdata.Barcode) //{ // 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(); // string sql = ""; // sql = "select bcpt, bcpl, bcw, bch, bchorizontal from OnDocBarcodeMpping "; // sql = sql + "where orig_bcpt = " + dokdata.barcode_top.ToString() + " and orig_bcpl=" + dokdata.barcode_left.ToString() + " "; // sql = sql + "and orig_bcw=" + dokdata.barcode_width.ToString() + " and orig_bch=" + dokdata.barcode_height.ToString(); // db.Get_Tabledata(sql, false, true); // if (db.dsdaten.Tables[0].Rows.Count > 0) // { // 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"]); // } // if (dokdata.barcode_type == "1") // { // DB dB = new DB(connectionstring); // dB.clear_parameter(); // dB.add_parameter("@dokumentid", dokumentid); // dB.add_parameter("@DokumentidBR", ""); // dB.add_parameter("@BARCODEFONTNAME", ""); // dB.add_parameter("@BARCODEFONTSIZE", ""); // dB.add_parameter("@BarcodeKantenlaenge", ""); // dB.Get_Tabledata("sp_get_OnDoc_barcodetype_and_value", true, false); // dokdata.barcode_content = dB.dsdaten.Tables[0].Rows[0][1].ToString(); // dokdata.barcode_formatn = dB.dsdaten.Tables[0].Rows[0][3].ToString(); // dokdata.barcode_text = dB.dsdaten.Tables[0].Rows[0][4].ToString(); // dokdata.barcode_kantenlaenge = dB.dsdaten.Tables[0].Rows[0][5].ToString(); // dokdata.Zusatz_Font = dB.dsdaten.Tables[0].Rows[0][6].ToString(); // dokdata.Zusatz_FontSize = Convert.ToInt32(dB.dsdaten.Tables[0].Rows[0][7]); // dokdata.barcode_width = Convert.ToInt32(dB.dsdaten.Tables[0].Rows[0][8]); // dokdata.barcode_height = Convert.ToInt32(dB.dsdaten.Tables[0].Rows[0][9]); // //dokdata.barcode_type= dB.dsdaten.Tables[0].Rows[0][3].ToString(); // sql = "select bcpt, bcpl, bcw, bch, bchorizontal from OnDocBarcodeMpping "; // sql = sql + "where orig_bcpt = " + dokdata.barcode_top.ToString() + " and orig_bcpl=" + dokdata.barcode_left.ToString() + " "; // sql = sql + "and orig_bcw=" + dokdata.barcode_width.ToString() + " and orig_bch=" + dokdata.barcode_height.ToString(); // dB.Get_Tabledata(sql, false, true); // if (dB.dsdaten.Tables[0].Rows.Count > 0) // { // Logging.Logging.Debug("Barcode-Übersteuerung" + dokdata.DokumenttypNr.ToString(), "Dokumenterstellung", ""); // 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"]); // } // } // db.Get_Tabledata("Select * from ondoc_appparams", false, true); // dokdata.barcode_font = db.dsdaten.Tables[0].Rows[0]["barcodefont"].ToString(); // dokdata.barcode_fontsize = Convert.ToInt32(db.dsdaten.Tables[0].Rows[0]["barcodefontsize"].ToString()); // dokdata.Zusatz_Font = db.dsdaten.Tables[0].Rows[0]["Zusatzfont"].ToString(); // dokdata.Zusatz_FontSize = Convert.ToInt32(db.dsdaten.Tables[0].Rows[0]["ZusatzfontSize"].ToString()); // dokdata.barcode_textposition = db.dsdaten.Tables[0].Rows[0]["barcodetextposition"].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 == "true"; //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 == "true"; //docgendata.bezeichnung = doccreate.Bezeichnung; //if (doccreate.ResultFileType == "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 == "true") //{ // 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; //dokdata.TextToReplace = doccreate.TextToReplace; //if (doccreate.PrintLogo == "true") { 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.Versandstrasse == "true") { 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.GASAdresse; if (vp.GASAdresse.ToString().Trim() == "") { vp.GAS = ""; } else { vp.GAS = "true"; } vp.Versandoption = doccreate.VersandOption; ; List vdoc = new List(); 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.VersandDirekt == "true", OwnHost, key.ToString(), dokumentid, doccreate.PartnerNr,null,ref apireturn); if (apireturn.status != "") { vp = null; doccreate = null; dokdata = null; return BadRequest(Newtonsoft.Json.JsonConvert.SerializeObject(apireturn)); } } if (doccreate.ConfirmationMail == "true") { string message = "Dokument '" + doccreate.Bezeichnung + "' für Partner " + doccreate.PartnerNr + " erstellt." + Environment.NewLine; if (doccreate.Versandstrasse == "true") { if (doccreate.VersandDirekt == "true") { message = message + " Dokument über Versandstrasse versendet."; } else { message = message + " Dokument über Versandstrasse bereit gestellt."; } } } Logging.APIDocLog.Info("Dokument abgeschlossen", "CreateDok", guid, ""); apireturn.code = "OK"; apireturn.status = "200"; apireturn.message = "Dokument generiert"; apireturn.traceid = ""; apireturn.field = "GUID=" + guid; return Ok(Newtonsoft.Json.JsonConvert.SerializeObject(apireturn)); } private void send_vs(ref Versandpaket vp, string mitarbeiternr, bool direktversenden, string url, string key, string dokumentid, string partnernr, DokumentCreate doccreate, ref APIErrorSimple apireturn) { 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]); vp.PaketNr = new Guid().ToString() ; 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; dr["Signed"] = 1; try { if (doccreate.OnDocSignCheck == "true") { dr["Signed"] = 0; } } catch { } 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(); if (doccreate != null) { if (doccreate.OnDocSignCheck == "true") { dr["Signed"] = 0; } if (Convert.ToInt32(dr["Signed"]) == 0) { db.daten.Tables.Clear(); db.Get_Tabledata_for_Update("Select * from OnDoc_Prov_VersandstrasseDokument where id = -1", false, true); foreach (APIDokument dc in doccreate.Dokumente) { DataRow dr1 = db.daten.Tables[0].NewRow(); dr1[1] = paketid; dr1[2] = dc.DokumentID; dr1[3] = ""; if (dc.PDFDoc != "") { dr1[3] = dc.PDFDoc; } db.daten.Tables[0].Rows.Add(dr1); } } // db.daten.Tables[0].Rows.Add(dr); db.Update_Data(); db.daten.Tables.Clear(); if (doccreate.OnDocSignCheck == "true") { db.Get_Tabledata_for_Update("Select top 1 * from ondoc_prov_versandstrassepaket where id=-1", false, true); DataRow dr2 = db.daten.Tables[0].NewRow(); dr2[1] = paketid; dr2[2] = DateTime.Now; dr2[3] = doccreate.Dokumente[0].TGNrUnterschriftLinks.ToString(); dr2[4] = 0; if (doccreate.Dokumente[0].TGNrVerantwortlich == doccreate.Dokumente[0].TGNrUnterschriftLinks) { dr2[4] = 1; } dr2[6] = doccreate.Dokumente[0].TGNrUnterschriftRechts.ToString(); dr2[7] = 0; if (doccreate.Dokumente[0].TGNrVerantwortlich == doccreate.Dokumente[0].TGNrUnterschriftRechts) { dr2[7] = 1; } dr2[9] = 1; dr2[10] = doccreate.Dokumente[0].TGNrVerantwortlich; dr2[11] = doccreate.Dokumente[0].PartnerNr; dr2[12] = doccreate.Paketbezeichnung.ToString(); db.daten.Tables[0].Rows.Add(dr2); db.Update_Data(); } db = null; } 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, ""); apireturn.code = "ONDOC-ERR-SendVS"; apireturn.status = "400"; apireturn.message = ex.Message; apireturn.traceid = ""; apireturn.field = ""; return; } } 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.Versandstrasse))) { return "Parameter Result_Versandstrasse " + doccreate.Versandstrasse + " ist ungültig"; } if (!(ParamCheck("yesno", doccreate.VersandDirekt))) { return "Parameter Versand Direkt " + doccreate.VersandDirekt + " ist ungültig"; } if (!(ParamCheck("yesno", doccreate.ResultOnDoc))) { return "Parameter Result_OnDoc " + doccreate.ResultOnDoc + " ist ungültig"; } if (!(ParamCheck("yesno", doccreate.ResultSender))) { return "Parameter Result_Sender " + doccreate.ResultSender + " ist ungültig"; } if (!(ParamCheck("filetype", doccreate.ResultFileType))) { return "Parameter Result_Filetype " + doccreate.ResultFileType + " 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.VersandOption))) { return "Versandoption " + doccreate.VersandOption + " ist ungültig"; } if (doccreate.ConfirmationMail.ToUpper() == "TRUE" && 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() == "TRUE") { 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.Versandstrasse == "true") { 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.VersandOption == "") { return "Versandoption fehlt (A_Post, B1_Post, B2_Post"; } } return ""; } catch (Exception ex) { return ex.Message; } } [HttpPost] [Route("API/GenDoc")] public IHttpActionResult GenDoc(string Partnernr, String Dokumenttypnr, string TGCreator = "", string TGResp = "", string TGUL = "", string TGUR = "", string Faksimile = "", string FoU = "", string PrintLogo = "") { if (SecuringWebApiUsingApiKey.Middleware.ApiKeyMiddleware.Authorized((HttpRequestMessage)Request, tokenfunction) == false) { return Content(HttpStatusCode.Unauthorized, "Invalid Token or API-Key"); } try { APILogging.Log((HttpRequestMessage)Request, "Start GenDoc ", LogLevelType.Debug); if (!(ParamCheck("partnernr", Partnernr))) { return BadRequest("Partnernr " + Partnernr + " ist ungültig"); } if (!(ParamCheck("dokumenttyp", Dokumenttypnr))) { return BadRequest("Dokumenttyp " + Dokumenttypnr + " ist ungültig"); } if (!(ParamCheck("tgcreator", TGCreator))) { return BadRequest("TGCreator " + TGCreator + " ist ungültig"); } if (!(ParamCheck("tgresp", TGResp))) { return BadRequest("TGResp " + TGResp + " ist ungültig"); } if (!(ParamCheck("tgul", TGUL))) { return BadRequest("TG Unterschrift links " + TGUL + " ist ungültig"); } if (!(ParamCheck("tgul", TGUR))) { return BadRequest("TG Unterschrift rechts " + TGUR + " ist ungültig"); } 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(); docgendata.partnernr = Partnernr; docgendata.inhaberadresse = ""; docgendata.zustelladresse = ""; docgendata.dokumenttypnr = Dokumenttypnr; docgendata.unterschriftLinks = db.Get_Mitarbeiternr(TGUL).ToString(); docgendata.unterschriftRehts = db.Get_Mitarbeiternr(TGUR).ToString(); docgendata.verantwortlich = db.Get_Mitarbeiternr(TGResp).ToString(); docgendata.ersteller = db.Get_Mitarbeiternr(TGCreator).ToString(); docgendata.team = db.Get_Teamnr(docgendata.ersteller).ToString(); docgendata.digitaleunterschrift = false; docgendata.frormularOhneUnterschrift = false; //docgendata.team = ""; docgendata.zustaendigkube = db.Get_Mitarbeiternr(TGResp).ToString(); docgendata.status = "-1"; docgendata.dokumentdatum = DateTime.Now.ToString("dd.MM.yyyy"); docgendata.bezeichnung = ""; docgendata.erstellungsart = Erstellungsart.DokumentAlsPDF; docgendata.verantwortlich = db.Get_Mitarbeiternr(TGResp).ToString(); if (docgendata.verantwortlich == "0") { docgendata.verantwortlich = docgendata.ersteller; } clsDocData dokdata = new clsDocData(); //Barcode-Parameter von Dokumenttyp dokdata.PartnerNr = docgendata.partnernr; dokdata.UseEDOKA_Values = "True"; dokdata.DokumenttypNr = docgendata.dokumenttypnr; dokdata.Unterschrift_Links = docgendata.unterschriftLinks; dokdata.Unterschrift_Rechts = docgendata.unterschriftRehts; 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.Bezeichnung = docgendata.bezeichnung; if (PrintLogo == "true") { 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"; } string dokumentid = ""; dokumentid = db.Create_EDOKA_Doc(dokdata, false, ""); dokdata.Dokumentid = dokumentid; DOCGEN.Generator.DocGenerator_from_EDOKA Generator = new DOCGEN.Generator.DocGenerator_from_EDOKA(this.connectionstring); clsdok dok = new clsdok("", "", "", ""); dok = Generator.Generate_Doc_EDOKA(dokumentid, ref dokdata); db.Save_To_DB(dokumentid, "", dok.dokument); APILogging.Log((HttpRequestMessage)Request, "Ende GenDoc DokumentID:" + dokumentid, LogLevelType.Debug); return Ok(dokumentid); } catch (Exception e) { APILogging.Log((HttpRequestMessage)Request, e.Message, LogLevelType.Error); return Content(HttpStatusCode.InternalServerError, e.Message); } } private bool ParamCheck(string ParamType, string ParamValue) { DB db = new DB(connectionstring); try { 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 != "true" && ParamValue != "false" && 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) { return false; } break; case "firstdoc": db.Get_Tabledata("Select versandstrasse_moeglich, versandstrasse_firstdoc from dokumenttyp where dokumenttypnr=" + ParamValue, false, true); if (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; } } } }