コード例 #1
0
        /// <summary>
        /// Gets the product asynchronous.
        /// </summary>
        /// <param name="client">The client.</param>
        /// <param name="url">The URL.</param>
        /// <param name="shop">The shop.</param>
        /// <returns>Wait-able task</returns>
        public static async Task <LRMProduct> GetProductAsync(
            HttpClient client, string url, LRMShop shop)
        {
            if (!url.Contains("leroymerlin.fr/v3/p/produits/"))
            {
                return(null);
            }

            string html = await ProcessUrlAsync(url, client).ConfigureAwait(false);

            if (html == null)
            {
                return(null);
            }

            int reference = GetReference(html);

            if (reference <= 0)
            {
                return(null);
            }

            LRMProduct product = new LRMProduct(reference, url);

            product.AddProductVarProp(shop, new LRMProductVarProp(GetPrice(html), GetStock(html)));

            return(product);
        }
コード例 #2
0
        /// <summary>Adds the or update product.</summary>
        /// <param name="product">The product.</param>
        /// <param name="shop">The shop.</param>
        public void AddOrUpdateProduct(LRMProduct product, LRMShop shop)
        {
            if (product == null || shop == null)
            {
                return;
            }

            // No such product, simply add this definition
            if (!Products.ContainsKey(product.Reference))
            {
                Products[product.Reference] = product;
            }

            // Update existing definition
            else
            {
                var localProduct = Products[product.Reference];

                foreach (var url in product.Urls)
                {
                    localProduct.Urls.Add(url);
                }

                foreach (var productProductVarProp in product.ProductVarProps)
                {
                    localProduct.AddProductVarProp(
                        productProductVarProp.Key, productProductVarProp.Value);
                }
            }
        }