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"));
            }
        }
Example #2
0
        public IActionResult Signup(SignUpBindingModel model, HttpResponse response)
        {
            UserService service = new UserService(Data.Data.Context);

            service.RegisterUser(model);
            Redirect(response, "/home/index");
            return(null);
        }
Example #3
0
        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));
        }
Example #4
0
        public void RegisterUser(SignUpBindingModel model)
        {
            User user = new User()
            {
                Email    = model.Email,
                Password = model.Password
            };

            this.context.Users.Add(user);
            this.context.SaveChanges();
        }