public void EditDefectPartial(EditDefectModel editModel) { Дефект def = new Дефект(); editModel.defect.id_признак_состояния = Convert.ToInt32(editModel.status); //db.Entry(editModel.vtd).State = EntityState.Modified; //db.Entry(editModel.ddo).State = EntityState.Modified; //db.Entry(editModel.repair).State = EntityState.Modified; //db.Entry(editModel.defect).State = EntityState.Modified; //db.Entry(book).State = EntityState.Modified; }
public ActionResult ReportTablePartial(string keysJSON) { //keysJSON - json строка с id объектов и дефектов, выбранных в чекбоксах. В строке подряд идут id объекта, затем id его дефектов var keys = JsonConvert.DeserializeObject <Guid[]>(keysJSON); List <ReportObjectModel> reportObjects = new List <ReportObjectModel>(); //модель для вьюхи foreach (var key in keys) { Объект pitObject = db.Объект.FirstOrDefault(o => o.id == key); //если id из массива принадлежит Объекту if (pitObject != null) { //добавляем в модель объект, участок газопровода, имя ЛПУ ReportObjectModel tempObj = new ReportObjectModel(); tempObj.pitObject = pitObject; tempObj.sectionTube = db.Участок_газопровода.FirstOrDefault(f => f.id == pitObject.id_участка_газопровода).Наименование; tempObj.lpuName = db.ЛПУ.FirstOrDefault(f => f.id == pitObject.id_ЛПУ).Наименование; reportObjects.Add(tempObj); } else // //если id из массива принадлежит Дефекту - добавляем дефекты к ОБъекту { ReportDefectModel tempDef = new ReportDefectModel(); Дефект def = db.Дефект.FirstOrDefault(d => d.id == key); tempDef.defectID = def.id; tempDef.vtd = db.Внутритрубная_диагностика.FirstOrDefault(v => v.id == def.id_ВТД); tempDef.ddo = db.ДДО.FirstOrDefault(d => d.id == def.id_ДДО); tempDef.repair = db.емонт.FirstOrDefault(r => r.id == def.id_Ремонта); tempDef.defKind = db.Виды_дефектов.FirstOrDefault(i => i.id == tempDef.vtd.id_виды_дефектов); tempDef.ddoResult = db.езультаты_ДДО.FirstOrDefault(i => i.id == tempDef.ddo.id_результаты_ДДО); tempDef.repKind = db.Виды_ремонта.FirstOrDefault(i => i.id == tempDef.repair.id_виды_ремонта); tempDef.id_признак_состояния = (int)def.id_признак_состояния; reportObjects.Last().defects.Add(tempDef); //добавляем к последнему добавленному объекту дефект } } //ViewBag.reportObjects = reportObjects; return(PartialView(reportObjects)); //reportObjects экспортировать в EXEL }
public string AddDefect(string objectID, string[] defectInfo) { try //передать id объекта { // var obj = db.Объект.FirstOrDefault(o => o.id == currentObject.id); string tmpString; DateTime tmpDate; Внутритрубная_диагностика tubeTest = new Внутритрубная_диагностика(); tubeTest.id = Guid.NewGuid(); tubeTest.id_виды_дефектов = int.Parse(defectInfo[0]); //1 tubeTest.Ориент__дефекта = int.Parse(defectInfo[1]); //2 tubeTest.Длина_дефекта = int.Parse(defectInfo[2]); //3 tubeTest.Ширина_дефекта = int.Parse(defectInfo[3]); //4 tubeTest.Глубина_дефекта = int.Parse(defectInfo[4]); //5 tmpString = defectInfo[5].Replace('.', ','); tubeTest.Срок_НО_по_ВТД = Convert.ToDouble(tmpString); //6 tmpDate = DateTime.Parse(defectInfo[6]); tubeTest.Дата_проведения_ВТД = tmpDate; //7 ДДО extraDiagnostic = new ДДО(); extraDiagnostic.id = Guid.NewGuid(); extraDiagnostic.Номер_МПР = int.Parse(defectInfo[7]); //8 extraDiagnostic.Номер_акта_НО = int.Parse(defectInfo[8]); //9 extraDiagnostic.Дата_начала_ДДО = DateTime.Parse(defectInfo[9]); //10 extraDiagnostic.Дата_окончания_ДДО = DateTime.Parse(defectInfo[10]); //11 tmpString = defectInfo[11].Replace('.', ','); extraDiagnostic.азр__давление = Convert.ToDouble(tmpString); //12 tmpString = defectInfo[12].Replace('.', ','); extraDiagnostic.Срок_ремонта = Convert.ToDouble(tmpString); //13 extraDiagnostic.id_результаты_ДДО = int.Parse(defectInfo[13]); //14 емонт repair = new емонт(); repair.id = Guid.NewGuid(); repair.Дата_начала = DateTime.Parse(defectInfo[14]); repair.Дата_окончания = DateTime.Parse(defectInfo[15]); repair.id_виды_ремонта = int.Parse(defectInfo[16]); repair.Примечание = defectInfo[17]; Дефект defect = new Дефект(); defect.id = Guid.NewGuid(); defect.id_признак_состояния = 0; defect.id_ВТД = tubeTest.id; defect.id_ДДО = extraDiagnostic.id; defect.id_Ремонта = repair.id; try { defect.id_объекта = Guid.Parse(objectID); } catch (Exception ex) { } db.Внутритрубная_диагностика.Add(tubeTest); db.ДДО.Add(extraDiagnostic); db.емонт.Add(repair); db.Дефект.Add(defect); db.SaveChanges(); } catch { } return(objectID); }