public ActionResult AddEditStaffDepartmentBranch(StaffDepartmentBranchDto itemToAddEdit) { string error = String.Empty; bool result = false; if (ValidateModel(itemToAddEdit, out error)) { if (StaffListBl.SaveStaffDepartmentBranch(itemToAddEdit, out error)) result = true; } StaffDepartmentBranchModel model = StaffListBl.GetStaffDepartmentBranch(new StaffDepartmentBranchModel()); ViewBag.Error = error; return Json(new { ok = result, msg = error, model.Branches }); }
/// <summary> /// Проверка сохраняемой строки справочника кодировок филиалов. /// </summary> /// <param name="Row">Строка.</param> /// <param name="error"></param> /// <returns></returns> public bool ValidateDepartmentBranchRow(StaffDepartmentBranchDto Row, out string error) { //решил сделать все проврки здесь, чтобы все было в одном месте. error = string.Empty; //проверка на заполнение полей if (string.IsNullOrEmpty(Row.Name) || string.IsNullOrWhiteSpace(Row.Name) || string.IsNullOrEmpty(Row.Code) || string.IsNullOrWhiteSpace(Row.Code)) { error = "Поля Название и Код филиала должны быть заполнены!"; return false; } //проверка на правильное заполнение поля с кодом if (Row.Code.Trim().Length != 2) { error = "Код филиала должен состоять из двух символов!"; return false; } //проверка на повтор полей IList<StaffDepartmentBranch> db = StaffDepartmentBranchDao.LoadAll(); if (db != null && db.Count != 0) { if (db.Where(x => x.Name == Row.Name && x.Id != Row.Id).Count() > 0) { error = "Строка с таким названием филиала уже существует!"; return false; } if (db.Where(x => x.Code == Row.Code && x.Id != Row.Id).Count() > 0) { error = "Строка с таким кодом филиала уже существует!"; return false; } //проверка на вторичную привязку к подразделениям СКД if (db.Where(x => x.Department != null).Where(x => x.Department.Id == Row.DepartmentId && x.Id != Row.Id).Count() > 0) { error = "Это подразделение из СКД уже привязано к другому филиалу Финграда!"; return false; } } return true; }
/// <summary> /// Сохраняем данные справочника кодировок филиалов. /// </summary> /// <param name="itemToAddEdit"></param> /// <param name="error"></param> /// <returns></returns> public bool SaveStaffDepartmentBranch(StaffDepartmentBranchDto itemToAddEdit, out string error) { error = string.Empty; User curUser = UserDao.Load(AuthenticationService.CurrentUser.Id); StaffDepartmentBranch entity = itemToAddEdit.Id == 0 ? null : StaffDepartmentBranchDao.Load(itemToAddEdit.Id); if (entity == null) { entity = new StaffDepartmentBranch() { Code = itemToAddEdit.Code, Name = itemToAddEdit.Name, Department = itemToAddEdit.DepartmentId == 0 ? null : DepartmentDao.Load(itemToAddEdit.DepartmentId), Creator = curUser, CreateDate = DateTime.Now }; } else { entity.Code = itemToAddEdit.Code; entity.Name = itemToAddEdit.Name; entity.Department = itemToAddEdit.DepartmentId == 0 ? null : DepartmentDao.Load(itemToAddEdit.DepartmentId); entity.Editor = curUser; entity.EditDate = DateTime.Now; } try { StaffDepartmentBranchDao.SaveAndFlush(entity); error = "Данные сохранены!"; } catch (Exception ex) { StaffDepartmentBranchDao.RollbackTran(); error = string.Format("Произошла ошибка при сохранении данных! Исключение:{0}", ex.GetBaseException().Message); return false; } return true; }
protected bool ValidateModel(StaffDepartmentBranchDto EditRow, out string error) { error = string.Empty; return StaffListBl.ValidateDepartmentBranchRow(EditRow, out error); }