/// <summary> /// Проверка сохраняемой строки справочника кодировок РП-привязок. /// </summary> /// <param name="Row">Строка.</param> /// <param name="error"></param> /// <returns></returns> public bool ValidateDepartmentRPLinkRow(StaffDepartmentRPLinkDto Row, out string error) { //решил сделать все проврки здесь, чтобы все было в одном месте. error = string.Empty; //проверка на заполнение полей if (string.IsNullOrEmpty(Row.rName) || string.IsNullOrWhiteSpace(Row.rName) || string.IsNullOrEmpty(Row.rCode) || string.IsNullOrWhiteSpace(Row.rCode)) { error = "Поля Название и Код РП-привязки должны быть заполнены!"; return false; } //проверка на правильное заполнение поля с кодом if (Row.rCode.Trim().Length != 12) { error = "Код РП-привязи должен состоять из 12 символов!"; return false; } //проверка на повтор полей IList<StaffDepartmentRPLink> db = StaffDepartmentRPLinkDao.LoadAll(); if (db != null && db.Count != 0) { if (db.Where(x => x.Name == Row.rName && x.Id != Row.rId).Count() > 0) { error = "Строка с таким названием РП-привязки уже существует!"; return false; } if (db.Where(x => x.Code == Row.rCode && x.Id != Row.rId).Count() > 0) { error = "Строка с таким кодом РП-привязки уже существует!"; return false; } //проверка на вторичную привязку к подразделениям СКД if (db.Where(x => x.Department != null) .Where(x => x.Department.Id == Row.rDepartmentId && x.Id != Row.rId) .Count() > 0) { error = "Эта подразделение из СКД уже привязано к другой РП-привязке Финграда!"; return false; } } return true; }
public ActionResult AddEditStaffDepartmentRPLink(StaffDepartmentRPLinkDto itemToAddEdit, int BGFilterId, int AdminFilterId, int ManagementFilterId, int BranchFilterId) { string error = String.Empty; bool result = false; if (ValidateModel(itemToAddEdit, out error)) { if (StaffListBl.SaveStaffDepartmentRPLink(itemToAddEdit, out error)) result = true; } StaffDepartmentRPLinkModel model = StaffListBl.GetStaffDepartmentRPLink(new StaffDepartmentRPLinkModel(), BGFilterId, AdminFilterId, ManagementFilterId, BranchFilterId); ViewBag.Error = error; return Json(new { ok = result, msg = error, model.RPLinks }); }
/// <summary> /// Сохраняем данные справочника кодировок РП-привязок. /// </summary> /// <param name="itemToAddEdit"></param> /// <param name="error"></param> /// <returns></returns> public bool SaveStaffDepartmentRPLink(StaffDepartmentRPLinkDto itemToAddEdit, out string error) { error = string.Empty; User curUser = UserDao.Load(AuthenticationService.CurrentUser.Id); StaffDepartmentRPLink entity = itemToAddEdit.rId == 0 ? null : StaffDepartmentRPLinkDao.Load(itemToAddEdit.rId); if (entity == null) { entity = new StaffDepartmentRPLink() { Code = itemToAddEdit.rCode, Name = itemToAddEdit.rName, DepartmentBG = itemToAddEdit.BGId == 0 ? null : StaffDepartmentBusinessGroupDao.Get(itemToAddEdit.BGId), Department = itemToAddEdit.rDepartmentId == 0 ? null : DepartmentDao.Load(itemToAddEdit.rDepartmentId), Creator = curUser, CreateDate = DateTime.Now }; } else { entity.Code = itemToAddEdit.rCode; entity.Name = itemToAddEdit.rName; entity.DepartmentBG = itemToAddEdit.BGId == 0 ? null : StaffDepartmentBusinessGroupDao.Get(itemToAddEdit.BGId); entity.Department = itemToAddEdit.rDepartmentId == 0 ? null : DepartmentDao.Load(itemToAddEdit.rDepartmentId); entity.Editor = curUser; entity.EditDate = DateTime.Now; } try { StaffDepartmentRPLinkDao.SaveAndFlush(entity); error = "Данные сохранены!"; } catch (Exception ex) { StaffDepartmentRPLinkDao.RollbackTran(); error = string.Format("Произошла ошибка при сохранении данных! Исключение:{0}", ex.GetBaseException().Message); return false; } return true; }
protected bool ValidateModel(StaffDepartmentRPLinkDto EditRow, out string error) { error = string.Empty; return StaffListBl.ValidateDepartmentRPLinkRow(EditRow, out error); }