public async Task <List <StoreProductsLink> > GetStoreProductsLinks() { var butikArtikel = await _bolagetSource.GetData <ButikArtikel>("https://www.systembolaget.se/api/assortment/stock/xml"); var storeProductsLinks = new List <StoreProductsLink>(); foreach (var item in butikArtikel.Items) { if (!(item is ButikArtikelButik)) { continue; } var butikArtikelButik = item as ButikArtikelButik; var storeProductsLink = new StoreProductsLink { StoreNumber = butikArtikelButik.ButikNr, ProductNumbers = new List <int>() }; foreach (var artikelNr in butikArtikelButik.ArtikelNr) { storeProductsLink.ProductNumbers.Add(Convert.ToInt32(artikelNr.Value)); } storeProductsLinks.Add(storeProductsLink); } return(storeProductsLinks); }
public async Task Save(StoreProductsLink storeProductsLink) { var currentProductNumbers = await GetCurrentProductNumbers(storeProductsLink.StoreNumber); var productNumbersToRemove = currentProductNumbers.Where(x => !storeProductsLink.ProductNumbers.Contains(x)).ToList(); var productNumbersToAdd = storeProductsLink.ProductNumbers.Where(x => !currentProductNumbers.Contains(x)).ToList(); await RemoveProductNumbers(storeProductsLink.StoreNumber, productNumbersToRemove); await AddStoreAndProductNumbers(storeProductsLink.StoreNumber, productNumbersToAdd); }