コード例 #1
0
        void Eldorado(object obj)
        {
            List <string> lUrl = obj as List <string>;
            //часть
            int part = 1;

            //пока не пройдет все категории
            foreach (string u in lUrl)
            {
                if (u == string.Empty)
                {
                    part++;
                    continue;
                }
                //получаем кол-во страниц в категории
                int count = GetCountPagesEldorado(u);
                //лист хранящий продукты
                List <Product> ListProduct = new List <Product>();
                //пока не пройдем все листы в категории
                for (int i = 0; i < count; i++)
                {
                    //получаем данные в лист с каждой страницы
                    GetListProductEldorado(GetNextPageEldorado(u, i), ListProduct);
                    EldoradoProc = (int)(i * 100 / count);
                }

                //создаем поток и отправляем туда лист с ценами для обновления в базе
                //PComfy.Value = (int)(part / lUrl.Count)*100;

                EldoradoTotalProc = (int)(part * 100 / lUrl.Count);
                part++;
                UBD ubd = new UBD()
                {
                    Name = "Eldorado", lp = ListProduct
                };
                Thread th = new Thread(UpdateBD);
                th.Start(ubd);
            }
            EldoradoProc      = 100;
            EldoradoTotalProc = 100;
        }
コード例 #2
0
        void UpdateBD(object obj)
        {
            MContext       mc = new MContext();
            UBD            u  = obj as UBD;
            List <Product> lp = new List <Product>();

            foreach (Product p in u.lp)
            {
                switch (u.Name)
                {
                case "Comfy":
                {
                    List <SKU> ls = mc.SKUs.Where(x => x.idComfy == p.ID).ToList();
                    if (ls.Count != 0)
                    {
                        foreach (SKU s in ls)
                        {
                            s.ComfyPrice = int.Parse(p.Price);
                            if (p.Promo != string.Empty)
                            {
                                s.ComfyPromo = int.Parse(p.Promo);
                            }
                            mc.SaveChanges();
                        }
                    }
                    else
                    {
                        lp.Add(p);
                    }
                    break;
                }

                case "Rozetka":
                {
                    List <SKU> ls = mc.SKUs.Where(x => x.idRozetka == p.ID).ToList();
                    if (ls.Count != 0)
                    {
                        foreach (SKU s in ls)
                        {
                            s.RozetkaPrice = int.Parse(p.Price);
                            if (p.Promo != string.Empty && p.Promo != null)
                            {
                                s.RozetkaPromo = int.Parse(p.Promo);
                            }
                            mc.SaveChanges();
                        }
                    }
                    else
                    {
                        lp.Add(p);
                    }
                    break;
                }

                case "Allo":
                {
                    List <SKU> ls = mc.SKUs.Where(x => x.idAllo == p.ID).ToList();
                    if (ls.Count != 0)
                    {
                        foreach (SKU s in ls)
                        {
                            s.AlloPrice = int.Parse(p.Price);
                            if (p.Promo != string.Empty && p.Promo != null)
                            {
                                s.AlloPromo = int.Parse(p.Promo);
                            }
                            mc.SaveChanges();
                        }
                    }
                    else
                    {
                        lp.Add(p);
                    }
                    break;
                }

                case "Eldorado":
                {
                    List <SKU> ls = mc.SKUs.Where(x => x.idEldorado == p.ID).ToList();
                    if (ls.Count != 0)
                    {
                        foreach (SKU s in ls)
                        {
                            s.EldoradoPrice = int.Parse(p.Price);
                            if (p.Promo != string.Empty && p.Promo != null)
                            {
                                s.EldoradoPromo = int.Parse(p.Promo);
                            }
                            mc.SaveChanges();
                        }
                    }
                    else
                    {
                        lp.Add(p);
                    }
                    break;
                }
                }
            }
            using (StreamWriter sw = new StreamWriter(string.Format("D:\\{0}.csv", u.Name), true, Encoding.UTF8))
            {
                foreach (Product p in lp)
                {
                    sw.WriteLine(GetStringOfFile(p));
                }
            }
        }