using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using edoka_dms; using DOCGEN.Klassen; using EDOKA_Database; using System.Data; using Model; using System.Diagnostics; using NLog; namespace DOCGEN.Generator { public class DocGenerator_from_EDOKA { public string connectionstring; public string DokumentID; public string tempdir; private static readonly NLog.Logger Logger = NLog.LogManager.GetCurrentClassLogger(); public DocGenerator_from_EDOKA(string connectionstring) { this.connectionstring = connectionstring; } public DocGenerator_from_EDOKA(string connectionstring, string tempdir) { this.connectionstring = connectionstring; this.tempdir = tempdir; } public clsdok Generate_Doc_EDOKA(string dokumentid, ref clsDocData docdata ) { EDOKA_DB db = new EDOKA_DB(connectionstring); DataTable dt = new DataTable(); DataTable dt2 = new DataTable(); string Apptype = ""; dt = db.Get_Vorlage_By_DokumentID(DokumentID); db.dsdaten.Tables.Clear(); dt2 = db.Get_ApplicationType_from_Vorlage(Convert.ToInt32(dt.Rows[0]["nr"].ToString())); Apptype = dt2.Rows[0][0].ToString(); switch (Apptype.ToUpper()) { case "DOCX": case "DOCM": case "DOC": case "DOT": case "Word": SynFWord sfword = new SynFWord(); generate_docdata(dokumentid, ref docdata); clsdok dok = new clsdok("", "", ""); dok.dokument= sfword.Generate_Word(dt.Rows[0][0].ToString(), docdata); dok.doktype = "D"; dok.extension = dt2.Rows[0][1].ToString(); return dok; case "XLSM": case "XLSX": case "XLST": case "XLS": case "XLT": clsdok dokexcel = new clsdok("", "", ""); return dokexcel; //break; case "PDF": case "ACROBAT": case "FORMULAR": case "DOKUMENT": clsdok dokpdf = new clsdok("", "", ""); dokpdf.dokument= dt.Rows[0][0].ToString(); return dokpdf; //break ; default: Logger.Info("DocGenerator_from_EDOKA: FileType unknown"+ Apptype); clsdok dokempty = new clsdok("", "", ""); return dokempty; //break; } //db.get_vorlage_to_file(db.dsdaten.Tables[0].Rows[0][1].ToString(),tempdir,dokumentid ); } public void generate_docdata(string dokumentid, ref clsDocData docdata) { List docValues = new List(); EDOKA_Database.EDOKA_DB db = new EDOKA_Database.EDOKA_DB(connectionstring); db.Get_Tabledata("exec sp_dokumentwerte '" + dokumentid + "',0", false, true); foreach (DataRow r in db.dsdaten.Tables[0].Rows) { clsDocValue dv = new clsDocValue(); dv.TMBeginn = r["beginntextmarke"].ToString(); dv.TMEnd = r["endetextmarke"].ToString(); dv.FieldName = r["feldname"].ToString(); dv.Value = r["xvalue"].ToString(); docValues.Add(dv); } clsDocValue dv1 = new clsDocValue(); //dv1.TMBeginn = ""; //dv1.TMEnd = ""; //dv1.FieldName = "Text1"; //dv1.Value = "Das ist der Text, welcher automatisch in die Briefvorlage kopiert wird. " + "\r\n"+ // "Mit einem Zeilenumbruch"; //docValues.Add(dv1); //docdata.As_Faksimile = "True"; docdata.DocValues = docValues; } } }