public void Remover(IEnumerable <long> idsRemover)
        {
            var idFalhaExclusao      = new List <long>();
            var tiposEventoInvalidos = new List <string>();

            using (var transacao = unitOfWork.IniciarTransacao())
            {
                foreach (var codigo in idsRemover)
                {
                    try
                    {
                        var entidade      = repositorioEventoTipo.ObterPorId(codigo);
                        var possuiEventos = repositorioEvento.ExisteEventoPorEventoTipoId(codigo);
                        if (possuiEventos)
                        {
                            tiposEventoInvalidos.Add(entidade.Descricao);
                        }
                        else
                        {
                            entidade.Excluido = true;

                            repositorioEventoTipo.Salvar(entidade);
                        }
                    }
                    catch (Exception)
                    {
                        idFalhaExclusao.Add(codigo);
                    }
                }

                unitOfWork.PersistirTransacao();
            }
            if (tiposEventoInvalidos.Any())
            {
                var erroMensagem = idFalhaExclusao.Count > 1 ?
                                   $"Os tipos de evento: {string.Join(",", tiposEventoInvalidos)} não foram removidos, pois possuem eventos vinculados" :
                                   $"O tipo de evento {tiposEventoInvalidos[0]} não foi removido, pois possue evento vinculado";

                throw new NegocioException(erroMensagem);
            }

            if (idFalhaExclusao.Any())
            {
                var erroMensagem = idFalhaExclusao.Count > 1 ?
                                   $"Os tipos de evento de codigo: {string.Join(",", idFalhaExclusao)} não foram removidos" :
                                   $"O tipo de evento de codigo {idFalhaExclusao[0]} não foi removido";

                throw new NegocioException(erroMensagem);
            }
        }
        private EventoTipoDto EntidadeParaDto(EventoTipo eventoTipo)
        {
            if (eventoTipo == null || eventoTipo.Id == 0)
            {
                return(null);
            }

            var possuiEventos = repositorioEvento.ExisteEventoPorEventoTipoId(eventoTipo.Id);

            return(new EventoTipoDto
            {
                Descricao = eventoTipo.Descricao,
                Id = eventoTipo.Id,
                Concomitancia = eventoTipo.Concomitancia,
                Dependencia = eventoTipo.Dependencia,
                Letivo = eventoTipo.Letivo,
                Ativo = eventoTipo.Ativo,
                LocalOcorrencia = eventoTipo.LocalOcorrencia,
                TipoData = eventoTipo.TipoData,
                AlteradoEm = eventoTipo.AlteradoEm,
                AlteradoPor = eventoTipo.AlteradoPor,
                AlteradoRF = eventoTipo.AlteradoRF,
                CriadoEm = eventoTipo.CriadoEm,
                CriadoPor = eventoTipo.CriadoPor,
                CriadoRF = eventoTipo.CriadoRF,
                PossuiEventos = possuiEventos
            });
        }