Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        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);
        }