private async Task <FechamentoAluno> MapearParaEntidade(AnotacaoAlunoDto anotacaoAluno) { var anotacao = await repositorio.ObterFechamentoAluno(anotacaoAluno.FechamentoId, anotacaoAluno.CodigoAluno); if (anotacao == null) { anotacao = new FechamentoAluno() { FechamentoTurmaDisciplinaId = anotacaoAluno.FechamentoId, AlunoCodigo = anotacaoAluno.CodigoAluno, Anotacao = anotacaoAluno.Anotacao } } ; else { anotacao.Anotacao = anotacaoAluno.Anotacao; } return(anotacao); }
private async Task <FechamentoTurmaDisciplina> TransformarDtoSalvarEmEntidade(FechamentoFinalSalvarDto fechamentoFinalSalvarDto, Turma turma) { var disciplinaId = fechamentoFinalSalvarDto.EhRegencia ? long.Parse(fechamentoFinalSalvarDto.DisciplinaId) : fechamentoFinalSalvarDto.Itens.First().ComponenteCurricularCodigo; FechamentoTurmaDisciplina fechamentoTurmaDisciplina = null; var fechamentoFinalTurma = await repositorioFechamentoTurma.ObterPorTurmaPeriodo(turma.Id); if (fechamentoFinalTurma == null) { fechamentoFinalTurma = new FechamentoTurma(0, turma.Id); } else { fechamentoTurmaDisciplina = await repositorioFechamentoTurmaDisciplina.ObterFechamentoTurmaDisciplina(fechamentoFinalSalvarDto.TurmaCodigo, disciplinaId); } if (fechamentoTurmaDisciplina == null) { fechamentoTurmaDisciplina = new FechamentoTurmaDisciplina() { DisciplinaId = disciplinaId, Situacao = SituacaoFechamento.ProcessadoComSucesso } } ; fechamentoTurmaDisciplina.FechamentoTurma = fechamentoFinalTurma; foreach (var agrupamentoAluno in fechamentoFinalSalvarDto.Itens.GroupBy(a => a.AlunoRf)) { var fechamentoAluno = await repositorioFechamentoAluno.ObterFechamentoAlunoENotas(fechamentoTurmaDisciplina.Id, agrupamentoAluno.Key); if (fechamentoAluno == null) { fechamentoAluno = new FechamentoAluno() { AlunoCodigo = agrupamentoAluno.Key } } ; foreach (var fechamentoItemDto in agrupamentoAluno) { var fechamentoNota = fechamentoAluno.FechamentoNotas.FirstOrDefault(c => c.DisciplinaId == fechamentoItemDto.ComponenteCurricularCodigo); if (fechamentoNota != null) { if (fechamentoItemDto.Nota.HasValue) { if (fechamentoNota.Nota.Value != fechamentoItemDto.Nota.Value) { await mediator.Send(new SalvarHistoricoNotaFechamentoCommand(fechamentoNota.Nota.Value, fechamentoItemDto.Nota.Value, fechamentoNota.Id)); } } else if (fechamentoNota.ConceitoId.Value != fechamentoItemDto.ConceitoId.Value) { await mediator.Send(new SalvarHistoricoConceitoFechamentoCommand(fechamentoNota.ConceitoId.Value, fechamentoItemDto.ConceitoId.Value, fechamentoNota.Id)); } } MapearParaEntidade(fechamentoNota, fechamentoItemDto, fechamentoAluno); } fechamentoTurmaDisciplina.FechamentoAlunos.Add(fechamentoAluno); } return(fechamentoTurmaDisciplina); }
private void MapearParaEntidade(FechamentoNota fechamentoNota, FechamentoFinalSalvarItemDto fechamentoItemDto, FechamentoAluno fechamentoAluno) { // Verifica se tem nota atribuida para a disciplina if (fechamentoNota == null) { fechamentoNota = new FechamentoNota() { DisciplinaId = fechamentoItemDto.ComponenteCurricularCodigo, Nota = fechamentoItemDto.Nota, ConceitoId = fechamentoItemDto.ConceitoId, // TODO implementar sintese para fechamento final (não tem o atributo no DTO) //SinteseId = fechamentoItemDto.sin }; fechamentoAluno.FechamentoNotas.Add(fechamentoNota); } else { fechamentoNota.Nota = fechamentoItemDto.Nota; fechamentoNota.ConceitoId = fechamentoItemDto.ConceitoId; // TODO implementar sintese para fechamento final (não tem o atributo no DTO) //SinteseId = fechamentoItemDto.sin } }
private async Task <IEnumerable <FechamentoAluno> > CarregarFechamentoAlunoENota(long fechamentoTurmaDisciplinaId, IEnumerable <FechamentoNotaDto> fechamentoNotasDto) { var fechamentoAlunos = new List <FechamentoAluno>(); if (fechamentoTurmaDisciplinaId > 0) { fechamentoAlunos = (await repositorioFechamentoAluno.ObterPorFechamentoTurmaDisciplina(fechamentoTurmaDisciplinaId)).ToList(); } // Edita as notas existentes foreach (var agrupamentoNotasAluno in fechamentoNotasDto.GroupBy(g => g.CodigoAluno)) { // Busca fechamento do aluno var fechamentoAluno = fechamentoAlunos.FirstOrDefault(c => c.AlunoCodigo == agrupamentoNotasAluno.Key); if (fechamentoAluno == null) { fechamentoAluno = new FechamentoAluno() { AlunoCodigo = agrupamentoNotasAluno.Key, FechamentoTurmaDisciplinaId = fechamentoTurmaDisciplinaId } } ; foreach (var fechamentoNotaDto in agrupamentoNotasAluno) { // busca nota do aluno var notaFechamento = fechamentoAluno.FechamentoNotas.FirstOrDefault(x => x.DisciplinaId == fechamentoNotaDto.DisciplinaId); if (notaFechamento != null) { if (!EnviarWfAprovacao()) { if (fechamentoNotaDto.Nota.HasValue) { if (fechamentoNotaDto.Nota != notaFechamento.Nota) { await mediator.Send(new SalvarHistoricoNotaFechamentoCommand(notaFechamento.Nota.Value, fechamentoNotaDto.Nota.Value, notaFechamento.Id)); } notaFechamento.Nota = fechamentoNotaDto.Nota; } else { if (fechamentoNotaDto.ConceitoId != notaFechamento.ConceitoId) { await mediator.Send(new SalvarHistoricoConceitoFechamentoCommand(notaFechamento.ConceitoId.Value, fechamentoNotaDto.ConceitoId.Value, notaFechamento.Id)); } notaFechamento.ConceitoId = fechamentoNotaDto.ConceitoId; } notaFechamento.SinteseId = fechamentoNotaDto.SinteseId; } else { fechamentoNotaDto.Id = notaFechamento.Id; notasEnvioWfAprovacao.Add(fechamentoNotaDto); } } else { fechamentoAluno.AdicionarNota(MapearParaEntidade(fechamentoNotaDto)); } } fechamentoAlunos.Add(fechamentoAluno); } return(fechamentoAlunos); }