public void Register([FromBody] RegisterEmployeeDto employeeDto) { if (!_roleManager.RoleExistsAsync(Roles.Employee).Result) { throw new ApplicationException(ExceptionMessages.RolesHaveNotBeenCreated); } var userId = GetUserId(); var user = new ApplicationUser { UserName = employeeDto.Email, Email = employeeDto.Email }; var result = _userManager.CreateAsync(user, employeeDto.Password).Result; if (!result.Succeeded) { throw new ApplicationException(ExceptionMessages.UsernameAlreadyExists); } using (var dbContext = new ApplicationDbContext()) { var appUser = _userManager.Users.SingleOrDefault(au => au.Email == employeeDto.Email); result = _userManager.AddToRoleAsync(appUser, Roles.Employee).Result; if (!result.Succeeded) { throw new ApplicationException(ExceptionMessages.InternalServerError); } var employee = new Clinic_Employee { UserId = appUser.Id, OwnerUserId = userId }; dbContext.Clinic_Employees.Add(employee); dbContext.SaveChanges(); } }
public async Task <ApiResponse <RegisterResultApiModel> > Register([FromBody] RegisterEmployeeDto employeeDto) { #region Data Validates // ^[\\p{L} \\.\\-]{3,}$ // Regex pattern for first and lastname with no less than 3 characters if (string.IsNullOrWhiteSpace(employeeDto.FirstName) || !Regex.IsMatch(employeeDto.FirstName, "^[\\p{L} \\.\\-]{3,}$")) { return new ApiResponse <RegisterResultApiModel> { //TODO: Localize strings ErrorMessage = "Imie pracownika składa się z przynajmniej trzech liter" } } ; if (string.IsNullOrWhiteSpace(employeeDto.LastName) || !Regex.IsMatch(employeeDto.LastName, "^[\\p{L} \\.\\-]{3,}$")) { return new ApiResponse <RegisterResultApiModel> { //TODO: Localize strings ErrorMessage = "Nazwisko pracownika składa się z przynajmniej trzech liter" } } ; if (string.IsNullOrWhiteSpace(employeeDto.Pesel) || !EmployeeValidate.PeselValidate(employeeDto.Pesel)) { return new ApiResponse <RegisterResultApiModel> { ErrorMessage = "Pesel pracownika jest nie poprawny." } } ; if (string.IsNullOrWhiteSpace(employeeDto.Type)) { return new ApiResponse <RegisterResultApiModel> { //TODO: Localize strings ErrorMessage = "Pole posada pracownika jest puste" } } ; if (string.IsNullOrWhiteSpace(employeeDto.Specialize)) { return new ApiResponse <RegisterResultApiModel> { //TODO: Localize strings ErrorMessage = "Pole specjalizacja pracownika jest puste" } } ; if (string.IsNullOrWhiteSpace(employeeDto.NumberPwz) || !EmployeeValidate.NumberPwzValidate(employeeDto.NumberPwz)) { return new ApiResponse <RegisterResultApiModel> { ErrorMessage = "Wpisano nie prawidłowo numer pwz pracownika" } } ; #endregion var username = employeeDto.FirstName.Substring(0, 1) + employeeDto.LastName.Substring(0, 1) + employeeDto.Pesel[6..];