public AccountController(ILogger <AccountController> logger, ApplicationContext dbContext,
                          IEmailSender sender, EmailConfirmationService confirmationService,
                          AuthenticationService authenticationService)
 {
     _logger                = logger;
     _dbContext             = dbContext;
     _sender                = sender;
     _confirmationService   = confirmationService;
     _authenticationService = authenticationService;
 }
示例#2
0
        public async Task <IActionResult> ConfirmEmail(EmailConfirmationModel model)
        {
            try
            {
                if (!ModelState.IsValid)
                {
                    throw new InvalidOperationException("Input Parameters Not In Correct Format");
                }

                var email = await EmailConfirmationService.ConfirmEmail(model.UserId, model.Token);

                string redirectUrl = $"{HttpContext.Request.Scheme}://{HttpContext.Request.Host.Value}/EmailConfirmationSuccessful";
                EmailConfirmationResponse emailConfirmationResponse = new EmailConfirmationResponse
                {
                    Email = email,
                    ConfirmationStatus = EmailConfirmation.CONFIRMED
                };

                return(Ok(emailConfirmationResponse, "Email Confirmed Successfully", ResponseStatus.OK));
            }
            catch (InvalidOperationException ex)
            {
                EmailConfirmationResponse emailConfirmationResponse = new EmailConfirmationResponse
                {
                    ConfirmationStatus = EmailConfirmation.UNCONFIRMED
                };

                var user = await UserManager.FindByIdAsync(model.UserId);

                if (user != null)
                {
                    emailConfirmationResponse.Email = user.Email;
                }

                return(BadRequest(emailConfirmationResponse, ex.Message, ResponseStatus.APP_ERROR));
            }
            catch (Exception ex)
            {
                EmailConfirmationResponse emailConfirmationResponse = new EmailConfirmationResponse
                {
                    ConfirmationStatus = EmailConfirmation.UNCONFIRMED
                };

                var user = await UserManager.FindByIdAsync(model.UserId);

                if (user != null)
                {
                    emailConfirmationResponse.Email = user.Email;
                }



                return(BadRequest(emailConfirmationResponse, "Oops Something Went Wrong", ResponseStatus.FATAL_ERROR));
            }
        }
示例#3
0
        public async Task <IActionResult> ConfirmEmail(string userid, string token)
        {
            try
            {
                await EmailConfirmationService.ConfirmEmail(userid, token);

                string redirectUrl = $"{HttpContext.Request.Scheme}://{HttpContext.Request.Host.Value}/EmailConfirmationSuccessful";

                return(Redirect(redirectUrl));
            }
            catch (Exception ex)
            {
                return(Redirect($"{HttpContext.Request.Scheme}://{HttpContext.Request.Host.Value}/Error"));
            }
        }