public async Task Excluir(long[] ids) { List <long> idsComErroAoExcluir = new List <long>(); foreach (var idTipoAtividadeAvaliativa in ids) { try { var tipoAtividadeAvaliativa = repositorioTipoAvaliacao.ObterPorId(idTipoAtividadeAvaliativa); if (tipoAtividadeAvaliativa is null) { throw new NegocioException("Não foi possível localizar esta avaliação."); } if (await VerificarSeExisteAtividadeVinculada(idTipoAtividadeAvaliativa)) { throw new NegocioException("Já existe atividade avaliativa vinculada ao tipo de avaliação " + tipoAtividadeAvaliativa.Nome); } tipoAtividadeAvaliativa.Excluir(); await repositorioTipoAvaliacao.SalvarAsync(tipoAtividadeAvaliativa); } catch (Exception) { idsComErroAoExcluir.Add(idTipoAtividadeAvaliativa); } } if (idsComErroAoExcluir.Any()) { throw new NegocioException($"Não foi possível excluir os tipos de avaliação de ids {string.Join(",", idsComErroAoExcluir)}"); } }
public TipoAvaliacaoCompletaDto ObterPorId(long id) { var tipoAvaliacao = repositorioTipoAvaliacao.ObterPorId(id); var possuAvaliacaoVinculada = VerificarSeExisteAtividadeVinculada(id).Result; return(MapearParaDto(tipoAvaliacao, possuAvaliacaoVinculada)); }