//метод: сохраняет или обновляет в БД заявку на ремонт контроллера public int SaveCRepOrder(CRepOrder repOrder) { CRepOrder dbEntry = dataDBContext.CRepOrders.SingleOrDefault(ro => ro.CRO_ID==repOrder.CRO_ID); if (dbEntry==null) { //нет в БД, добавим //удалим лишние пробельчики TrimCReporderFields(repOrder); dataDBContext.CRepOrders.InsertOnSubmit(repOrder); } else { //есть в БД: обновим dbEntry.CRO_billedDate = repOrder.CRO_billedDate; dbEntry.CRO_CID = repOrder.CRO_CID; dbEntry.CRO_closedDate = repOrder.CRO_closedDate; dbEntry.CRO_CmodelID = repOrder.CRO_CmodelID; dbEntry.CRO_contact1 = repOrder.CRO_contact1; dbEntry.CRO_contact2 = repOrder.CRO_contact2; dbEntry.CRO_contact3 = repOrder.CRO_contact3; dbEntry.CRO_contact4 = repOrder.CRO_contact4; dbEntry.CRO_contact5 = repOrder.CRO_contact5; dbEntry.CRO_createdDate = repOrder.CRO_createdDate; dbEntry.CRO_description = repOrder.CRO_description; dbEntry.CRO_equipLocation = repOrder.CRO_equipLocation; dbEntry.CRO_examinedDate = repOrder.CRO_examinedDate; dbEntry.CRO_expectedRepairTerm = repOrder.CRO_expectedRepairTerm; dbEntry.CRO_HSID = repOrder.CRO_HSID; dbEntry.CRO_repairCost = repOrder.CRO_repairCost; dbEntry.CRO_comment = repOrder.CRO_comment; dbEntry.CRO_repairResult = repOrder.CRO_repairResult; dbEntry.CRO_revealedDate = repOrder.CRO_revealedDate; dbEntry.CRO_sendedDate = repOrder.CRO_sendedDate; dbEntry.CRO_CprodDate = repOrder.CRO_CprodDate; dbEntry.CRO_repairContractor = repOrder.CRO_repairContractor; dbEntry.CRO_verdict = repOrder.CRO_verdict; dbEntry.CRO_No = repOrder.CRO_No; //удалим лишние пробельчики TrimCReporderFields(dbEntry); } dataDBContext.SubmitChanges(); return repOrder.CRO_ID; }
string _itemType; //c = контроллер #endregion Fields #region Constructors //конструкторы - для каждого вида заявки свой public HSRepairHistoryItem(CRepOrder order) { _cOrder = order; _itemType = "c"; }
//методы обрезкки лишних введенных пробелов в начале и конце текстовых полей void TrimCReporderFields(CRepOrder repOrder) { if(repOrder.CRO_description!=null) repOrder.CRO_description = repOrder.CRO_description.Trim(); if (repOrder.CRO_expectedRepairTerm != null) repOrder.CRO_expectedRepairTerm = repOrder.CRO_expectedRepairTerm.Trim(); if (repOrder.CRO_equipLocation != null) repOrder.CRO_equipLocation = repOrder.CRO_equipLocation.Trim(); if (repOrder.CRO_No != null) repOrder.CRO_No = repOrder.CRO_No.Trim(); }
public ActionResult CreporderDetails(CreporderDetails_VM model) { // валидация введенных пользователем данных ValidateCreporderDetails_VM(model, ModelState); if (ModelState.IsValid) { //валидация успешна, пробуем сохранить изменения в БД //1.если одорудование не находится в ТП, то введенный пользователем адрес установки сохраним в БД if (!model.Mounted) { UserSavedOption userOption = userRepository.GetUserOptions(System.Web.HttpContext.Current.User.Identity.Name); userOption.USO_СLastEquipLocation = model.EquipLocation; try { userRepository.SaveUserOptions(userOption); } catch (Exception e) { ModelState.AddModelError("", e.Message); } } } //дополнительно убедимся, что контроллер смонтирован во избежание нулевых ссылок при создании model.Controller = dataRepository.Controllers.FirstOrDefault(c => c.C_ID == model.CID); if (!model.Controller.ASystems1.Any()) { ModelState.AddModelError ("","Невозможно создать заявку: контроллер демонтирован с объекта!"); } //дополнительно убедимся, что lдля контроллера указан год выпуска во избежание нулевых ссылок при создании if (model.Controller.C_prodDate==null) { ModelState.AddModelError("", "Невозможно создать заявку: для контроллера не указан год производства!"); } int newOrderID = 0; if (ModelState.IsValid) { //валидация успешна, и сохранены настройки пользователя, контроллер смонтирован: добавим в БД новую заявку CRepOrder newRepOrder = new CRepOrder { CRO_CID = model.CID, CRO_CprodDate = model.Controller.C_prodDate.Value, CRO_CmodelID = model.Controller.C_modelNo, CRO_createdDate = DateTime.Now, CRO_description = model.ReporderDescription, CRO_equipLocation = model.Mounted ? model.Controller.ASystems1.First().Heat_Station.HS_adress : model.EquipLocation, CRO_expectedRepairTerm = model.ExpectedRepairTerm, CRO_HSID = model.Controller.ASystems1.First().AS_Heat_Station, CRO_revealedDate = DateTime.Parse(model.RevealedDate) }; //добавим контакты List<ContactWCheck> ContsForCRepOrder = model.ContactsChoice.Where(c => c.Checked == true).ToList(); newRepOrder.CRO_contact1 = ContsForCRepOrder[0].ContactID; if (ContsForCRepOrder.Count > 1) newRepOrder.CRO_contact2 = ContsForCRepOrder[1].ContactID; if (ContsForCRepOrder.Count > 2) newRepOrder.CRO_contact3 = ContsForCRepOrder[2].ContactID; if (ContsForCRepOrder.Count > 3) newRepOrder.CRO_contact4 = ContsForCRepOrder[3].ContactID; if (ContsForCRepOrder.Count > 4) newRepOrder.CRO_contact5 = ContsForCRepOrder[4].ContactID; try { newOrderID = repairRepository.SaveCRepOrder(newRepOrder); } catch (Exception e) { ModelState.AddModelError("", e.Message); } } if (ModelState.IsValid) { //все операции успешны: переходим на окно просмотра карточки заявки return RedirectToAction("ViewCReporder", new { CRO_ID = newOrderID, returnURL = model.ReturnURL }); } else { //есть ошибки валидации - выведем их пользователю //добавим в модель недостающие данные if (model.ContactsChoice!=null) { foreach (var contact in model.ContactsChoice) { contact.Contact = userRepository.Contacts.SingleOrDefault(c => c.Cont_ID == contact.ContactID); } } else { model.AllContacts = userRepository.Contacts.Where(c => c.Cont_enterprise == model.EnterpriseNo && c.Cont_deletedBy == null); } return View(model); } }
public CRepOrderWordDoc(CRepOrder order) { _order = order; }