public string GetStoreFullPath(FileIdentifiers fileIdentifiers) { var storeFileIdentifier = new FileIdentifiers(); storeFileIdentifier.DirName = fileIdentifiers.DirName; storeFileIdentifier.PartialFileName = "Stores"; FileInfo[] fileInfo = GetFileInfo(storeFileIdentifier); var XElementDoc = XElement.Load(fileInfo[0].FullName); string fileFullPath = string.Empty; var storeId = (from element in (XElementDoc.Descendants() .Where(el => string.Compare(el.Name.LocalName, "Store", StringComparison.OrdinalIgnoreCase) == 0)) where (string)element.Element("StoreName") == fileIdentifiers.PartialFileName select(string) element.Element("StoreId")) .ToList().First(); var storeIdInFormOf3Digits = string.Format("{0:000}", int.Parse(storeId)); storeFileIdentifier.PartialFileName = $"Price*Full*-{storeIdInFormOf3Digits}-"; FileInfo[] files = GetFileInfo(storeFileIdentifier); if (files.Any()) { fileFullPath = files[0].FullName; } return(System.IO.Path.Combine(Path, fileFullPath)); }
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 FileInfo[] GetFileInfo(FileIdentifiers fileIdentifiers) { var directoryInWhichToSearch = new DirectoryInfo(System.IO.Path.Combine(Path, fileIdentifiers.DirName)); FileInfo[] filesInDir = directoryInWhichToSearch.GetFiles($"*{fileIdentifiers.PartialFileName}*.*", SearchOption.AllDirectories); return(filesInDir); }
public List <string> GetStoresNames(FileIdentifiers fileIdentifiers, XmlElementId xmlElementId) { FileInfo[] filesInDir = GetFileInfo(fileIdentifiers); xmlElementId.XmlFullPath = System.IO.Path.Combine(fileIdentifiers.DirName, filesInDir[0].Name); var storeNames = GetListOfElementsFromXml(xmlElementId); return(storeNames); }
public object[] GetStoreNames(string info) { string[] getData = info.Split(','); var fileIdentifiers = new FileIdentifiers() { DirName = getData[0], PartialFileName = getData[1] }; string optionalAeraFilter = getData[2]; return(_storeFileManager.GetStoresNames(fileIdentifiers, optionalAeraFilter).ToArray <object>()); }
public List <string> GetDirectories() { List <string> chainNames = new List <string>(); var fileIdentifiers = new FileIdentifiers() { DirName = Path, PartialFileName = "Stores" }; FileInfo[] filesInDir = GetFileInfo(fileIdentifiers); foreach (FileInfo foundFile in filesInDir) { chainNames.Add(foundFile.Directory.Name); } return(chainNames); }
public async Task <object[]> GetProductItems(string info) { string[] getData = info.Split(','); var fileIdentifiers = new FileIdentifiers() { DirName = getData[0], PartialFileName = getData[1] }; List <string> items = new List <string>(); try { items = await _storeFileManager.GetItemsOfStore(fileIdentifiers); } catch (Exception ex) { }// log here} return(items.ToArray <object>()); }
public List <string> GetStoresNames(FileIdentifiers fileIdentifiers, string optionalAreaName) { FileInfo[] filesInDir = GetFileInfo(fileIdentifiers); var xmlElementId = new XmlElementId() { DescendantFrom = "Store", ElementName = "StoreName", XmlFullPath = System.IO.Path.Combine(Path, System.IO.Path.Combine(fileIdentifiers.DirName, filesInDir[0].Name)) }; if (!string.IsNullOrEmpty(optionalAreaName)) { xmlElementId.ElementCondition = "City"; xmlElementId.ElementConditionExpected = optionalAreaName; } var storeNames = GetListOfElementsFromXml(xmlElementId); return(storeNames); }
public Dictionary <string, double> GetItemsPrice(FileIdentifiers fileIdentifiers, List <string> items) { var itemsNameAndPrice = new Dictionary <string, double>(); double price = 0; var uri = GetStoreFullPath(fileIdentifiers); if (uri != string.Empty) { var XElementDoc = XElement.Load(uri); foreach (var itemName in items) { price = (from element in XElementDoc.Descendants() .Where(el => string.Compare(el.Name.LocalName, "Item", StringComparison.OrdinalIgnoreCase) == 0) where (string)element.Element("ItemName") == itemName select(double) element.Element("ItemPrice")).FirstOrDefault(); itemsNameAndPrice.Add(itemName, price); } } return(itemsNameAndPrice); }
public async Task <List <string> > GetItemsOfStore(FileIdentifiers fileIdentifiers) { var items = new List <string>(); var xmlElementId = new XmlElementId(); xmlElementId.XmlFullPath = GetStoreFullPath(fileIdentifiers); xmlElementId.DescendantFrom = "Item"; xmlElementId.ElementName = "ItemName"; await Task.Run(() => { var listOfItems = GetListOfElementsFromXml(xmlElementId); foreach (var item in listOfItems) { if (!items.Contains(item)) { items.Add(item); } } }); return(items); }