public ActionResult AddEditStaffDepartmentAdministration(StaffDepartmentAdministrationDto itemToAddEdit, int ManagementFilterId, int BranchFilterId) { string error = String.Empty; bool result = false; if (ValidateModel(itemToAddEdit, out error)) { if (StaffListBl.SaveStaffDepartmentAdministration(itemToAddEdit, out error)) result = true; } StaffDepartmentAdministrationModel model = StaffListBl.GetStaffDepartmentAdministration(new StaffDepartmentAdministrationModel(), ManagementFilterId, BranchFilterId); ViewBag.Error = error; return Json(new { ok = result, msg = error, model.Administrations }); }
/// <summary> /// Проверка сохраняемой строки справочника кодировок управлений. /// </summary> /// <param name="Row">Строка.</param> /// <param name="error"></param> /// <returns></returns> public bool ValidateDepartmentAdministrationRow(StaffDepartmentAdministrationDto Row, out string error) { //решил сделать все проврки здесь, чтобы все было в одном месте. error = string.Empty; //проверка на заполнение полей if (string.IsNullOrEmpty(Row.aName) || string.IsNullOrWhiteSpace(Row.aName) || string.IsNullOrEmpty(Row.aCode) || string.IsNullOrWhiteSpace(Row.aCode)) { error = "Поля Название и Код управления должны быть заполнены!"; return false; } //проверка на правильное заполнение поля с кодом if (Row.aCode.Trim().Length != 7) { error = "Код управления должен состоять из 7 символов!"; return false; } //проверка на повтор полей IList<StaffDepartmentAdministration> db = StaffDepartmentAdministrationDao.LoadAll(); if (db != null && db.Count != 0) { if (db.Where(x => x.Name == Row.aName && x.Id != Row.aId).Count() > 0) { error = "Строка с таким названием управления уже существует!"; return false; } if (db.Where(x => x.Code == Row.aCode && x.Id != Row.aId).Count() > 0) { error = "Строка с таким кодом управления уже существует!"; return false; } //проверка на вторичную привязку к подразделениям СКД if (db.Where(x => x.Department != null) .Where(x => x.Department.Id == Row.aDepartmentId && x.Id != Row.aId) .Count() > 0) { error = "Это подразделение из СКД уже привязано к другому управлению Финграда!"; return false; } } return true; }
/// <summary> /// Сохраняем данные справочника кодировок управлений. /// </summary> /// <param name="itemToAddEdit"></param> /// <param name="error"></param> /// <returns></returns> public bool SaveStaffDepartmentAdministration(StaffDepartmentAdministrationDto itemToAddEdit, out string error) { error = string.Empty; User curUser = UserDao.Load(AuthenticationService.CurrentUser.Id); StaffDepartmentAdministration entity = itemToAddEdit.aId == 0 ? null : StaffDepartmentAdministrationDao.Load(itemToAddEdit.aId); if (entity == null) { entity = new StaffDepartmentAdministration() { Code = itemToAddEdit.aCode, Name = itemToAddEdit.aName, DepartmentManagement = itemToAddEdit.ManagementId == 0 ? null : StaffDepartmentManagementDao.Get(itemToAddEdit.ManagementId), Department = itemToAddEdit.aDepartmentId == 0 ? null : DepartmentDao.Load(itemToAddEdit.aDepartmentId), Creator = curUser, CreateDate = DateTime.Now }; } else { entity.Code = itemToAddEdit.aCode; entity.Name = itemToAddEdit.aName; entity.DepartmentManagement = itemToAddEdit.ManagementId == 0 ? null : StaffDepartmentManagementDao.Get(itemToAddEdit.ManagementId); entity.Department = itemToAddEdit.aDepartmentId == 0 ? null : DepartmentDao.Load(itemToAddEdit.aDepartmentId); entity.Editor = curUser; entity.EditDate = DateTime.Now; } try { StaffDepartmentAdministrationDao.SaveAndFlush(entity); error = "Данные сохранены!"; } catch (Exception ex) { StaffDepartmentAdministrationDao.RollbackTran(); error = string.Format("Произошла ошибка при сохранении данных! Исключение:{0}", ex.GetBaseException().Message); return false; } return true; }
protected bool ValidateModel(StaffDepartmentAdministrationDto EditRow, out string error) { error = string.Empty; return StaffListBl.ValidateDepartmentAdministrationRow(EditRow, out error); }