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 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 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); }
public List <string> GetListOfElementsFromXml(XmlElementId xmlElementId) { var listOfElements = new List <string>(); try { var XElementDoc = XElement.Load(xmlElementId.XmlFullPath); listOfElements = (from element in XElementDoc.Descendants() .Where(el => string.Compare(el.Name.LocalName, xmlElementId.DescendantFrom, StringComparison.OrdinalIgnoreCase) == 0) where (string.IsNullOrEmpty(xmlElementId.ElementCondition) || ((string)element.Element(xmlElementId.ElementCondition)).Trim() == xmlElementId.ElementConditionExpected) select(string) element .Element(xmlElementId.ElementName)).ToList(); } catch (Exception ex) { //File.WriteAllText($"{System.IO.Path.Combine(Path, @"LogFiles\StoreItems.txt")}", $"{xmlElementId.ElementName} not found"); //log here } return(listOfElements); }