Пример #1
0
        public void Arrange()
        {
            _command = new RequestChangeEmailCommand
            {
                UserId              = UserId,
                NewEmailAddress     = NewEmailAddress,
                ConfirmEmailAddress = NewEmailAddress,
                ReturnUrl           = ReturnUrl
            };

            _validator = new Mock <IValidator <RequestChangeEmailCommand> >();
            _validator.Setup(v => v.ValidateAsync(_command))
            .ReturnsAsync(new ValidationResult());

            _userRepository = new Mock <IUserRepository>();
            _userRepository.Setup(r => r.GetById(UserId))
            .Returns(Task.FromResult(new User
            {
                Id    = UserId,
                Email = OldEmailAddress
            }));

            _codeGenerator = new Mock <ICodeGenerator>();
            _codeGenerator.Setup(g => g.GenerateAlphaNumeric(6))
            .Returns(ConfirmEmailCode);

            _communicationService = new Mock <ICommunicationService>();

            _auditService = new Mock <IAuditService>();

            _handler = new RequestChangeEmailCommandHandler(_validator.Object, _userRepository.Object,
                                                            _codeGenerator.Object, _communicationService.Object, _auditService.Object);
        }
        public void Arrange()
        {
            _command = new RequestChangeEmailCommand
            {
                UserId              = "USER1",
                NewEmailAddress     = "*****@*****.**",
                ConfirmEmailAddress = "*****@*****.**"
            };

            _userRepository = new Mock <IUserRepository>();
            _userRepository.Setup(x => x.GetByEmailAddress(It.IsAny <string>())).ReturnsAsync((User)null);

            _validator = new RequestChangeEmailCommandValidator(_userRepository.Object);
        }
Пример #3
0
        public async Task <IActionResult> RequestChangeEmailForTheCurrentUser([FromBody] RequestChangeEmailCommand request)
        {
            if (request != null)
            {
                var currentUser = await this.currentUserProvider.GetCurrentUserAsync();

                request.UserId = currentUser.Id;
                request.ConfigureCallbackOptions("confirm-change-email", true);
            }
            else
            {
                return(this.BadRequest());
            }

            return(this.Ok(await this.Mediator.Send(request)));
        }
Пример #4
0
        public async Task <IActionResult> ChangeEmailRequest(AdminChangeEmailViewModel model)
        {
            try
            {
                var currentUser = await this.CurrentUserProvider.GetCurrentUserAsync();

                var request = new RequestChangeEmailCommand()
                {
                    UserId   = currentUser.Id,
                    NewEmail = model.NewEmail,
                };

                request.ConfigureCallbackOptions("admin/manage/change-email", false);
                var requestResult = await this.Mediator.Send(request);

                if (requestResult.Succeeded)
                {
                    this.ShowSuccessNotification("Email request has been sent successfully. Check your email for confirmation.");
                    return(this.View());
                }
                else
                {
                    this.ShowErrorNotification("Email request has not been sent successfully.");
                    return(this.View(model));
                }
            }
            catch (ValidationException ex)
            {
                this.ModelState.ApplyValidationException(ex, true);
            }
            catch (Exception)
            {
                this.ModelState.AddModelError(string.Empty, "Change email request operation has failed.");
            }

            return(this.View(model));
        }