//подбор аналогов 2.0 public bool GetCbrAnalog(ProjectEquipment pe, CurrentBreaker cbr) { using (DataEntities db = new DataEntities()) { var listAnalog = from cban in db.CurrentBreakers where cban.IdDisCurrent == cbr.IdDisCurrent && cban.IdCbCurrent == cbr.IdCbCurrent && cban.IdIcuValue == cbr.IdIcuValue && cban.IdDisType == cbr.IdDisType && cban.IdPoleNumber == cbr.IdPoleNumber select cban; if (listAnalog.Count() > 1) { foreach (CurrentBreaker c in listAnalog) { ProjectEquipment newpe = new ProjectEquipment(); if (c.Id != cbr.Id) //исключить текущий выключатель из подбора аналогов { if (pe.IdProjectNumber != null) { newpe.IdProjectNumber = pe.IdProjectNumber; } newpe.IdCbr = c.Id; newpe.Analog = true; newpe.IdNote = pe.IdNote; db.ProjectEquipments.Add(newpe); } } db.SaveChanges(); return(true); } else { ProjectEquipment notAnalog = new ProjectEquipment(); if (pe.IdProjectNumber != null) { notAnalog.IdProjectNumber = pe.IdProjectNumber; } notAnalog.IdCbr = 4354; // нет аналога notAnalog.Analog = true; notAnalog.IdNote = pe.IdNote; db.ProjectEquipments.Add(notAnalog); db.SaveChanges(); return(false); } } }
//создать новое "наименование присоединения" public int InsertProjectNote(CurrentBreaker cbr, Project project, string connectionNumber) { using (DataEntities db = new DataEntities()) { EquipNote pn = new EquipNote(); pn.Text = connectionNumber; if (project != null) { pn.IdProjectNumber = project.IdNumber; } db.EquipNotes.Add(pn); db.SaveChanges(); return(pn.Id); } }
//добавить выключатель в проект public ProjectEquipment AttachCbr(Project project, CurrentBreaker cbr, string connectionNumber) { using (DataEntities db = new DataEntities()) { ProjectEquipment pe = new ProjectEquipment(); if (project.IdNumber != 0) { pe.IdProjectNumber = project.IdNumber; pe.IdNote = InsertProjectNote(cbr, project, connectionNumber); } else { pe.IdNote = InsertProjectNote(cbr, null, connectionNumber); } pe.IdCbr = cbr.Id; pe.Analog = false; db.ProjectEquipments.Add(pe); db.SaveChanges(); return(pe); } }
//замена выключателя в проекте public ProjectEquipment ReplaceProjectCbr(Project project, string connectionNumber, CurrentBreaker newCbr) { using (DataEntities db = new DataEntities()) { int?pidn = null; if (project.IdNumber != 0) { pidn = project.IdNumber; //если связан с проектом } var peCbr = (from pe in db.ProjectEquipments join cbr in db.CurrentBreakers on pe.IdCbr equals cbr.Id join en in db.EquipNotes on pe.IdNote equals en.Id where en.Text == connectionNumber && pe.IdProjectNumber == pidn && pe.Analog == false select pe).SingleOrDefault(); DisattachAnalog(peCbr, project, false); //удалить связанные аналоги if (peCbr != null) { peCbr.IdCbr = newCbr.Id; db.ProjectEquipments.Attach(peCbr); db.Entry(peCbr).State = System.Data.Entity.EntityState.Modified; db.SaveChanges(); var peCbrnew = (from pe in db.ProjectEquipments where pe.Id == peCbr.Id select pe).SingleOrDefault(); return(peCbrnew); } else { return(null); } } }
//замена выключателя в проекте public static ProjectEquipment ReplaceProjectCbr(Project project, string connectionNumber, CurrentBreaker newCbr) { return(equipobj.ReplaceProjectCbr(project, connectionNumber, newCbr)); }
//добавить выключатель в проект public static ProjectEquipment AttachCbr(Project project, CurrentBreaker cbr, string connectionNumber) { return(equipobj.AttachCbr(project, cbr, connectionNumber)); }
//подбор аналогов 2.0 public static bool GetCbrAnalog(ProjectEquipment pe, CurrentBreaker cbr) { return(equipobj.GetCbrAnalog(pe, cbr)); }