public async Task <IActionResult> SignUp([FromBody] SignUpBindingModel userParam) { try { var user = _mapper.Map <UserDto>(userParam); Guid userId = await _userService.SignUpAsync(user, userParam.Password); await _logger.Info($"SignUp new user: { user.FirstNameEng } { user.LastNameEng }", userId); var absoluteUri = string.Concat( HttpContext.Request.Scheme, "://", HttpContext.Request.Host.ToUriComponent(), "/api/users/confirm-email" ); await _userService.SendConfirmationEmailAsync(absoluteUri, userParam.Email); return(Ok()); } catch (ServiceException aex) { return(this.StatusCode((int)aex.ErrorCode, aex.Message)); } catch (Exception ex) { await _logger.Error(ex.Message); return(StatusCode(500, "Something went wrong")); } }
public IActionResult Signup(SignUpBindingModel model, HttpResponse response) { UserService service = new UserService(Data.Data.Context); service.RegisterUser(model); Redirect(response, "/home/index"); return(null); }
public async Task <IActionResult> SignUp([FromBody] SignUpBindingModel data) { if (data == null) { return(BadRequest("The payload must not be null.")); } if (string.IsNullOrWhiteSpace(data.Email)) { return(BadRequest("An email address is required.")); } if (string.IsNullOrWhiteSpace(data.Password)) { return(BadRequest("A password is required.")); } if (data.Password.Length < 8) { return(BadRequest("The password cannot be less than 8 characters.")); } var user = await _userService.GetUserByEmail(data.Email); if (user != null) { var response = new ContentResult { StatusCode = StatusCodes.Status409Conflict, Content = "Sorry, a user with that email already exists." }; return(response); } var email = EmailTemplates.GetWelcomeEmail(); await _emailService.SendAsync(data.Email, "Welcome", email); _logger.LogInformation("Welcome email sent uccessfully."); user = new User { FirstName = data.FirstName, LastName = data.LastName, Email = data.Email, Password = data.Password }; await _userService.Add(user); var result = _mapper.Map <AuthViewModel>(user); var token = Helpers.GetToken(user, 48); result.Token = token; return(Ok(result)); }
public void RegisterUser(SignUpBindingModel model) { User user = new User() { Email = model.Email, Password = model.Password }; this.context.Users.Add(user); this.context.SaveChanges(); }