public async Task <IActionResult> Register([FromBody] AuthenticationDTO credentials)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest());
            }

            var result = await _userManagementService.CreateAsync(credentials.Email, credentials.Password);

            if (result.Result != AuthenticationResults.Succes)
            {
                return(BadRequest());
            }

            var code = await _userManagementService.GenerateEmailConfiramtionTokenAsync(result.User);

            // The url sent to the user via email
            // This functionality has not been implemented yet.
            var callbackUrl = Url.Page(
                "/Account/ConfirmEmail",
                pageHandler: null,
                values: new { userId = result.User, code = code },
                protocol: Request.Scheme);

            await _emailService.SendEmailAsync(credentials.Email, "Email verification",
                                               $"Please confirm your account by <a href='{HtmlEncoder.Default.Encode(callbackUrl)}'>clicking here</a>.");

            return(Ok("Please verify your email adress"));
        }
Example #2
0
        public async Task <IActionResult> Create(CreateUserRequest request)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest());
            }

            var mapUser = AutoMapper.Mapper.Map <User>(request);

            if (request.Password != request.ConfirmPassword)
            {
                return(BadRequest());
            }

            if (await _userService.CreateAsync(mapUser))
            {
                return(Ok());
            }

            return(BadRequest());
        }