public bool Add(Employee anEmployee) { bool checkEmail = CheckEmail(anEmployee.Email); if (checkEmail) { bool isUnique = IsEmailAddressUnique(anEmployee.Email); if (isUnique) { int lastSlN = GetEmployeeMaxSerialNo(); string accountCode = Generator.GenerateAccountCode("3301", lastSlN); anEmployee.EmployeeNo = Generator.GenerateEmployeeNo(anEmployee, lastSlN); anEmployee.SubSubSubAccountCode = accountCode; return(_iEmployeeGateway.Add(anEmployee) > 0); } return(false); } return(false); }
/// <summary> /// Создаем запись пользователя, его профиля и его должности. /// Возвращаем информацию о новом сотруднике. /// </summary> /// <param name="request"></param> /// <returns></returns> protected override AddEmployeeUseCaseResult Handler(AddEmployeeUseCaseRequest request) { // ищем, не существовало ли пользователя с таким именем, и создаем, если не было User currentUser = FindUser(request.Login); if (currentUser != null) { throw new Exception("Данное имя пользователя уже занято"); } _userGateway.Add(new User { Login = request.Login, Password = request.Password }); User newUser = FindUser(request.Login); // сохраняем информацию о пользователе _profileGateway.Add(new UserProfile { FirstName = request.FirstName, LastName = request.LastName, MiddleName = request.MiddleName, Phone = Phone.For(request.Phone), Gender = (Domain.Enumerations.ProfileGender)request.Gender, Birthdate = request.Birthdate, UserId = newUser.Id }); // записываем данные о сотруднике _employeeGateway.Add(new Employee { UserId = newUser.Id, PositionId = request.PositionId }); Employee newEmployee = _employeeGateway.FindByUserId(newUser.Id); return(new AddEmployeeUseCaseResult { Employee = _mapper.Map <EmployeeModel>(newEmployee) }); }