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 }); }