public async Task <ICommandResult> Handle(AdicionarDesenvolvedorResponsavelCommand 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 aplicativoResponsavel = await _aplicativoRepository.ObterAplicativoResponsavel(request.IdDesenvolvedor); if (aplicativoResponsavel != null) { AdicionarErro("Id", $@"O Desenvolvedor: {desenvolvedor.Nome}, com o Id informado, já é responsável pelo Aplicativo: {aplicativoResponsavel.Nome}"); _commandResult.AddFluentValidation(ValidationResult); return(_commandResult); } aplicativo.RemoverResponsavel(); aplicativo.AdicionarResponsavel(desenvolvedor); _aplicativoRepository.Update(aplicativo); var validacaoSalvar = await PersistirDados(_aplicativoRepository.UnitOfWork); _commandResult.AddFluentValidation(validacaoSalvar); if (validacaoSalvar.IsValid) { _commandResult.AddResult($@"Desenvolvedor {desenvolvedor.Nome}, agora é responsável pelo aplicativo {aplicativo.Nome}."); } return(_commandResult); }
//public async Task<bool> AtualizarNome(RegistrarAplicativoCommand request) //{ // if (!request.Valido()) return false; // var aplicativo = await _aplicativoRepository.ObterPorIdComTracking(request.Id); // aplicativo.AtualizarNome(request.Nome); // _aplicativoRepository.Update(aplicativo); // await PersistirDados(_aplicativoRepository.UnitOfWork); // return true; //} //public async Task<bool> AtualizarDataLancamento(RegistrarAplicativoCommand request) //{ // if (!request.Valido()) return false; // var aplicativo = await _aplicativoRepository.ObterPorIdComTracking(request.Id); // aplicativo.AtualizarDataLancamento(DateTime.Parse(request.DataLancamento)); // _aplicativoRepository.Update(aplicativo); // await PersistirDados(_aplicativoRepository.UnitOfWork); // return true; //} //public async Task<bool> AtualizarPlataforma(RegistrarAplicativoCommand request) //{ // if (!request.Valido()) return false; // var aplicativo = await _aplicativoRepository.ObterPorIdComTracking(request.Id); // aplicativo.AtualizarPlataforma(request.TipoPlataforma); // _aplicativoRepository.Update(aplicativo); // await PersistirDados(_aplicativoRepository.UnitOfWork); // return true; //} public async Task <ICommandResult> Handle(AtualizarAplicativoCommand request, CancellationToken cancellationToken) { if (!request.Valido()) { _commandResult.AddFluentValidation(request.ValidationResult); return(_commandResult); } var aplicativo = await _aplicativoRepository.ObterPorIdComTracking(request.Id); if (aplicativo == null) { AdicionarErro("Id", "Não foi encontrado Aplicativo com este Id"); _commandResult.AddFluentValidation(ValidationResult); return(_commandResult); } aplicativo.AtualizarNome(request.Nome); aplicativo.AtualizarDataLancamento(DateTime.Parse(request.DataLancamento)); aplicativo.AtualizarPlataforma(request.TipoPlataforma); _aplicativoRepository.Update(aplicativo); var validacaoSalvar = await PersistirDados(_aplicativoRepository.UnitOfWork); _commandResult.AddFluentValidation(validacaoSalvar); _commandResult.AddResult(aplicativo.Id); return(_commandResult); }