public async Task <IActionResult> RegisterEmployee([FromBody] EmployeeToRegister employeeToRegister) { if (string.IsNullOrEmpty(employeeToRegister.Email) || string.IsNullOrEmpty(employeeToRegister.FirstName) || string.IsNullOrEmpty(employeeToRegister.LastName) || string.IsNullOrEmpty(employeeToRegister.Password)) { return(UnprocessableEntity($"Missing name,email or password")); } var emailExists = await _employeeRepository.GetEmployeeByEmail(employeeToRegister.Email); if (emailExists != null) { return(Conflict($"This email: {employeeToRegister.Email} already exists")); } var result = await _employeeRepository.RegisterEmployee(employeeToRegister); if (!result.Succeeded) { return(Unauthorized("Something went wrong")); } var authResult = await MapToAuthorizationResult(employeeToRegister.Email); return(Ok(authResult)); }
public async Task <IdentityResult> RegisterEmployee(EmployeeToRegister employeeToRegister) { var employee = new EmployeeAuthentication() { UserName = employeeToRegister.Email, Email = employeeToRegister.Email, Employee = new Employee() { SchoolId = employeeToRegister.SchoolId, FirstName = employeeToRegister.FirstName, LastName = employeeToRegister.LastName, Email = employeeToRegister.Email, HireDate = DateTime.UtcNow, IsAdmin = false, } }; var response = await _userManager.CreateAsync(employee, employeeToRegister.Password); return(response); }