예제 #1
0
        public static void AddProductVariants(ProductFull product, string tokenAPI, string newProductId)
        {
            int i = 1;

            foreach (Variant variant in product.variants)
            {
                Console.WriteLine(Resources.Language.Variant + " " + i + "/" + product.variants.Count() + " ..." + " (" + variant.name + ")");

                AddProductVariantParameters addProductParameters = new AddProductVariantParameters("bl_1", newProductId, variant.sku, variant.ean, variant.name, variant.quantity, variant.price);

                string parameters = JsonConvert.SerializeObject(addProductParameters);

                JObject response       = CallBaseLinker(tokenAPI, "addProductVariant", parameters);
                JValue  responseStatus = (JValue)response["status"];

                if (responseStatus.Value.ToString() == "SUCCESS")
                {
                    Console.SetCursorPosition(0, Console.CursorTop - 1);
                    Console.WriteLine(Resources.Language.Variant + " " + i + "/" + product.variants.Count() + " OK!" + " (" + variant.name + ")");
                }
                else
                {
                    Console.SetCursorPosition(0, Console.CursorTop - 1);
                    Console.WriteLine(Resources.Language.Variant + " " + i + "/" + product.variants.Count() + " " + Resources.Language.Error + " (" + variant.name + ")");
                }

                i++;
            }
        }
예제 #2
0
        public static (bool, List <ProductFull>) GetProductsListFull(List <ProductSimple> listOfProducts, string tokenAPI, string category)
        {
            List <string> listOfProductsIds = new List <string>();

            foreach (var item in listOfProducts)
            {
                listOfProductsIds.Add(item.id);
            }
            List <List <string> > splittedListOfProductsIds = SplitList(listOfProductsIds, 1000);


            List <ProductFull> listOfProductsFull = new List <ProductFull>();

            Console.WriteLine(Resources.Language.StartedGetProductsListFullFromCategory + " " + category + "...");

            foreach (List <string> listOf1000ProductsIds in splittedListOfProductsIds)
            {
                Array productsArray = listOf1000ProductsIds.ToArray();
                GetProductsDataParameters getProductsDataParameters = new GetProductsDataParameters("bl_1", productsArray);

                string parameters = JsonConvert.SerializeObject(getProductsDataParameters);

                JObject response       = CallBaseLinker(tokenAPI, "getProductsData", parameters);
                JValue  responseStatus = (JValue)response["status"];

                if (responseStatus.Value.ToString() == "SUCCESS")
                {
                    JArray product = new JArray();
                    foreach (JToken item in response["products"].Children().Children())
                    {
                        string id                    = item["product_id"].ToString();
                        string sku                   = GetStringOrNull(item, "sku");
                        string ean                   = GetStringOrNull(item, "ean");
                        string name                  = item["name"].ToString();
                        int    quantity              = int.Parse(item["quantity"].ToString());
                        float  price_netto           = float.Parse(item["price_netto"].ToString());
                        float  price_brutto          = float.Parse(item["price_brutto"].ToString());
                        float  price_wholesale_netto = float.Parse(item["price_wholesale_netto"].ToString());
                        int    tax_rate              = int.Parse(item["tax_rate"].ToString());
                        float  weight                = float.Parse(item["weight"].ToString());
                        string description           = GetStringOrNull(item, "description");
                        string description_extra1    = GetStringOrNull(item, "description_extra1");
                        string description_extra2    = GetStringOrNull(item, "description_extra2");
                        string description_extra3    = GetStringOrNull(item, "description_extra3");
                        string description_extra4    = GetStringOrNull(item, "description_extra4");
                        string man_name              = GetStringOrNull(item, "man_name");
                        string man_image             = GetStringOrNull(item, "man_image");
                        int    category_id           = int.Parse(item["category_id"].ToString());

                        List <String> images = null;
                        if (item["images"].HasValues)
                        {
                            images = item["images"].Values <string>().ToList();
                        }
                        images = images?.Select(filename => Path.Combine("url:", filename)).ToList();

                        List <Dictionary <string, string> > features = new List <Dictionary <string, string> >();
                        if (item["features"].HasValues)
                        {
                            foreach (JToken feature in item["features"].ToList())
                            {
                                features.Add(new Dictionary <string, string> {
                                    ["name"] = feature.First.ToString(), ["value"] = feature.Last.ToString()
                                });;
                            }
                        }

                        List <Variant> variants = new List <Variant>();
                        if (item["variants"].HasValues)
                        {
                            foreach (JToken singleVariant in item["variants"].ToList())
                            {
                                Variant variant = new Variant();

                                foreach (JToken elementOfFeature in singleVariant)
                                {
                                    JProperty jProperty    = elementOfFeature.ToObject <JProperty>();
                                    string    propertyName = jProperty.Name;
                                    switch (propertyName)
                                    {
                                    case "variant_id":
                                        variant.variant_id = jProperty.Value.ToString();
                                        break;

                                    case "ean":
                                        variant.ean = jProperty.Value.ToString();
                                        break;

                                    case "sku":
                                        variant.sku = jProperty.Value.ToString();
                                        break;

                                    case "name":
                                        Regex regex = new Regex(name + " ");
                                        variant.name = regex.Replace(jProperty.Value.ToString().Replace(name, ""), "", 1);
                                        break;

                                    case "price":
                                        variant.price = float.Parse(jProperty.Value.ToString());
                                        break;

                                    case "quantity":
                                        variant.quantity = int.Parse(jProperty.Value.ToString());
                                        break;
                                    }
                                }

                                variants.Add(variant);
                            }
                        }


                        ProductFull baseLinkerProduct = new ProductFull(id, sku, ean, name, quantity, price_netto, price_brutto, price_wholesale_netto, tax_rate, weight, description, description_extra1, description_extra2, description_extra3, description_extra4, man_name, man_image, category_id, images, features, variants);
                        listOfProductsFull.Add(baseLinkerProduct);
                    }

                    Console.WriteLine(Resources.Language.DownloadedInfoAboutXProducts.Replace("{a}", listOfProductsFull.Count().ToString()));
                }
                else
                {
                    Console.WriteLine(Resources.Language.ErrorWhenDownloadFullProducts + " " + Resources.Language.PressAnythingToBackToMenu);
                    Console.ReadKey();
                    return(false, null);
                }
            }

            return(true, listOfProductsFull);
        }