public async Task <bool> SendChangeEmailCallback(string newEmail) { var currentUser = await GetCurrentUser(); var changeEmailToken = await userManager.GenerateChangeEmailTokenAsync(currentUser, newEmail); changeEmailToken = cryptoService.Encrypt(changeEmailToken); string callbackUrl = $"{Configuration.GetValue<string>(AppSettingsKeys.ClientAddress)}account/changeEmail/confirm?newEmail={newEmail}&token={changeEmailToken}"; return(await emailSender.Send(EmailMessages.EmailChangeEmail(newEmail, callbackUrl))); }
public async Task <GenerateChangeEmailTokenResponse> Handle(GenerateChangeEmailTokenRequest request, CancellationToken cancellationToken) { if (await authValidationService.EmailExists(request.NewEmail)) { throw new DuplicateException("Email already exists", ErrorCodes.EmailExists); } var generateChangeEmailTokenResult = await profileService.GenerateChangeEmailToken(request.NewEmail) ?? throw new TokenException("Error occurred during generating change email token", ErrorCodes.CannotGenerateToken); return(await emailSender.Send(EmailMessages.EmailChangeEmail(request.NewEmail, $"{Configuration.GetValue<string>(AppSettingsKeys.ClientAddress)}profile/changeEmail?userId={generateChangeEmailTokenResult.UserId}&token={generateChangeEmailTokenResult.Token}&newEmail={generateChangeEmailTokenResult.NewEmail}")) ? new GenerateChangeEmailTokenResponse() : throw new ServiceException("Sending change email callback failed", ErrorCodes.SendEmailFailed)); }
public async Task <bool> SendChangeEmailCallback(string newEmail) { if (!await CanExecute(newEmail)) { return(false); } var currentUser = await GetCurrentUser(); if (currentUser == null) { return(false); } var changeEmailToken = await userManager.GenerateChangeEmailTokenAsync(currentUser, newEmail); changeEmailToken = cryptoService.Encrypt(changeEmailToken); string callbackUrl = $"{Configuration.GetValue<string>(AppSettingsKeys.ServerAddress)}/Profile/ConfirmChangeEmail?newEmail={newEmail}&token={changeEmailToken}"; return(await emailSender.Send(EmailMessages.EmailChangeEmail(newEmail, callbackUrl))); }