public async Task <IActionResult> Register([FromBody] RegisterDtoRequest registerDto) { if (!ModelState.IsValid) { return(StatusCodeAndDtoWrapper.BuilBadRequest(ModelState)); } var user = new ApplicationUser { UserName = registerDto.Username, Email = registerDto.Email }; var result = await _usersService.CreateUserAsync(user, registerDto.Password); if (result.Succeeded) { // return StatusCodeAndDtoWrapper.BuildSuccess("Registered successfully"); return(Ok( new { success = true, full_messages = new string[] { "Register was successful", } })); } else { return(StatusCodeAndDtoWrapper.BuildBadRequest(result.Errors)); } }
public async Task <ServiceResponse <RegisterDtoResponse> > RegisterAsync(RegisterDtoRequest dto) { if (await _context.Users.Where(x => x.Email == dto.Email).AnyAsync()) { return(new ServiceResponse <RegisterDtoResponse>(HttpStatusCode.BadRequest, "Email already exists")); } if (await _context.Users.Where(x => x.UserName == dto.UserName).AnyAsync()) { return(new ServiceResponse <RegisterDtoResponse>(HttpStatusCode.BadRequest, "Nick already exists")); } if (dto.Role == Role.Administrator) { var currentUserName = _userAccessor.GetCurrentUsername(); if (currentUserName == null) { return(new ServiceResponse <RegisterDtoResponse>(HttpStatusCode.BadRequest, "No permissions to register an account with this role")); } var currentUser = await _userManager.FindByNameAsync(currentUserName); if (currentUser == null || currentUser.Role != Role.Administrator) { return(new ServiceResponse <RegisterDtoResponse>(HttpStatusCode.BadRequest, "No permissions to register an account with this role")); } } if (dto.Role == Role.Owner || dto.Role == Role.Vet) { var user = new ApplicationUser() { LastName = dto.LastName, FirstName = dto.FirstName, Email = dto.Email, UserName = dto.UserName, Role = dto.Role }; var result = await _userManager.CreateAsync(user, dto.Password); if (result.Succeeded) { var responseDto = new RegisterDtoResponse() { FirstName = user.FirstName, LastName = user.LastName, Email = user.Email, UserName = user.UserName, Role = user.Role, Token = _jwtGenerator.CreateToken(user) }; return(new ServiceResponse <RegisterDtoResponse>(HttpStatusCode.OK, responseDto)); } } return(new ServiceResponse <RegisterDtoResponse>(HttpStatusCode.Unauthorized)); }
public async Task <ActionResult <RegisterDtoResponse> > Register(RegisterDtoRequest dto) { var response = await _userService.RegisterAsync(dto); if (response.StatusCode == HttpStatusCode.OK) { return(Ok(response.ResponseContent)); } if (response.StatusCode == HttpStatusCode.Unauthorized) { return(Unauthorized(response.Message)); } return(BadRequest(response.Message)); }