Exemplo n.º 1
0
        public static void WriteFile(string path)
        {
            var         db  = new Practice3Db();
            XmlDocument xml = new XmlDocument();

            XmlDeclaration xmlDeclaration = xml.CreateXmlDeclaration("1.0", "UTF-8", null);
            XmlElement     root           = xml.DocumentElement;

            xml.InsertBefore(xmlDeclaration, root);

            var accountingJournal = xml.CreateElement("accounting_journal");

            xml.AppendChild(accountingJournal);

            var accountingEntries = db.AccountingEntries.ToList();

            foreach (var entry in accountingEntries)
            {
                XmlElement entryElement = xml.CreateElement("accounting_entry");
                entryElement.AppendChild(CreateXMLElement(xml, "entry_id", entry.EntryId));
                entryElement.AppendChild(CreateXMLElement(xml, "description", entry.Description));
                entryElement.AppendChild(CreateXMLElement(xml, "date", entry.Date.ToString("yyyy-MM-dd")));
                entryElement.AppendChild(CreateXMLElement(xml, "accounting_account", entry.AccountingAccount));
                entryElement.AppendChild(CreateXMLElement(xml, "amount_of_movement", entry.AmountOfMovement.ToString("0.00")));
                entryElement.SetAttribute("type_of_movement", entry.MovementType == MovementType.Creidt ? "CR" : "DB");

                accountingJournal.AppendChild(entryElement);
            }
            xml.Save(path);
        }
Exemplo n.º 2
0
        public static void LoadFile(string file)
        {
            XmlDocument xml = new XmlDocument();

            xml.Load(file);

            var accountingJorunal = xml.DocumentElement.SelectSingleNode("/accounting_journal");
            var accountingEntries = new List <AccountingEntry>();

            foreach (XmlNode element in accountingJorunal.SelectNodes("accounting_entry"))
            {
                var entry = new AccountingEntry()
                {
                    EntryId           = Convert.ToInt32(element.SelectSingleNode("entry_id")?.InnerText),
                    Description       = element.SelectSingleNode("description")?.InnerText,
                    Date              = Convert.ToDateTime(element.SelectSingleNode("date").InnerText),
                    AccountingAccount = element.SelectSingleNode("accounting_account")?.InnerText,
                    AmountOfMovement  = Convert.ToDecimal(element.SelectSingleNode("amount_of_movement")?.InnerText),
                    MovementType      = element.Attributes["type_of_movement"].InnerText == "DR" ? MovementType.Debit : MovementType.Creidt
                };

                accountingEntries.Add(entry);
            }

            var db = new Practice3Db();

            db.AccountingEntries.AddRange(accountingEntries);
            db.SaveChanges();
        }