public async Task <ICommandResult> GetAplicativoDesenvolvedoresRelacionados(Guid id) { var desenvolvedores = await _aplicativoRepository.ObterDesenvolvedoresRelacionados(id); if (desenvolvedores.Any()) { _commandResult.AddResult(desenvolvedores); } return(_commandResult); }
public async Task <ICommandResult> Handle(ExcluirAplicativoCommand request, CancellationToken cancellationToken) { if (!request.Valido()) { _commandResult.AddFluentValidation(request.ValidationResult); return(_commandResult); } var aplicativo = await _aplicativoRepository.ObterPorIdComTracking(request.Id); if (aplicativo == null) { AdicionarErro("Id", "Nenhum Aplicativo encontrado com esse Id"); _commandResult.AddFluentValidation(ValidationResult); return(_commandResult); } if (!aplicativo.PermiteExcluir()) { var desenvolvedores = await _aplicativoRepository.ObterDesenvolvedoresRelacionados(aplicativo.Id); var desenvolvedoresVinculados = new StringBuilder(); desenvolvedoresVinculados.AppendJoin(", ", desenvolvedores.Take(desenvolvedores.Count()) .ToList() .Select(a => a.Nome)); AdicionarErro("Id", $@"Impossível excluir, pois este Aplicativo está vinculado aos Desenvolvedores: {desenvolvedoresVinculados}."); _commandResult.AddFluentValidation(ValidationResult); return(_commandResult); } var sucesso = await _aplicativoRepository.Excluir(aplicativo); if (sucesso) { _commandResult.AddResult("Excluído com sucesso"); } else { _commandResult.AddErro("Id", "Falha ao excluir"); } return(_commandResult); }