public static async Task <bool> run(DateTime DateStart, DateTime DateEnd, int type) { bool ok = true; switch (type) { case 0: ok = await process(DateStart, DateEnd); Logger.Info(ok.ToString()); break; case 1: ok = PuskStopReader.CheckCrossData(DateStart, DateEnd); Logger.Info(ok.ToString()); break; case 2: ok = await PuskStopReader.FillAnalogData(DateStart, DateEnd, (new string[] { "DN", "LN" }).ToList()); Logger.Info(ok.ToString()); break; case 100: ok = await process(DateStart, DateEnd); Logger.Info(ok.ToString()); PuskStopReader.CheckCrossData(DateStart, DateEnd); ok = await PuskStopReader.FillAnalogData(DateStart, DateEnd, (new string[] { "DN", "LN" }).ToList()); Logger.Info(ok.ToString()); break; case 201: CreateReport(DateStart, DateEnd, "MNU", "Насосы МНУ"); break; case 202: CreateReport(DateStart, DateEnd, "DN", "Дренажные насосы"); break; case 203: CreateReport(DateStart, DateEnd, "LN", "Лекажные насосы"); break; } return(ok); }
public static async Task <bool> process(DateTime dateStart, DateTime dateEnd) { DateTime date = dateStart.AddSeconds(0);; DateTime start = DateTime.Now; DiagDBEntities diagDB = new DiagDBEntities(); Dictionary <int, List <PuskStopReader.PuskStopReaderRecord> > requestsDict = new Dictionary <int, List <PuskStopReader.PuskStopReaderRecord> >(); for (int gg = 1; gg <= 10; gg++) { if (gg == 8) { continue; } List <PuskStopReader.PuskStopReaderRecord> request = new List <PuskStopReader.PuskStopReaderRecord>(); IEnumerable <PuskStopPoint> req = from p in diagDB.PuskStopPoints where p.gg == gg && p.analog == false select p; foreach (PuskStopPoint pt in req) { PuskStopReader.PuskStopReaderRecord rec = new PuskStopReader.PuskStopReaderRecord(); rec.DBRecord = pt.pointType; rec.iess = pt.point; rec.inverted = pt.inverted; rec.gg = pt.gg; IEnumerable <PuskStopPoint> req2 = from p in diagDB.PuskStopPoints where p.gg == gg && p.analog == true && pt.pointType.Contains(p.pointType) select p; if (req2.Count() > 0) { PuskStopPoint inner = req2.First(); rec.ValueIess = inner.point; } request.Add(rec); } requestsDict.Add(gg, request); } while (date < dateEnd) { Logger.Info(date.ToString()); for (int gg = 1; gg <= 10; gg++) { if (gg == 8) { continue; } if (gg == 3 && date < DateTime.Parse("07.05.2020")) { continue; } if (gg == 5 && date < DateTime.Parse("01.06.2019")) { continue; } if (gg == 1 && date < DateTime.Parse("21.04.2021")) { continue; } Logger.Info(String.Format("ГГ {0} Дата {1}", gg, date)); List <PuskStopReader.PuskStopReaderRecord> request = requestsDict[gg]; bool ok = await PuskStopReader.FillPuskStopData(request, date, date.AddHours(3)); } date = date.AddHours(3); } DateTime end = DateTime.Now; Logger.Info((end - start).TotalMinutes.ToString()); Logger.Info("Finish"); return(true); }