// calc and insert DowntimeCmena to BD SQL private void CalcDowntimeCmenaToSql(LoadCpu loadCpu, SqlContext db, long lastId, long nextId, List <DateTime> downtimeArr, bool flagYesRecords) { for (int i = 1; i < downtimeArr.Count; i++) { if ((!flagYesRecords) && (i == downtimeArr.Count - 1)) { return; // ели нет последнего колеса, выход, не записывая первую запись } Model_CycleDateTime mCycleDateTime = new Model_CycleDateTime(); // признак простоя перехода смен foreach (var itemSmenPattern in transitionSmenPattern) { if ((downtimeArr[i].Hour == itemSmenPattern) && (downtimeArr[i].Second == 0) && (downtimeArr[i].Minute == 0)) { mCycleDateTime.FlagDownTimeSmena = true; break; } else { mCycleDateTime.FlagDownTimeSmena = false; } } mCycleDateTime.Id_DateTime = Convert.ToInt64( loadCpu.NormalIntToString(downtimeArr[i].Year) + loadCpu.NormalIntToString(downtimeArr[i].Month) + loadCpu.NormalIntToString(downtimeArr[i].Day) + loadCpu.NormalIntToString(downtimeArr[i].Hour) + loadCpu.NormalIntToString(downtimeArr[i].Minute) + loadCpu.NormalIntToString(downtimeArr[i].Second) ); //TODO проверка на дубликаты в БД var lastDateTime = db.model_CycleDateTime.FirstOrDefault(oldDt => oldDt.Id_DateTime == mCycleDateTime.Id_DateTime); if (lastDateTime != null) { // если Id существует в БД // ПРОВЕРКА НА ДУБЛИКАТЫ!!!!! continue; } mCycleDateTime.CycleTime = keyNull; mCycleDateTime.DownTime = keyNull; mCycleDateTime.Microsimple = false; db.model_CycleDateTime.Add(mCycleDateTime); //db.SaveChanges(); SaveChangesSql(db, mCycleDateTime.Id_Cycle, "CalcDowntimeCmenaToSql(SqlContext db, long lastId, long nextId, List<DateTime> downtimeArr, bool flagYesRecords)"); } }