Esempio n. 1
0
        public async Task <Result <RegistrarRequisicaoCriacaoSenhaResponse> > Handle(RegistrarRequisicaoCriacaoSenhaCommand request, CancellationToken cancellationToken)
        {
            var commanValidator = new RegistrarRequisicaoCriacaoSenhaCommandValidator();
            var validatorResult = commanValidator.Validate(request);

            if (!validatorResult.IsValid)
            {
                return(Result <RegistrarRequisicaoCriacaoSenhaResponse> .Fail(validatorResult.Errors.Select(x => x.ErrorMessage)));
            }

            var consultaUsuarioResult = await _usuarioServico.ConsultarUsuarioPorId(request.UsuarioId);

            if (consultaUsuarioResult.IsFailure)
            {
                return(Result <RegistrarRequisicaoCriacaoSenhaResponse> .Fail(consultaUsuarioResult.Messages));
            }

            var requisicaoSenhaUsuario         = RequisicaoSenhaUsuario.Criar(consultaUsuarioResult.Value, DateTimeOffset.Now);
            var registrarRequisicaoSenhaResult = await _requisicaoSenhaUsuarioServico.RegistrarRequisicaoSenha(requisicaoSenhaUsuario.Value);

            if (registrarRequisicaoSenhaResult.IsFailure)
            {
                return(Result <RegistrarRequisicaoCriacaoSenhaResponse> .Fail(registrarRequisicaoSenhaResult.Messages));
            }

            return(Result <RegistrarRequisicaoCriacaoSenhaResponse> .Ok(new RegistrarRequisicaoCriacaoSenhaResponse()));
        }