示例#1
0
        private static void Collect(XmlProductListResponse parsed, string season = "22", string gender = "1", bool isChild = false, string suggestionTerms = "12", string waterProtection = "0", string actionType = "14")
        {
            foreach (var item in parsed.Products.Products)
            {
                if (items.Keys.Any(x => x == item.Id))
                {
                    continue;
                }

                var category = item.Categories.List.FirstOrDefault();

                if (category == null)
                {
                    continue;
                }

                string categoryName = category.Name.Replace("'", "''");

                categories.Add(categoryName);

                string description  = item.Description.Replace("'", "''");
                string name         = item.Name.Replace("'", "''");
                string retailerName = item.Retailer.Name.Replace("'", "''");

                items.Add(item.Id,
                          string.Format(Constants.INSERT_ITEMS,
                                        categoryName,
                                        actionType,
                                        description,
                                        name,
                                        1,
                                        season,
                                        gender,
                                        "0",                    // Min Age
                                        isChild ? "18" : "100", // Max Age
                                        waterProtection,
                                        "0",
                                        "0",
                                        "0",
                                        retailerName,
                                        ITEM_PROVIDER,
                                        suggestionTerms,
                                        "1", //IsPublic
                                        item.Image.Sizes.IPhone.Url,
                                        isChild ? "1" : "0",
                                        "1", // IsAvailable
                                        item.Price.ToString().Replace(",", "."),
                                        item.ClickUrl,
                                        "0",    // Currency
                                        "'" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "'",
                                        "NULL", //AvailableTill
                                        ITEM_PROVIDER));
            }
        }
示例#2
0
        private static async Task DownloadAndFillItems()
        {
            int total = 0;

            foreach (string uriGroup in uris.Keys)
            {
                total += uris[uriGroup].Count;
            }

            int current = 1;

            foreach (string uriGroup in uris.Keys)
            {
                foreach (string uri in uris[uriGroup])
                {
                    Console.WriteLine(string.Format("Downloading {0} from {1}.", current, total));

                    string body = string.Empty;
                    try
                    {
                        var httpRequest = (HttpWebRequest)WebRequest.Create(uri);

                        WebResponse webResponse = await httpRequest.GetResponseAsync();

                        var response = (HttpWebResponse)webResponse;

                        using (StreamReader sr = new StreamReader(response.GetResponseStream()))
                        {
                            body = sr.ReadToEnd();
                        }
                    }
                    catch (Exception ex)
                    {
                        Console.Write(ex.Message + " " + ex.StackTrace);
                    }

                    XmlProductListResponse parsed = null;
                    try
                    {
                        parsed = FromXmlString(body);
                    }
                    catch (Exception ex)
                    {
                        Console.Write(ex.Message + " " + ex.StackTrace);
                    }

                    switch (uriGroup)
                    {
                    case "rain":
                    {
                        Collect(parsed, "22", "1", false, "136", "75", "14");
                        Collect(parsed, "22", "1", false, "136", "75", "13");
                    }
                    break;

                    case "wind":
                    {
                        Collect(parsed, "28", "1", false, "56", "0", "14");
                        Collect(parsed, "28", "1", false, "56", "0", "13");
                    }
                    break;

                    case "autumn":
                    {
                        Collect(parsed, "20", "1", false, (2 + 4 + 8 + 128).ToString(), "50", "14");
                        Collect(parsed, "20", "1", false, (2 + 4 + 8 + 128).ToString(), "50", "13");
                    }
                    break;

                    case "warm":
                    {
                        Collect(parsed, "12", "1", false, (2 + 4 + 8).ToString(), "0", "14");
                        Collect(parsed, "12", "1", false, (2 + 4 + 8).ToString(), "0", "13");
                    }
                    break;

                    case "winter":
                    {
                        Collect(parsed, "8", "1", false, (2 + 4 + 8).ToString(), "50", "14");
                        Collect(parsed, "8", "1", false, (2 + 4 + 8).ToString(), "50", "13");
                    }
                    break;

                    case "sport":
                    {
                        Collect(parsed, "30", "1", false, (2 + 4 + 8 + 256 + 1024 + 2048).ToString(), "0", "3");
                        Collect(parsed, "30", "1", false, (2 + 4 + 8 + 256 + 1024 + 2048).ToString(), "0", "4");
                    }
                    break;

                    case "office":
                    {
                        Collect(parsed, "30", "1", false, (2 + 4 + 8 + 256 + 1024 + 2048).ToString(), "0", "9");
                        Collect(parsed, "30", "1", false, (2 + 4 + 8 + 256 + 1024 + 2048).ToString(), "0", "10");
                    }
                    break;

                    case "walk":
                    {
                        Collect(parsed, "28", "1", false, (2 + 4 + 8 + 256 + 1024 + 2048).ToString(), "25", "14");
                        Collect(parsed, "28", "1", false, (2 + 4 + 8 + 256 + 1024 + 2048).ToString(), "25", "13");
                    }
                    break;

                    case "kids":
                    {
                        Collect(parsed, "28", "1", true, (2 + 4 + 8).ToString(), "0", "11");
                        Collect(parsed, "28", "1", true, (2 + 4 + 8).ToString(), "0", "12");
                    }
                    break;

                    case "travel":
                    {
                        Collect(parsed, "28", "1", false, (2 + 4 + 8).ToString(), "0", "15");
                        Collect(parsed, "28", "0", false, (2 + 4 + 8).ToString(), "0", "16");
                    }
                    break;

                    default:
                        break;
                    }

                    ++current;
                }
            }
        }