public void Excluir(long[] idsEventos) { List <long> idsComErroAoExcluir = new List <long>(); foreach (var idEvento in idsEventos) { try { var evento = repositorioEvento.ObterPorId(idEvento); if (evento.WorkflowAprovacaoId.HasValue) { servicoWorkflowAprovacao.ExcluirWorkflowNotificacoes(evento.WorkflowAprovacaoId.Value); } evento.Excluir(); repositorioEvento.Salvar(evento); } catch (Exception) { idsComErroAoExcluir.Add(idEvento); } } if (idsComErroAoExcluir.Any()) { throw new NegocioException($"Não foi possível excluir os eventos de ids {string.Join(",", idsComErroAoExcluir)}"); } }
private async Task ExcluirAula(Aula aula, Usuario usuario) { if (await repositorioAtividadeAvaliativa.VerificarSeExisteAvaliacao(aula.DataAula.Date, aula.UeId, aula.TurmaId, usuario.CodigoRf, aula.DisciplinaId)) { throw new NegocioException("Aula com avaliação vinculada. Para excluir esta aula primeiro deverá ser excluída a avaliação."); } await VerificaSeProfessorPodePersistirTurmaDisciplina(usuario.CodigoRf, aula.TurmaId, aula.DisciplinaId, aula.DataAula, usuario); unitOfWork.IniciarTransacao(); try { if (aula.WorkflowAprovacaoId.HasValue) { await servicoWorkflowAprovacao.ExcluirWorkflowNotificacoes(aula.WorkflowAprovacaoId.Value); } await comandosNotificacaoAula.Excluir(aula.Id); await servicoFrequencia.ExcluirFrequenciaAula(aula.Id); await comandosPlanoAula.ExcluirPlanoDaAula(aula.Id); aula.Excluido = true; await repositorioAula.SalvarAsync(aula); unitOfWork.PersistirTransacao(); } catch (Exception) { unitOfWork.Rollback(); throw; } }
public async Task Excluir(long[] idsEventos) { List <long> idsComErroAoExcluir = new List <long>(); IList <string> eventoSemPemissaoExclusao = new List <string>(); foreach (var idEvento in idsEventos) { try { var evento = repositorioEvento.ObterPorId(idEvento); var existeComunicadoParaEvento = await repositorioComunicado.VerificaExistenciaComunicadoParaEvento(idEvento); if (existeComunicadoParaEvento) { throw new NegocioException($"Existem comunicados vigentes vinculados para o evento ID: {idEvento}"); } ValidacaoPermissaoEdicaoExclusaoPorPerfilUsuarioTipoEevento(evento); if (evento.WorkflowAprovacaoId.HasValue) { await servicoWorkflowAprovacao.ExcluirWorkflowNotificacoes(evento.WorkflowAprovacaoId.Value); } evento.Excluir(); repositorioEvento.Salvar(evento); } catch (NegocioException nex) { eventoSemPemissaoExclusao.Add(nex.Message); } catch (Exception) { idsComErroAoExcluir.Add(idEvento); } } var mensagensErroRetorno = new StringBuilder(); if (eventoSemPemissaoExclusao.Any()) { mensagensErroRetorno.AppendLine($"Não foi permitida a exclusão do(s) evento(s): { string.Join(", ", eventoSemPemissaoExclusao) }"); } if (idsComErroAoExcluir.Any()) { mensagensErroRetorno.AppendLine($"Não foi possível excluir os eventos de ids {string.Join(",", idsComErroAoExcluir)}"); } if (eventoSemPemissaoExclusao.Any() || idsComErroAoExcluir.Any()) { throw new NegocioException(mensagensErroRetorno.ToString()); } }
public async Task ExcluirAsync(long idWorkflowAprovacao) { await servicoWorkflowAprovacao.ExcluirWorkflowNotificacoes(idWorkflowAprovacao); }