public void AtualizarPendencias(long fechamentoId, SituacaoPendencia situacaoPendencia, TipoPendencia tipoPendencia)
        {
            var query = @"update pendencia p
                           set situacao = @situacaoPendencia
                         from pendencia_fechamento f
                        where f.pendencia_id = p.id
	                        and p.tipo = @tipoPendencia
                            and f.fechamento_turma_disciplina_id = @fechamentoId                            
                            and not p.excluido ";

            database.Conexao.Execute(query, new { fechamentoId, situacaoPendencia, tipoPendencia });
        }
        public async Task <PendenciaRegistroIndividual> ObterPendenciaRegistroIndividualPorTurmaESituacao(long turmaId, SituacaoPendencia situacaoPendencia)
        {
            var sql = $@"{SelectCompletoPadrao}
                        where
	                        pri.turma_id = @turmaId
	                        and p.situacao = @situacao
	                        and not p.excluido"    ;

            PendenciaRegistroIndividual resultado = null;
            await database.Conexao.QueryAsync <PendenciaRegistroIndividual, PendenciaRegistroIndividualAluno, Pendencia, PendenciaRegistroIndividual>(sql,
                                                                                                                                                      (pendenciaRegistroIndividual, pendenciaRegistroIndividualAluno, pendencia) =>
            {
                if (resultado is null)
                {
                    resultado           = pendenciaRegistroIndividual;
                    resultado.Pendencia = pendencia;
                }

                resultado.Alunos = resultado.Alunos ?? new List <PendenciaRegistroIndividualAluno>();
                resultado.Alunos.Add(pendenciaRegistroIndividualAluno);
                return(resultado);
            },
                                                                                                                                                      new { turmaId, situacao = (short)situacaoPendencia });

            return(resultado);
        }
        public async Task <AuditoriaPersistenciaDto> AtualizarPendencia(long pendenciaId, SituacaoPendencia situacaoPendencia)
        {
            var pendencia = repositorioPendencia.ObterPorId(pendenciaId);

            if (pendencia == null)
            {
                throw new NegocioException("Pendência de fechamento não localizada com o identificador consultado");
            }

            pendencia.Situacao = situacaoPendencia;
            await repositorioPendencia.SalvarAsync(pendencia);

            return((AuditoriaPersistenciaDto)pendencia);
        }