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 })); } }
/// <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)); }
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"])); } } }