예제 #1
0
        public async Task <ICommandResult> Handle(RemoverDesenvolvedorResponsavelCommand request,
                                                  CancellationToken cancellationToken)
        {
            if (!request.Valido())
            {
                _commandResult.AddFluentValidation(request.ValidationResult);
                return(_commandResult);
            }

            var aplicativo = await _aplicativoRepository.ObterPorIdComTracking(request.IdAplicativo);

            if (aplicativo == null)
            {
                AdicionarErro("Id", "Aplicativo não encontrado com este Id.");
                _commandResult.AddFluentValidation(ValidationResult);
                return(_commandResult);
            }

            if (aplicativo.IdDesenvolvedorResponsavel == null)
            {
                AdicionarErro("Id", "Não existe responsável por este Aplicativo.");
                _commandResult.AddFluentValidation(ValidationResult);
                return(_commandResult);
            }

            aplicativo.RemoverResponsavel();
            _aplicativoRepository.Update(aplicativo);

            var validacaoSalvar = await PersistirDados(_aplicativoRepository.UnitOfWork);

            _commandResult.AddFluentValidation(validacaoSalvar);

            if (validacaoSalvar.IsValid)
            {
                _commandResult.AddResult($@"Foi removido o responsável pelo aplicativo {aplicativo.Nome}.");
            }

            return(_commandResult);
        }
예제 #2
0
 public async Task <ICommandResult> PutRemoverDesenvolvedorResponsavel(RemoverDesenvolvedorResponsavelCommand command)
 {
     return(await _mediatorHandler.EnviarComandoGenerico(command));
 }