public static List <VendorExpense> ReadFileXML(string path) { List <VendorExpense> readedVendorsExpense = new List <VendorExpense>(); using (XmlReader reader = XmlReader.Create(path)) { while (reader.Read()) { if ((reader.NodeType == XmlNodeType.Element) && (reader.Name == "sale")) { var newVendor = new VendorExpense(); var name = reader.GetAttribute("vendor"); var dbCobntext = new SupermarketContext(); var vendor = dbCobntext.Vendors.FirstOrDefault(x => x.Name == name); newVendor.Vendor = vendor; reader.Read(); reader.Read(); while ((reader.NodeType == XmlNodeType.Element) && (reader.Name == "expenses")) { var month = reader.GetAttribute("month"); DateTime vendorMonth = DateTime.ParseExact(month, "MMM-yyyy", CultureInfo.InvariantCulture); var sum = reader.ReadElementString(); newVendor.Date = vendorMonth; newVendor.MonthExpense = decimal.Parse(sum, CultureInfo.InvariantCulture); reader.Read(); readedVendorsExpense.Add(newVendor); newVendor = new VendorExpense(); newVendor.Vendor = vendor; } } } return(readedVendorsExpense); } }
public MarketData GetReportData() { var xmlDoc = XDocument.Load(this.ExpensesImportPath); var vendorNamesList = xmlDoc.Root.Elements("vendor"); foreach (var vendorElement in vendorNamesList) { var vendorName = vendorElement.Attribute("name").Value; var vendorId = this.SqlMarketContext.Vendors .Where(u => u.Name == vendorName) .Select(u => u.Id) .FirstOrDefault(); var monthExpenses = vendorElement.Elements("expenses"); foreach (var monthExpense in monthExpenses) { var dt = monthExpense.Attribute("month").Value; var parsedDatetime = DateTime.Parse(dt); var expense = monthExpense.Value; var vendorExpense = new VendorExpense { VendorId = vendorId, Month = parsedDatetime, Expenses = decimal.Parse(expense) }; this.VendorExpenses.Add(vendorExpense); } } return this; }
public void TransferData() { Console.WriteLine(@" Importing XML To MsSqlDB ------------------------------------------------"); DirectoryInfo directoryInfo = new DirectoryInfo(this.ExpensesImportPath); Console.WriteLine("From directory: {0}", directoryInfo.FullName); Console.WriteLine("Extracting data..."); Console.WriteLine("Sending data..."); Console.WriteLine("Sales report was imported."); var xmlDoc = XDocument.Load(this.ExpensesImportPath); var vendorNamesList = xmlDoc.Root.Elements("vendor"); foreach (var vendorElement in vendorNamesList) { ///Vendor v = null; //if (vendorElement.Attribute("name").Value != null) string vendorName = vendorElement.Attribute("name").Value; var vendorEntity = SupermarketContext.Vendors.Where(v => v.VendorName == vendorName).FirstOrDefault(); if (vendorEntity == null) { vendorEntity = new Vendor() { VendorName = vendorName }; this.SupermarketContext.Vendors.Add(vendorEntity); } var monthExpenses = vendorElement.Elements("expenses"); foreach (var monthExpense in monthExpenses) { var dt = monthExpense.Attribute("month").Value; var parsedDatetime = DateTime.Parse(dt); var expense = monthExpense.Value; var vendorExpense = new VendorExpense() { VendorId = vendorEntity.Id, Date = parsedDatetime, Total = decimal.Parse(expense, CultureInfo.InvariantCulture) }; this.SupermarketContext.VendorExpenses.Add(vendorExpense); this.SupermarketContext.SaveChanges(); } } }
public void TransferData() { Console.WriteLine(@" Importing XML To MsSqlDB ------------------------------------------------"); DirectoryInfo directoryInfo = new DirectoryInfo(this.ExpensesImportPath); Console.WriteLine("From directory: {0}", directoryInfo.FullName); Console.WriteLine("Extracting data..."); Console.WriteLine("Sending data..."); Console.WriteLine("Sales report was imported."); var xmlDoc = XDocument.Load(this.ExpensesImportPath); var vendorNamesList = xmlDoc.Root.Elements("vendor"); foreach (var vendorElement in vendorNamesList) { ///Vendor v = null; //if (vendorElement.Attribute("name").Value != null) string vendorName = vendorElement.Attribute("name").Value; var vendorEntity = SupermarketContext.Vendors.Where(v => v.VendorName == vendorName).FirstOrDefault(); if (vendorEntity == null) { vendorEntity = new Vendor() { VendorName = vendorName }; this.SupermarketContext.Vendors.Add(vendorEntity); } var monthExpenses = vendorElement.Elements("expenses"); foreach (var monthExpense in monthExpenses) { var dt = monthExpense.Attribute("month").Value; var parsedDatetime = DateTime.Parse(dt); var expense = monthExpense.Value; var vendorExpense = new VendorExpense() { VendorId = vendorEntity.Id, Date = parsedDatetime, Total = decimal.Parse(expense, CultureInfo.InvariantCulture) }; this.SupermarketContext.VendorExpenses.Add(vendorExpense); this.SupermarketContext.SaveChanges(); } } }
public IEnumerable <VendorExpense> GetAllVendorExpenses() { var allVendorExpenses = new List <VendorExpense>(); XmlDocument doc = new XmlDocument(); doc.Load(XmlSettings.Default.InitialXmlFileLocation); XmlNodeList vendorNodesList = doc.SelectNodes("/expenses-by-month/vendor"); foreach (XmlNode vendorNode in vendorNodesList) { string vendorName = vendorNode.Attributes.GetNamedItem("name").Value; if (string.IsNullOrEmpty(vendorName)) { throw new ArgumentNullException("Vendor name cannot be empty!"); } XmlNodeList vendorExpenses = vendorNode.SelectNodes("expenses"); foreach (XmlNode expense in vendorExpenses) { VendorExpense vendorExpense = new VendorExpense(); vendorExpense.VendorName = vendorName; decimal parsedAmmount = 0; if (!decimal.TryParse(expense.InnerText, NumberStyles.Any, CultureInfo.InvariantCulture, out parsedAmmount)) { throw new FormatException("Unable to parse expenses ammount in" + XmlSettings.Default.InitialXmlFileLocation + "! Parse string: " + expense.InnerText); } vendorExpense.Ammount = parsedAmmount; DateTime parsedDate = new DateTime(); if (!DateTime.TryParseExact(expense.Attributes.GetNamedItem("month").Value, "MMM-yyyy", CultureInfo.InvariantCulture, DateTimeStyles.None, out parsedDate)) { throw new FormatException("Unable to parse date from expenses entry in" + XmlSettings.Default.InitialXmlFileLocation + "! Parse string: " + expense.Attributes.GetNamedItem("month").Value); } vendorExpense.Date = parsedDate; allVendorExpenses.Add(vendorExpense); } } return(allVendorExpenses); }
public void TransferData() { var xmlDoc = XDocument.Load(this.ExpensesImportPath); var vendorNamesList = xmlDoc.Root.Elements("vendor"); foreach (var vendorElement in vendorNamesList) { ///V/endor v = null; //if (vendorElement.Attribute("name").Value != null) string vendorName = vendorElement.Attribute("name").Value; if (vendorName == null) { throw new Exception("no vendor name found"); } var VendorEntity = SupermarketContext.Vendors.Where(v => v.VendorName == vendorName).FirstOrDefault(); if (VendorEntity == null) { VendorEntity = new Vendor() { VendorName = vendorName }; SupermarketContext.Vendors.Add(VendorEntity); } var monthExpenses = vendorElement.Elements("expenses"); foreach (var monthExpense in monthExpenses) { var dt = monthExpense.Attribute("month").Value; var parsedDatetime = DateTime.Parse(dt); var expense = monthExpense.Value; var vendorExpense = new VendorExpense() { VendorId = VendorEntity.Id, Date = parsedDatetime, Total = decimal.Parse(expense, CultureInfo.InvariantCulture) }; this.SupermarketContext.VendorExpenses.Add(vendorExpense); this.SupermarketContext.SaveChanges(); } } }
public void TransferData() { var xmlDoc = XDocument.Load(this.ExpensesImportPath); var vendorNamesList = xmlDoc.Root.Elements("vendor"); foreach (var vendorElement in vendorNamesList) { ///V/endor v = null; //if (vendorElement.Attribute("name").Value != null) string vendorName = vendorElement.Attribute("name").Value; if (vendorName == null) { throw new Exception("no vendor name found"); } var VendorEntity = SupermarketContext.Vendors.Where(v => v.VendorName == vendorName).FirstOrDefault(); if (VendorEntity == null) { VendorEntity = new Vendor() { VendorName = vendorName }; SupermarketContext.Vendors.Add(VendorEntity); } var monthExpenses = vendorElement.Elements("expenses"); foreach (var monthExpense in monthExpenses) { var dt = monthExpense.Attribute("month").Value; var parsedDatetime = DateTime.Parse(dt); var expense = monthExpense.Value; var vendorExpense = new VendorExpense() { VendorId = VendorEntity.Id, Date = parsedDatetime, Total = decimal.Parse(expense, CultureInfo.InvariantCulture) }; this.SupermarketContext.VendorExpenses.Add(vendorExpense); this.SupermarketContext.SaveChanges(); } } }
public IEnumerable<VendorExpense> GetAllVendorExpenses() { var allVendorExpenses = new List<VendorExpense>(); var doc = new XmlDocument(); doc.Load(XmlSettings.Default.InitialXmlFileLocation); var vendorNodesList = doc.SelectNodes("/expenses-by-month/vendor"); if (vendorNodesList != null) { foreach (XmlNode vendorNode in vendorNodesList) { if (vendorNode.Attributes != null) { var vendorName = vendorNode.Attributes.GetNamedItem("name").Value; if (string.IsNullOrEmpty(vendorName)) { throw new ArgumentNullException("Vendor name cannot be empty!", nameof(vendorName)); } var vendorExpenses = vendorNode.SelectNodes("expenses"); if (vendorExpenses != null) { foreach (XmlNode expense in vendorExpenses) { var vendorExpense = new VendorExpense { VendorName = vendorName }; decimal parsedAmmount = 0; if ( !decimal.TryParse( expense.InnerText, NumberStyles.Any, CultureInfo.InvariantCulture, out parsedAmmount)) { throw new FormatException( "Unable to parse expenses ammount in" + XmlSettings.Default.InitialXmlFileLocation + "! Parse string: " + expense.InnerText); } vendorExpense.Ammount = parsedAmmount; var parsedDate = new DateTime(); if ( !DateTime.TryParseExact( expense.Attributes.GetNamedItem("month").Value, "MMM-yyyy", CultureInfo.InvariantCulture, DateTimeStyles.None, out parsedDate)) { throw new FormatException( "Unable to parse date from expenses entry in" + XmlSettings.Default.InitialXmlFileLocation + "! Parse string: " + expense.Attributes.GetNamedItem("month").Value); } vendorExpense.Date = parsedDate; allVendorExpenses.Add(vendorExpense); } } } } } return allVendorExpenses; }