Beispiel #1
0
        public ActionResult ChangeEmail(GetChangeEmailRequest request)
        {
            var model = new ChangeEmailViewModel(
                request.OldEmail,
                request.NewEmail,
                request.IsEmailNotChanged,
                request.IsEmailExists,
                request.IsInvalidCredentials);

            return(View("~/OAuth/Views/ChangeEmail.cshtml", model));
        }
Beispiel #2
0
        public async Task <ActionResult> ChangeEmail([FromForm] PostChangeEmailRequest request, CancellationToken ct)
        {
            if (request.OldEmail.Trim().ToLower() == request.NewEmail.Trim().ToLower())
            {
                var getChangeEmailRequest = new GetChangeEmailRequest
                {
                    OldEmail          = request.OldEmail,
                    NewEmail          = request.NewEmail,
                    IsEmailNotChanged = true
                };

                return(RedirectToAction("ChangeEmail", getChangeEmailRequest));
            }

            var isEmailExists = await _identityStatusService.IsEmailExistsAsync(request.NewEmail, ct);

            if (isEmailExists)
            {
                var getChangeEmailRequest = new GetChangeEmailRequest
                {
                    OldEmail      = request.OldEmail,
                    NewEmail      = request.NewEmail,
                    IsEmailExists = true
                };

                return(RedirectToAction("ChangeEmail", getChangeEmailRequest));
            }

            var response = await _emailChangeService.ChangeAsync(
                request.OldEmail,
                request.NewEmail,
                request.Password,
                IpAddress,
                UserAgent,
                ct);

            if (response.IsInvalidCredentials)
            {
                var getChangeEmailRequest = new GetChangeEmailRequest
                {
                    OldEmail             = request.OldEmail,
                    NewEmail             = request.NewEmail,
                    IsInvalidCredentials = true
                };

                return(RedirectToAction("ChangeEmail", getChangeEmailRequest));
            }

            return(View("~/OAuth/Views/ChangeEmailConfirmation.cshtml"));
        }