Exemplo n.º 1
0
        public async Task <IActionResult> ConfirmEmailAsync([FromRoute] string id, [FromBody] ConfirmEmailCommand confirmEmailCommand)
        {
            confirmEmailCommand.Id = id;
            await _mediator.Publish(confirmEmailCommand);

            return(Ok());
        }
Exemplo n.º 2
0
        public async Task <Result <bool> > Handle(ConfirmEmailCommand request, CancellationToken cancellationToken)
        {
            try
            {
                var user = await _userRepository.GetUserByEmail(request.Email);

                if (user == null)
                {
                    return(Result <bool> .BadRequest($"User with {request.Email} email doesn't exist!"));
                }

                if (user.IsConfirmed)
                {
                    return(Result <bool> .BadRequest($"User is already activated!"));
                }

                var isValidToken = TokenHelper.IsValidToken(request.Token, user.PasswordSalt);

                if (!isValidToken)
                {
                    return(Result <bool> .BadRequest($"Activation link is not valid or expired!"));
                }

                user.IsConfirmed = true;

                await _userRepository.Update(user);

                return(Result <bool> .Ok(true));
            }
            catch (Exception e)
            {
                return(Result <bool> .Failure(e.Message));
            }
        }
        public async Task <IActionResult> ConfirmEmail(ConfirmEmailCommand command)
        {
            var validation = ValidateCommand <ConfirmEmailCommand, ConfirmEmailCommandValidator>(command, v =>
            {
                v.RuleFor(c => c.Id.ToString()).Equal(User.Claims.FirstOrDefault(c => c.Value.Equals("userId"))?.Value);
            });

            if (!validation.IsValid)
            {
                return(BadRequest(validation.Errors));
            }

            var response = await _mediator.Send(command);

            if (!response.UserExists)
            {
                return(BadRequest(new string[] { "User doesn't exist" }));
            }

            if (response.EmailAlreadyConfirmed.Value)
            {
                return(BadRequest(new string[] { "User email is already confirmed" }));
            }

            if (!response.IsPasswordCorrect.Value)
            {
                return(BadRequest(new string[] { "Password is incorrect" }));
            }

            return(Ok());
        }
Exemplo n.º 4
0
        public async Task <Response <bool> > Handle(ConfirmEmailCommand request, CancellationToken cancellationToken)
        {
            var user = await userManager.FindByIdAsync(request.UserId);

            if (user != null && user.EmailConfirmed == false)
            {
                return(await ConfirmEmailAsync(user, request.Token));
            }
            return(Response.Fail <bool>("کاربری با چنین مشخصاتی یافت نشد", StatusCodeEnum.NOTAUTHORIZE));
        }
        public async Task <IActionResult> CONFIRM_CODE([FromQuery] ConfirmEmailCommand command)
        {
            var response = await _mediator.Send(command);

            if (response.Status.IsSuccessful)
            {
                return(Ok(response));
            }
            return(BadRequest(response));
        }
Exemplo n.º 6
0
        public async Task <IActionResult> ConfirmEmail(string userId, string token)
        {
            var command = new ConfirmEmailCommand
            {
                UserId = userId,
                Token  = token
            };

            return(await _mediator.Send(command));
        }
        public async Task <IActionResult> ConfirmEmail([FromBody] ConfirmEmailCommand registerCommand)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var result = await _mediator.Send(registerCommand);

            return(StatusCodeResult(result));
        }
        public async Task <ActionResult <User> > ConfirmEmail(string userId, string emailConfirmationCode)
        {
            var confirmEmailQuery = new ConfirmEmailCommand
            {
                UserId = userId,
                EmailConfirmationCode = emailConfirmationCode
            };

            var user = await _mediator.Send(confirmEmailQuery);

            return(Ok(user));
        }
Exemplo n.º 9
0
        public void ShoulBeErrors_WhenFieldsAreNullOrEmpty(string id, string token)
        {
            var command = new ConfirmEmailCommand()
            {
                Id    = id,
                Token = token
            };

            var result = _validator.TestValidate(command);

            result.ShouldHaveValidationErrorFor(command => command.Id);
            result.ShouldHaveValidationErrorFor(command => command.Token);
        }
Exemplo n.º 10
0
        public async Task Handle(ConfirmEmailCommand request, CancellationToken cancellationToken)
        {
            if (!request.IsValid())
            {
                NotifyValidationErrors(request);
                return;
            }

            var result = await _userService.ConfirmEmailAsync(request.Email, request.Code);

            if (result.HasValue)
            {
                await Bus.RaiseEvent(new EmailConfirmedEvent(request.Email, request.Code, result.Value));
            }
        }
Exemplo n.º 11
0
        public async Task <IActionResult> ConfirmEmail(ConfirmEmailCommand command)
        {
            if (!ModelState.IsValid)
            {
                return(ErrorModelResult());
            }
            try {
                var result = await _commandDispatcher.DispatchAsync <ConfirmEmailCommand, Result>(command);

                return(ToResult(result));
            }
            catch (FailureResult reqEx)
            {
                return(ErrorResult(reqEx));
            }
        }
Exemplo n.º 12
0
        public ConfirmEmailCommandHandlerTests(AuthenticationFixture fixture)
        {
            _mockUserManager          = fixture.UserManager;
            _mockJwtGenerator         = fixture.JwtGenerator;
            _mockEventBus             = fixture.EventBus;
            _mockFailedIdentityResult = fixture.FailedIdentityResult;
            _user = fixture.TestUser;
            _user.EmailConfirmed = true;

            _userId = "100kjdkwdu8";
            _emailConfirmationToken = "1010d1d120e";

            _command = new ConfirmEmailCommand
            {
                UserId = _userId,
                EmailConfirmationCode = "1092093dk0230-2"
            };
        }
Exemplo n.º 13
0
        public async Task <IActionResult> ConfirmEmail([FromBody] ConfirmEmailCommand request)
        {
            var authResult = await _mediator.Send(request);

            if (authResult.Success is false)
            {
                if (authResult.Message is "Email not found")
                {
                    return(NotFound(new
                    {
                        authResult.Success,
                        authResult.Message
                    }));
                }

                return(BadRequest(new
                {
                    authResult.Success,
                    authResult.Message
                }));
            }

            return(Ok(authResult.Message));
        }
Exemplo n.º 14
0
 public async Task <IActionResult> ConfirmEmail([FromBody] ConfirmEmailCommand command)
 {
     return(Created(CurrentUri, await Mediator.Send(command)));
 }
        public async Task <IActionResult> ConfirmEmailAsync([FromQuery] string userName, [FromQuery] string code)
        {
            var command = ConfirmEmailCommand.CreateFromInput(userName, code, CurrentUser);

            return(Ok(await Mediator.Send(command)));
        }
Exemplo n.º 16
0
        public async Task <IActionResult> Confirm(ConfirmEmailCommand model)
        {
            await this.Mediator.Send(model);

            return(this.Ok());
        }
 public async Task <Response <bool> > confirmEmail([FromBody] ConfirmEmailCommand command)
 {
     return(await mediator.Send(command));
 }
Exemplo n.º 18
0
 public async Task <IActionResult> ConfirmEmail([FromQuery] ConfirmEmailCommand command)
 {
     return(await _mediator.ExecuteCommandReturnActionResult(command));
 }