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; }
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)); } } }