Ejemplo n.º 1
0
        public async Task <IActionResult> Register(RegisterViewModel registerVM)
        {
            try
            {
                if (!ModelState.IsValid)
                {
                    ModelState.AddModelError("", _resourceForErrors["Register-InCorrectData"]);
                    return(View("Register"));
                }

                var registeredUser = await _AuthService.FindByEmailAsync(registerVM.Email);

                if (registeredUser != null)
                {
                    ModelState.AddModelError("", _resourceForErrors["Register-RegisteredUser"]);
                    return(View("Register"));
                }
                else
                {
                    var result = await _AuthService.CreateUserAsync(_mapper.Map <RegisterViewModel, RegisterDto>(registerVM));

                    if (!result.Succeeded)
                    {
                        ModelState.AddModelError("", _resourceForErrors["Register-InCorrectPassword"]);
                        return(View("Register"));
                    }
                    else
                    {
                        string code = await _AuthService.AddRoleAndTokenAsync(_mapper.Map <RegisterViewModel, RegisterDto>(registerVM));

                        var userDto = await _AuthService.FindByEmailAsync(registerVM.Email);

                        string confirmationLink = Url.Action(
                            nameof(ConfirmingEmail),
                            "Account",
                            new { code = code, userId = userDto.Id },
                            protocol: HttpContext.Request.Scheme);
                        await _AuthService.SendEmailRegistr(confirmationLink, userDto);

                        return(View("AcceptingEmail"));
                    }
                }
            }
            catch (Exception e)
            {
                _loggerService.LogError($"Exception: {e.Message}");
                return(RedirectToAction("HandleError", "Error", new { code = 500 }));
            }
        }
Ejemplo n.º 2
0
        /// <inheritdoc />
        public async Task <bool> SendEmailRegistrAsync(string email)
        {
            IUrlHelper _url  = _urlHelperFactory.GetUrlHelper(_actionContextAccessor.ActionContext);
            var        token = await _authService.AddRoleAndTokenAsync(email);

            var user = await _userManager.FindByEmailAsync(email);

            var confirmationLink = _url.Action("confirmingEmail",
                                               "Auth",
                                               new { token, userId = user.Id },
                                               _contextAccessor.HttpContext.Request.Scheme);

            user.EmailSendedOnRegister = DateTime.Now;
            var emailContent = _emailContentService.GetAuthRegisterEmail(confirmationLink);

            return(await _emailSendingService.SendEmailAsync(email, emailContent.Subject, emailContent.Message, emailContent.Title));
        }
Ejemplo n.º 3
0
        public async Task <IActionResult> Register([FromBody] RegisterDto registerDto)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(_resourceForErrors["Register-InCorrectData"]));
            }
            var registeredUser = await _authService.FindByEmailAsync(registerDto.Email);

            if (registeredUser != null)
            {
                return(BadRequest(_resourceForErrors["Register-RegisteredUser"]));
            }
            else
            {
                var result = await _authService.CreateUserAsync(registerDto);

                if (!result.Succeeded)
                {
                    return(BadRequest(_resourceForErrors["Register-InCorrectPassword"]));
                }
                else
                {
                    string token = await _authService.AddRoleAndTokenAsync(registerDto);

                    var userDto = await _authService.FindByEmailAsync(registerDto.Email);

                    string confirmationLink = Url.Action(
                        nameof(ConfirmingEmail),
                        "Auth",
                        new { token = token, userId = userDto.Id },
                        protocol: HttpContext.Request.Scheme);
                    await _authService.SendEmailRegistr(confirmationLink, userDto);

                    await _userDatesService.AddDateEntryAsync(userDto.Id);

                    return(Ok(_resourceForErrors["Confirm-Registration"]));
                }
            }
        }