private static RecuperacaoParalela MapearEntidade(RecuperacaoParalelaDto recuperacaoParalelaDto, RecuperacaoParalelaAlunoDto item, long turmaId, long turmaRecuperacaoParalelaId, int anoLetivo) { return(new RecuperacaoParalela { Id = item.Id, TurmaId = turmaId, AnoLetivo = anoLetivo, TurmaRecuperacaoParalelaId = turmaRecuperacaoParalelaId, Aluno_id = item.CodAluno, CriadoEm = recuperacaoParalelaDto.Periodo.CriadoEm ?? default, CriadoRF = recuperacaoParalelaDto.Periodo.CriadoRF ?? null, CriadoPor = recuperacaoParalelaDto.Periodo.CriadoPor ?? null });
public async Task <RecuperacaoParalelaListagemDto> Salvar(RecuperacaoParalelaDto recuperacaoParalelaDto) { var list = new List <RecuperacaoParalelaListagemDto>(); //var usuarioLogado = await servicoUsuario.ObterUsuarioLogado(); var usuarioLogin = servicoUsuario.ObterLoginAtual(); var usuarioPerfil = servicoUsuario.ObterPerfilAtual(); var turmaRecuperacaoParalelaId = recuperacaoParalelaDto.Periodo.Alunos.FirstOrDefault().TurmaRecuperacaoParalelaId; var turmaRecuperacaoParalela = await mediator.Send(new ObterTurmaSimplesPorIdQuery(turmaRecuperacaoParalelaId)); //var turmaCodigo = recuperacaoParalelaDto.Periodo.Alunos.FirstOrDefault().TurmaRecuperacaoParalelaId; var turmaPap = await servicoEOL.TurmaPossuiComponenteCurricularPAP(turmaRecuperacaoParalela.Codigo, usuarioLogin, usuarioPerfil); if (!turmaPap) { throw new NegocioException("Somente é possivel realizar acompanhamento para turmas PAP"); } var turmasCodigo = recuperacaoParalelaDto.Periodo.Alunos.Select(a => a.TurmaId.ToString()).Distinct().ToArray(); var turmas = await mediator.Send(new ObterTurmasPorCodigosQuery(turmasCodigo)); unitOfWork.IniciarTransacao(); foreach (var item in recuperacaoParalelaDto.Periodo.Alunos) { var turmaDoItem = turmas.FirstOrDefault(a => a.CodigoTurma == item.TurmaId.ToString()); var recuperacaoParalela = MapearEntidade(recuperacaoParalelaDto, item, turmaDoItem.Id, turmaRecuperacaoParalela.Id, turmaDoItem.AnoLetivo); await repositorioRecuperacaoParalela.SalvarAsync(recuperacaoParalela); await repositorioRecuperacaoParalelaPeriodoObjetivoResposta.Excluir(item.Id, recuperacaoParalelaDto.Periodo.Id); await SalvarRespostasAluno(recuperacaoParalelaDto, item, recuperacaoParalela); } unitOfWork.PersistirTransacao(); return(await consultaRecuperacaoParalela.Listar(new Infra.FiltroRecuperacaoParalelaDto { Ordenacao = recuperacaoParalelaDto.Ordenacao, PeriodoId = recuperacaoParalelaDto.Periodo.Id, TurmaId = turmaRecuperacaoParalelaId, TurmaCodigo = long.Parse(turmaRecuperacaoParalela.Codigo) })); }
public async Task <RecuperacaoParalelaListagemDto> Salvar(RecuperacaoParalelaDto recuperacaoParalelaDto) { var list = new List <RecuperacaoParalelaListagemDto>(); unitOfWork.IniciarTransacao(); foreach (var item in recuperacaoParalelaDto.Periodo.Alunos) { var recuperacaoParalela = new RecuperacaoParalela { Id = item.Id, TurmaId = item.TurmaId, TurmaRecuperacaoParalelaId = item.TurmaRecuperacaoParalelaId, Aluno_id = item.CodAluno, CriadoEm = recuperacaoParalelaDto.Periodo.CriadoEm ?? default, CriadoRF = recuperacaoParalelaDto.Periodo.CriadoRF ?? null, CriadoPor = recuperacaoParalelaDto.Periodo.CriadoPor ?? null }; await repositorioRecuperacaoParalela.SalvarAsync(recuperacaoParalela); await repositorioRecuperacaoParalelaPeriodoObjetivoResposta.Excluir(item.Id, recuperacaoParalelaDto.Periodo.Id); foreach (var resposta in recuperacaoParalelaDto.Periodo.Alunos.Where(w => w.CodAluno == item.CodAluno).FirstOrDefault().Respostas) { await repositorioRecuperacaoParalelaPeriodoObjetivoResposta.SalvarAsync(new RecuperacaoParalelaPeriodoObjetivoResposta { ObjetivoId = resposta.ObjetivoId, PeriodoRecuperacaoParalelaId = recuperacaoParalelaDto.Periodo.Id, RecuperacaoParalelaId = recuperacaoParalela.Id, RespostaId = resposta.RespostaId }); } } unitOfWork.PersistirTransacao(); return(await consultaRecuperacaoParalela.Listar(new Infra.FiltroRecuperacaoParalelaDto { Ordenacao = recuperacaoParalelaDto.Ordenacao, PeriodoId = recuperacaoParalelaDto.Periodo.Id, TurmaId = recuperacaoParalelaDto.Periodo.Alunos.FirstOrDefault().TurmaRecuperacaoParalelaId })); } }
//[Permissao(Permissao.CP_I, Policy = "Bearer")] public async Task <IActionResult> PostAsync([FromBody] RecuperacaoParalelaDto recuperacaoParalelaPeriodoDto) { return(Ok(await comandosRecuperacaoParalela.Salvar(recuperacaoParalelaPeriodoDto))); }