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 string Generate_Doc_EDOKA(string dokumentid) { EDOKA_DB db = new EDOKA_DB(connectionstring); DataTable dt = new DataTable(); string Apptype = ""; dt = db.Get_Vorlage_By_DokumentID(DokumentID); db.dsdaten.Tables.Clear(); Apptype = db.Get_ApplicationType_from_Vorlage(Convert.ToInt32(dt.Rows[0]["nr"].ToString())); switch(Apptype.ToUpper()) { case "DOCX": case "DOCM": case "DOC": case "DOT": case "Word": SynFWord sfword = new SynFWord(); clsDocData docdata = new clsDocData(); docdata.PartnerNr = "1234"; generate_docdata(dokumentid, ref docdata); string doc = sfword.Generate_Word(dt.Rows[0][0].ToString(),docdata); return doc; //System.IO.File.WriteAllBytes(tempdir + @"\" + dokumentid + ".docx", Convert.FromBase64String(doc)); //Process.Start(tempdir + @"\" + dokumentid + ".docx"); //break; case "XLSM": case "XLSX": case "XLST": case "XLS": case "XLT": return ""; //break; case "PDF": case "ACROBAT": case "FORMULAR": case "DOKUMENT": string pdf = dt.Rows[0][0].ToString(); return pdf; //break ; default: Logger.Info("DocGenerator_from_EDOKA: FileType unknown"+ Apptype); return ""; //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; } } }