using System; using System.Collections.Generic; using System.IO; using System.Xml.Schema; using System.Xml.Serialization; using GCHR.Mandantenschnittstelle; using GCHR.Model.Konto; namespace GCHR.Model { [XmlRoot("GCEHRep")] public class GchrConfig { [XmlAttribute(AttributeName = "noNamespaceSchemaLocation", Namespace = XmlSchema.InstanceNamespace)] public string NoNamespaceSchemaLocation = "http://dev.global-cube.de/gchr.xsd"; public static GchrConfig GetInstance(String cfgDatei) { var serializer = new XmlSerializer(typeof(GchrConfig)); using (var stream = File.OpenText(cfgDatei)) { var gcsConfig = (GchrConfig)serializer.Deserialize(stream); gcsConfig._configDatei = cfgDatei; return gcsConfig; } } private string _configDatei; public void Save() { var serializer = new XmlSerializer(typeof(GchrConfig)); using (var stream = File.CreateText(_configDatei)) { serializer.Serialize(stream, this); } } public DateipfadeXml Dateipfade = new DateipfadeXml(); [XmlElement("Einstellungen")] public EinstellungenXml Einstellungen = new EinstellungenXml(); [XmlArray("Konten")] [XmlArrayItem("Konto")] public List Konten; } [XmlRoot("Einstellungen")] public class EinstellungenXml { public Mandanten Mandantenname; public string Eurodatanummer; [XmlElement("Händlernummer")] public string Haendlernummer; [XmlElement("Herstellerkontenrahmen", DataType = "int")] public int Herstellerkontenrahmen; [XmlElement("Händlerkontenrahmen", DataType = "int")] public int Haendlerkontenrahmen; public string Marke = "Department,3,1"; public string Betrieb = "Department,1,2"; public string Hauptmarke; public string Hauptbetrieb; public string BilanzDepartment; public string BilanzMarke = "0"; public string BilanzBetrieb = "07"; public string BilanzKontoart = "1"; [XmlElement("Geschäftsjahr")] public string Geschaeftsjahr = "01"; [XmlElement("ODBC")] public string Odbc; [XmlElement("U")] public string OdbcUsername; [XmlElement("P")] public string OdbcPassword; public AbfragenXml Abfragen; [XmlArray("DepartmentÜbersetzung")] [XmlArrayItem("Über")] public List DepartmentUebersetzung = new List(); public bool KontoOhneUebersetzungUebernehmen; public UpdateXml Update; public SteuerungsdateienXml Steuerungsdateien; public string Verrechnungskonten; } [XmlRoot("Update")] public class UpdateXml { [XmlAttribute("aktiviert", DataType = "boolean")] public bool IsActive; [XmlElement("Dateipfad")] public string Dateipfad; [XmlElement("Proxy")] public ProxyXml Proxy = new ProxyXml(); } [XmlRoot("Proxy")] public class ProxyXml { public string Adresse; public string Port; public string Benutzer; public string Passwort; [XmlElement("Domäne")] public string Domaene; } [XmlRoot("Steuerungsdateien")] public class SteuerungsdateienXml { public string Typ = "verzeichnis"; public string Pfad = ""; } [XmlRoot("Abfragen")] public class AbfragenXml { [XmlElement("AB")] public string SuSaKontenQuery; [XmlElement("ABS")] public string StatKontenQuery; [XmlArray("DepartmentFilter")] [XmlArrayItem("Department")] public List DepartmentFilter = new List(); } [XmlRoot("Über")] public class UebersetzungXml { [XmlAttribute("von")] public string Von; [XmlAttribute("nach")] public string Nach; } }