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)}");
            }
        }
Exemple #2
0
        public TipoAvaliacaoCompletaDto ObterPorId(long id)
        {
            var tipoAvaliacao           = repositorioTipoAvaliacao.ObterPorId(id);
            var possuAvaliacaoVinculada = VerificarSeExisteAtividadeVinculada(id).Result;

            return(MapearParaDto(tipoAvaliacao, possuAvaliacaoVinculada));
        }