public List <SalaDeAulaDto> ListarSalaDeAulaPorFiltros(ConceitoDto conceitoDto, DisciplinaDto disciplinaDto, PessoaDto pessoaDto, TurmaDto turmaDto) { var graphClient = ConexaoGrafo.GetConnection(); Nullable <int> valorNulo = null; List <SalaDeAulaDto> list = graphClient.Cypher.Match("(salaDeAula:SalaDeAula), (pessoa:Pessoa) , (conceito:Conceito)") .Where(" pessoa.Id = salaDeAula.PessoaId and salaDeAula.Nota > conceito.Minimo and salaDeAula.Nota <= conceito.Maximo") .With(" salaDeAula,{ PessoaId: pessoa.Id, PessoaNome: pessoa.Nome} as Pessoas, conceito") .With(" conceito,{ Id: salaDeAula.Id, Semestre: salaDeAula.Semestre, DisciplinaId: salaDeAula.DisciplinaId,Nota: salaDeAula.Nota,TurmaId: salaDeAula.TurmaId, PessoaId: Pessoas.PessoaId, PessoaNome: Pessoas.PessoaNome} as salaDeAula") .Where <SalaDeAulaDto>(salaDeAula => salaDeAula.TurmaId == turmaDto.Id) .AndWhere(" salaDeAula.DisciplinaId = coalesce({disciplinaId},salaDeAula.DisciplinaId) ") .WithParam("disciplinaId", disciplinaDto == null ? valorNulo : disciplinaDto.Id) .AndWhere(" salaDeAula.PessoaId = coalesce({pessoaId},salaDeAula.PessoaId) ") .WithParam("pessoaId", pessoaDto == null ? valorNulo : pessoaDto.Id) .AndWhere(" conceito.Id = coalesce({conceitoId},conceito.Id) ") .WithParam("conceitoId", conceitoDto == null ? valorNulo : conceitoDto.Id) .Return(salaDeAula => salaDeAula.As <SalaDeAulaDto>()) .Results .ToList(); graphClient.Dispose(); return(list); }
private async Task <IEnumerable <FechamentoAluno> > AtualizaSinteseAlunos(long fechamentoTurmaDisciplinaId, DateTime dataReferencia, DisciplinaDto disciplina) { var fechamentoAlunos = await repositorioFechamentoAluno.ObterPorFechamentoTurmaDisciplina(fechamentoTurmaDisciplinaId); foreach (var fechamentoAluno in fechamentoAlunos) { foreach (var fechamentoNota in fechamentoAluno.FechamentoNotas) { var frequencia = consultasFrequencia.ObterPorAlunoDisciplinaData(fechamentoAluno.AlunoCodigo, fechamentoNota.DisciplinaId.ToString(), dataReferencia); var sinteseDto = consultasFrequencia.ObterSinteseAluno(frequencia.PercentualFrequencia, disciplina); fechamentoNota.SinteseId = (long)sinteseDto.Id; } } return(fechamentoAlunos); }
public ActionResult Cadastrar() { var model = new DisciplinaDto(); return(View(model)); }
public async Task <AuditoriaPersistenciaDto> Salvar(long id, FechamentoTurmaDisciplinaDto entidadeDto, bool componenteSemNota = false) { notasEnvioWfAprovacao = new List <FechamentoNotaDto>(); var fechamentoTurmaDisciplina = MapearParaEntidade(id, entidadeDto); await CarregarTurma(entidadeDto.TurmaId); // Valida periodo de fechamento var tipoCalendario = await repositorioTipoCalendario.BuscarPorAnoLetivoEModalidade(turmaFechamento.AnoLetivo , turmaFechamento.ModalidadeCodigo == Modalidade.EJA?ModalidadeTipoCalendario.EJA : ModalidadeTipoCalendario.FundamentalMedio , DateTime.Now.Semestre()); var ue = turmaFechamento.Ue; PeriodoEscolar periodoEscolar = await ObterPeriodoEscolarFechamentoReabertura(tipoCalendario.Id, ue, entidadeDto.Bimestre); if (periodoEscolar == null) { throw new NegocioException($"Não localizado período de fechamento em aberto para turma informada no {entidadeDto.Bimestre}º Bimestre"); } await CarregaFechamentoTurma(fechamentoTurmaDisciplina, turmaFechamento, periodoEscolar); var usuarioLogado = await servicoUsuario.ObterUsuarioLogado(); // Valida Permissão do Professor na Turma/Disciplina await VerificaSeProfessorPodePersistirTurma(usuarioLogado.CodigoRf, entidadeDto.TurmaId, periodoEscolar.PeriodoFim); var fechamentoAlunos = Enumerable.Empty <FechamentoAluno>(); DisciplinaDto disciplinaEOL = await consultasDisciplina.ObterDisciplina(fechamentoTurmaDisciplina.DisciplinaId); if (disciplinaEOL == null) { throw new NegocioException("Não foi possível localizar o componente curricular no EOL."); } // reprocessar do fechamento de componente sem nota deve atualizar a sintise de frequencia if (componenteSemNota && id > 0) { fechamentoAlunos = await AtualizaSinteseAlunos(id, periodoEscolar.PeriodoFim, disciplinaEOL); } else { // Carrega notas alunos fechamentoAlunos = await CarregarFechamentoAlunoENota(id, entidadeDto.NotaConceitoAlunos); } var alunos = await servicoEOL.ObterAlunosPorTurma(turmaFechamento.CodigoTurma); var parametroDiasAlteracao = await repositorioParametrosSistema.ObterValorPorTipoEAno(TipoParametroSistema.QuantidadeDiasAlteracaoNotaFinal, turmaFechamento.AnoLetivo); var diasAlteracao = DateTime.Today.DayOfYear - fechamentoTurmaDisciplina.CriadoEm.Date.DayOfYear; var acimaDiasPermitidosAlteracao = parametroDiasAlteracao != null && diasAlteracao > int.Parse(parametroDiasAlteracao); var alunosComNotaAlterada = ""; unitOfWork.IniciarTransacao(); try { var fechamentoTurmaId = await repositorioFechamentoTurma.SalvarAsync(fechamentoTurmaDisciplina.FechamentoTurma); fechamentoTurmaDisciplina.FechamentoTurmaId = fechamentoTurmaId; await repositorioFechamentoTurmaDisciplina.SalvarAsync(fechamentoTurmaDisciplina); foreach (var fechamentoAluno in fechamentoAlunos) { fechamentoAluno.FechamentoTurmaDisciplinaId = fechamentoTurmaDisciplina.Id; await repositorioFechamentoAluno.SalvarAsync(fechamentoAluno); foreach (var fechamentoNota in fechamentoAluno.FechamentoNotas) { fechamentoNota.FechamentoAlunoId = fechamentoAluno.Id; await repositorioFechamentoNota.SalvarAsync(fechamentoNota); } if (!componenteSemNota) { var notaAlunoAlterada = entidadeDto.NotaConceitoAlunos.FirstOrDefault(n => n.CodigoAluno.Equals(fechamentoAluno.AlunoCodigo)); if (id > 0 && acimaDiasPermitidosAlteracao && notaAlunoAlterada != null && !alunosComNotaAlterada.Contains(fechamentoAluno.AlunoCodigo)) { var aluno = alunos.FirstOrDefault(a => a.CodigoAluno == fechamentoAluno.AlunoCodigo); alunosComNotaAlterada += $"<li>{aluno.CodigoAluno} - {aluno.NomeAluno}</li>"; } } } await EnviarNotasWfAprovacao(fechamentoTurmaDisciplina.Id, fechamentoTurmaDisciplina.FechamentoTurma.PeriodoEscolar, usuarioLogado); unitOfWork.PersistirTransacao(); if (alunosComNotaAlterada.Length > 0) { Cliente.Executar <IServicoFechamentoTurmaDisciplina>(s => s.GerarNotificacaoAlteracaoLimiteDias(turmaFechamento, usuarioLogado, ue, entidadeDto.Bimestre, alunosComNotaAlterada)); } Cliente.Executar <IServicoFechamentoTurmaDisciplina>(c => c.GerarPendenciasFechamento(fechamentoTurmaDisciplina.DisciplinaId, turmaFechamento, periodoEscolar, fechamentoTurmaDisciplina, usuarioLogado, componenteSemNota, disciplinaEOL.RegistraFrequencia)); await mediator.Send(new PublicaFilaExcluirPendenciaAusenciaFechamentoCommand(fechamentoTurmaDisciplina.DisciplinaId, periodoEscolar.Id, turmaFechamento.Id, usuarioLogado)); return((AuditoriaPersistenciaDto)fechamentoTurmaDisciplina); } catch (Exception e) { unitOfWork.Rollback(); throw e; } }
public void DeletarDisciplina(DisciplinaDto disciplina) { negocio.DeletarDisciplina(disciplina); }
public void SalvarDisciplina(DisciplinaDto disciplina) { negocio.SalvarDisciplina(disciplina); }
public List <SalaDeAulaDto> ListarSalaDeAulaPorFiltros(ConceitoDto conceito, DisciplinaDto disciplina, PessoaDto pessoa, TurmaDto turma) { return(negocio.ListarSalaDeAulaPorFiltros(conceito, disciplina, pessoa, turma)); }
public List <SalaDeAulaDto> ListarSalaDeAulaPorDisciplina(DisciplinaDto disciplina) { return(negocio.ListarSalaDeAulaPorDisciplina(disciplina)); }