public async Task VerificaPersistenciaGeral(Turma turma) { var tipoCalendario = await repositorioTipoCalendario.BuscarPorAnoLetivoEModalidade(turma.AnoLetivo, turma.ObterModalidadeTipoCalendario(), turma.Semestre); if (tipoCalendario == null) { throw new NegocioException("Não foi possível localizar o tipo de calendário."); } var diaAtual = DateTime.Today; var eventoFechamento = await repositorioEvento.EventosNosDiasETipo(diaAtual, diaAtual, TipoEvento.FechamentoBimestre, tipoCalendario.Id, turma.Ue.CodigoUe, turma.Ue.Dre.CodigoDre); if (eventoFechamento == null || !eventoFechamento.Any()) { throw new NegocioException("Não foi possível localizar um fechamento de período ou reabertura para esta turma."); } var professorRf = servicoUsuario.ObterRf(); var professorPodePersistirTurma = await servicoEOL.ProfessorPodePersistirTurma(professorRf, turma.CodigoTurma, diaAtual); if (!professorPodePersistirTurma) { throw new NegocioException("Você não pode executar alterações nesta turma."); } }
public async Task<string> ModificarPerfil(Guid perfil) { string loginAtual = servicoUsuario.ObterLoginAtual(); string codigoRfAtual = servicoUsuario.ObterRf(); await servicoUsuario.PodeModificarPerfil(perfil, loginAtual); var permissionamentos = await servicoEOL.ObterPermissoesPorPerfil(perfil); if (permissionamentos == null || !permissionamentos.Any()) { throw new NegocioException($"Não foi possível obter os permissionamentos do perfil selecionado"); } else { var listaPermissoes = permissionamentos .Distinct() .Select(a => (Permissao)a) .ToList(); await servicoAbrangencia.Salvar(loginAtual, perfil, false); return servicoTokenJwt.GerarToken(loginAtual, codigoRfAtual, perfil, listaPermissoes); } }
public async Task Salvar(NotaConceitoListaDto notaConceitoLista) { var notasConceitosDto = notaConceitoLista.NotasConceitos; var alunos = notasConceitosDto.Select(x => x.AlunoId).ToList(); var avaliacoes = notasConceitosDto.Select(x => x.AtividadeAvaliativaId).ToList(); var notasBanco = repositorioNotasConceitos.ObterNotasPorAlunosAtividadesAvaliativas(avaliacoes, alunos, notaConceitoLista.DisciplinaId); var professorRf = servicoUsuario.ObterRf(); if (notasBanco == null || !notasBanco.Any()) { await IncluirTodasNotas(notasConceitosDto, professorRf, notaConceitoLista.TurmaId, notaConceitoLista.DisciplinaId); } else { await TratarInclusaoEdicaoNotas(notasConceitosDto, notasBanco, professorRf, notaConceitoLista.TurmaId, notaConceitoLista.DisciplinaId); } var atividadeAvaliativa = await repositorioAtividadeAvaliativa.ObterPorIdAsync(notasConceitosDto.Select(x => x.AtividadeAvaliativaId).FirstOrDefault()); var aula = await mediator.Send(new ObterAulaPorComponenteCurricularIdTurmaIdEDataQuery(notaConceitoLista.DisciplinaId, notaConceitoLista.TurmaId, atividadeAvaliativa.DataAvaliacao)); if (aula != null) { await mediator.Send(new ExcluirPendenciaAulaCommand(aula.Id, TipoPendencia.Avaliacao)); } }
public async Task <TrocaPerfilDto> ModificarPerfil(Guid perfil) { string loginAtual = servicoUsuario.ObterLoginAtual(); string codigoRfAtual = servicoUsuario.ObterRf(); string nomeLoginAtual = servicoUsuario.ObterNomeLoginAtual(); await servicoUsuario.PodeModificarPerfil(perfil, loginAtual); var permissionamentos = await servicoEOL.ObterPermissoesPorPerfil(perfil); if (permissionamentos == null || !permissionamentos.Any()) { throw new NegocioException($"Não foi possível obter os permissionamentos do perfil selecionado"); } else { var listaPermissoes = permissionamentos .Distinct() .Select(a => (Permissao)a) .ToList(); await servicoAbrangencia.Salvar(loginAtual, perfil, false); var usuario = await servicoUsuario.ObterUsuarioLogado(); usuario.DefinirPerfilAtual(perfil); //await servicoTokenJwt.RevogarToken(loginAtual); var tokenStr = servicoTokenJwt.GerarToken(loginAtual, nomeLoginAtual, codigoRfAtual, perfil, listaPermissoes); return(new TrocaPerfilDto { Token = tokenStr, DataHoraExpiracao = servicoTokenJwt.ObterDataHoraExpiracao(), EhProfessor = usuario.EhProfessor(), EhProfessorCj = usuario.EhProfessorCj(), EhProfessorPoa = usuario.EhProfessorPoa(), EhProfessorInfantil = usuario.EhProfessorInfantil(), EhProfessorCjInfantil = usuario.EhProfessorCjInfantil(), EhPerfilProfessor = usuario.EhPerfilProfessor() }); } }
public async Task <IEnumerable <TurmaParaCopiaPlanoAnualDto> > ObterTurmasParaCopia(int turmaId, long componenteCurricular, bool consideraHistorico) { var codigoRfUsuarioLogado = servicoUsuario.ObterRf(); var turmasEOL = await servicoEOL.ObterTurmasParaCopiaPlanoAnual(codigoRfUsuarioLogado, componenteCurricular, turmaId); if (turmasEOL != null && turmasEOL.Any()) { var idsTurmas = turmasEOL.Select(c => c.TurmaId.ToString()); turmasEOL = await mediator.Send(new ValidaSeTurmasPossuemPlanoAnualQuery(idsTurmas.ToArray(), consideraHistorico)); } return(turmasEOL); }
public async Task <AuditoriaFechamentoTurmaDto> Salvar(long id, FechamentoTurmaDisciplinaDto entidadeDto) { var fechamentoTurma = MapearParaEntidade(id, entidadeDto); // Valida periodo de fechamento var tipoCalendario = repositorioTipoCalendario.BuscarPorAnoLetivoEModalidade(fechamentoTurma.Turma.AnoLetivo , fechamentoTurma.Turma.ModalidadeCodigo == Modalidade.EJA ? ModalidadeTipoCalendario.EJA : ModalidadeTipoCalendario.FundamentalMedio , DateTime.Now.Month > 6 ? 2 : 1); var ue = repositorioUe.ObterPorId(fechamentoTurma.Turma.UeId); var fechamento = repositorioFechamento.ObterPorTipoCalendarioDreEUE(tipoCalendario.Id, ue.DreId, ue.Id); var fechamentoBimestre = fechamento?.FechamentosBimestre.FirstOrDefault(x => x.PeriodoEscolar.Bimestre == entidadeDto.Bimestre); if (fechamento == null || fechamentoBimestre == null) { throw new NegocioException($"Não localizado período de fechamento em aberto para turma informada no {entidadeDto.Bimestre}º Bimestre"); } // Valida Permissão do Professor na Turma/Disciplina VerificaSeProfessorPodePersistirTurma(servicoUsuario.ObterRf(), entidadeDto.TurmaId, fechamentoBimestre.PeriodoEscolar.PeriodoFim); fechamentoTurma.PeriodoFechamentoBimestreId = fechamentoBimestre.Id; // Carrega notas alunos var notasConceitosBimestre = await MapearParaEntidade(id, entidadeDto.NotaConceitoAlunos); unitOfWork.IniciarTransacao(); try { await repositorioFechamentoTurmaDisciplina.SalvarAsync(fechamentoTurma); foreach (var notaBimestre in notasConceitosBimestre) { notaBimestre.FechamentoTurmaDisciplinaId = fechamentoTurma.Id; repositorioNotaConceitoBimestre.Salvar(notaBimestre); } unitOfWork.PersistirTransacao(); return((AuditoriaFechamentoTurmaDto)fechamentoTurma); } catch (Exception e) { unitOfWork.Rollback(); throw e; } }
public async Task <IEnumerable <TurmaRetornoDto> > ObterTurmasParaCopia(string turmaOrigemId) { var professorRf = servicoUsuario.ObterRf(); var turmaOrigem = await repositorioTurma.ObterPorCodigo(turmaOrigemId); var ue = consultasUe.ObterPorId(turmaOrigem.UeId); var turmas = servicoEOL.ObterListaTurmasPorProfessor(professorRf); return(turmas.Where(t => t.CodTurma.ToString() != turmaOrigem.CodigoTurma && t.CodEscola == ue.CodigoUe && t.AnoLetivo == turmaOrigem.AnoLetivo && t.Ano == turmaOrigem.Ano) .Select(t => new TurmaRetornoDto() { Codigo = t.CodTurma.ToString(), Nome = t.NomeTurma })); }
public async Task Salvar(NotaConceitoListaDto notaConceitoLista) { var notasConceitosDto = notaConceitoLista.NotasConceitos; var alunos = notasConceitosDto.Select(x => x.AlunoId).ToList(); var avaliacoes = notasConceitosDto.Select(x => x.AtividadeAvaliativaId).ToList(); var notasBanco = repositorioNotasConceitos.ObterNotasPorAlunosAtividadesAvaliativas(avaliacoes, alunos, notaConceitoLista.DisciplinaId); var professorRf = servicoUsuario.ObterRf(); var notasSalvar = new List <NotaConceito>(); if (notasBanco == null || !notasBanco.Any()) { await IncluirTodasNotas(notasConceitosDto, notasSalvar, professorRf, notaConceitoLista.TurmaId, notaConceitoLista.DisciplinaId); } else { await TratarInclusaoEdicaoNotas(notasConceitosDto, notasBanco, notasSalvar, professorRf, notaConceitoLista.TurmaId, notaConceitoLista.DisciplinaId); } }