public object[] GetReport(Data data) { var databaseOfShoppingCart = new DatabaseOfItem(); UpdtaeShopingCart(data.products, databaseOfShoppingCart); List <FileIdentifiers> stores = new List <FileIdentifiers>(); foreach (string chainAndBranchName in data.storesToCompare) { string[] chainAndBranch = chainAndBranchName.Split(','); var store = new FileIdentifiers() { DirName = chainAndBranch[0], PartialFileName = chainAndBranch[1] }; stores.Add(store); } var fullReportOfStores = _storeFileManager.FullReportOfStores(stores, databaseOfShoppingCart); List <Report> reporetOfStores = new List <Report>(); foreach (var item in fullReportOfStores) { var report = new Report(); report.StoreName = item.Key; report.StoreReport = item.Value; reporetOfStores.Add(report); } return(reporetOfStores.ToArray <object>()); }
public void SaveFile(string filePath, DatabaseOfItem databaseOfItem) { using (Stream stream = File.Open(filePath, FileMode.OpenOrCreate)) { var binaryFormatter = new System.Runtime.Serialization.Formatters.Binary.BinaryFormatter(); binaryFormatter.Serialize(stream, databaseOfItem); } }
private void UpdtaeShopingCart(Product[] products, DatabaseOfItem databaseOfShoppingCart) { foreach (var item in products) { databaseOfShoppingCart.ItemsAndQuantities.Add(item.Name, item.Quantity); databaseOfShoppingCart.Items.Add(item.Name); } }
public DatabaseOfItem LoadFile(string filePath) { using (Stream stream = File.OpenRead(filePath)) { var binaryFormatter = new System.Runtime.Serialization.Formatters.Binary.BinaryFormatter(); DatabaseOfItem databaseOfItem = null; try { databaseOfItem = (DatabaseOfItem)binaryFormatter.Deserialize(stream); } catch (Exception) { } return(databaseOfItem); } }
public string FullReportOfStore(DatabaseOfItem databaseOfItem) { var report = new StringBuilder(); double sum = 0; foreach (var item in databaseOfItem.ItemsAndPrices) { var amount = (item.Value * databaseOfItem.ItemsAndQuantities[item.Key]) != 0 ? (item.Value * databaseOfItem.ItemsAndQuantities[item.Key]).ToString() : "Not Exists"; report.AppendFormat(@"{0} = {1} x{2}{3}", amount, item.Key, databaseOfItem.ItemsAndQuantities[item.Key], Environment.NewLine); sum += item.Value * databaseOfItem.ItemsAndQuantities[item.Key]; } report.Insert(0, $"Total = {sum}{Environment.NewLine}{Environment.NewLine}"); return(report.ToString()); }
public Dictionary <string, string> FullReportOfStores(List <FileIdentifiers> stores, DatabaseOfItem databaseOfShoppingCart) { var report = new Dictionary <string, string>(); foreach (var store in stores) { try { var itemsAndPrices = GetItemsPrice(store, databaseOfShoppingCart.Items) .OrderBy(item => item.Value).ToDictionary(pair => pair.Key, pair => pair.Value); databaseOfShoppingCart.ItemsAndPrices = itemsAndPrices; report.Add($"{store.DirName},{store.PartialFileName}", FullReportOfStore(databaseOfShoppingCart)); } catch (Exception ex) { //log here } } return(report); }