Пример #1
0
        public async Task <ICommandResult> Handle(DesvincularAplicativoDesenvolvedorCommand 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);
            }

            var desenvolvedor = await _desenvolvedorRepository.ObterPorIdComTracking(request.IdDesenvolvedor);

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


            var sucesso = await _aplicativoRepository.DesvincularDesenvolvedor(aplicativo, desenvolvedor);

            if (!sucesso)
            {
                AdicionarErro("Id", $"Desenvolvedor {desenvolvedor.Nome}, não está viculado ao aplicativo {aplicativo.Nome}.");
                _commandResult.AddFluentValidation(ValidationResult);
                return(_commandResult);
            }

            _aplicativoRepository.Update(aplicativo);

            var validacaoSalvar = await PersistirDados(_aplicativoRepository.UnitOfWork);

            _commandResult.AddFluentValidation(validacaoSalvar);

            if (validacaoSalvar.IsValid)
            {
                _commandResult.AddResult($@"Desenvolvedor {desenvolvedor.Nome}, agora está desvinculado do aplicativo {aplicativo.Nome}.");
            }

            return(_commandResult);
        }
Пример #2
0
 public async Task <ICommandResult> PutDesvincularDesenvolvedor(DesvincularAplicativoDesenvolvedorCommand command)
 {
     return(await _mediatorHandler.EnviarComandoGenerico(command));
 }