private Sondagem CriaNovaSondagem(IEnumerable <AlunoSondagemMatematicaDto> ListaAlunosSondagemDto, string periodoId, FiltrarListagemMatematicaDTO alunoFiltro) { var listaAlunosComRespostaDto = ListaAlunosSondagemDto.Where(x => x.Respostas != null).ToList(); if (listaAlunosComRespostaDto == null || listaAlunosComRespostaDto.Count == 0) { return(null); } var listaAlunosComRespostasDoPeriodoDto = listaAlunosComRespostaDto.Where(a => a.Respostas.Any(r => r.PeriodoId == periodoId)).ToList(); var sondagem = new Sondagem { Id = Guid.NewGuid(), AnoLetivo = alunoFiltro.AnoLetivo, AnoTurma = alunoFiltro.AnoEscolar, CodigoDre = alunoFiltro.CodigoDre, CodigoUe = alunoFiltro.CodigoUe, CodigoTurma = alunoFiltro.CodigoTurma, ComponenteCurricularId = alunoFiltro.ComponenteCurricular, AlunosSondagem = new List <SondagemAluno>(), PeriodoId = periodoId }; foreach (var alunoDto in listaAlunosComRespostasDoPeriodoDto) { var aluno = CriaNovoAlunoSondagem(sondagem, alunoDto); sondagem.AlunosSondagem.Add(aluno); } ; return(sondagem); }
private static SondagemAluno CriaNovoAlunoSondagem(Sondagem sondagem, AlunoSondagemMatematicaDto alunoDto) { var aluno = new SondagemAluno() { Id = Guid.NewGuid(), CodigoAluno = alunoDto.CodigoAluno, SondagemId = sondagem.Id, NomeAluno = alunoDto.NomeAluno, ListaRespostas = new List <SondagemAlunoRespostas>() }; var listaRespostasPeriodo = alunoDto.Respostas.Where(r => r.PeriodoId == sondagem.PeriodoId); foreach (var respostaDto in listaRespostasPeriodo) { var resposta = CriaNovaRespostaAluno(aluno, respostaDto); aluno.ListaRespostas.Add(resposta); } return(aluno); }
private static void AdicionaOUAlteraAlunosERespostas(SMEManagementContextData contexto, Sondagem sondagem, AlunoSondagemMatematicaDto aluno) { var alunoSondagem = sondagem.AlunosSondagem.Where(a => a.CodigoAluno == aluno.CodigoAluno).FirstOrDefault(); if (alunoSondagem != null) { if (aluno.Respostas == null || aluno.Respostas.Count == 0) { contexto.SondagemAluno.Remove(alunoSondagem); } else { AtualizaNovasRespostas(aluno, alunoSondagem, sondagem.PeriodoId); RemoveRespostasSemValor(contexto, aluno, alunoSondagem); } } else { if (aluno.Respostas != null) { if (aluno.Respostas.Any(r => r.PeriodoId == sondagem.PeriodoId)) { var alunoNovoSondagem = CriaNovoAlunoSondagem(sondagem, aluno); sondagem.AlunosSondagem.Add(alunoNovoSondagem); } } } }