public JsonResult GetStatusCheckAssistida(int aulaId, int matriculaId) { bool assistida = false; bool habilitar = false; StatusAulas sa = _dbContext.StatusAulas .Include(sa => sa.AulasAssistidas) .Where(sa => sa.MatriculaId == matriculaId) .SingleOrDefault(); Matricula matricula = _dbContext.Matriculas.Find(matriculaId); if (sa.AulaPodeMarcarAssistidaId == aulaId) { habilitar = true; } AulaAssistida aa = sa.AulasAssistidas.Where(aa => aa.AulaId == aulaId && aa.AlunoId == matricula.AlunoId).FirstOrDefault(); if (aa != null) { assistida = true; } return(Json(new { habilitar = habilitar, assistida = assistida })); }
public IActionResult UpdateAssistindoAula(int aulaId, int matriculaId) { StatusAulas sa = _dbContext.StatusAulas.Where(sa => sa.MatriculaId == matriculaId).SingleOrDefault(); sa.AulaAssistindoId = aulaId; _dbContext.SaveChanges(); return(Ok()); }
public async Task RemoverDadosAlunoAsync(int alunoId) { var aluno = await Alunos.FindAsync(alunoId); // Apagar aulas assistidas var aulasAssistidas = await AulasAssistidas.Where(aa => aa.AlunoId == aluno.Id).ToListAsync(); if (aulasAssistidas != null) { AulasAssistidas.RemoveRange(aulasAssistidas); } // Apagar anotacoes var anotacoes = await AnotacoesAulas.Where(aa => aa.AlunoId == aluno.Id).ToListAsync(); if (anotacoes != null) { AnotacoesAulas.RemoveRange(anotacoes); } // Apagar notas var notas = await Notas.Where(n => n.AlunoId == aluno.Id).ToListAsync(); if (notas != null) { Notas.RemoveRange(notas); } // Apagar matriculas var matriculas = await Matriculas.Where(m => m.AlunoId == aluno.Id).ToListAsync(); if (matriculas != null) { // Apagar Status Aulas foreach (var matricula in matriculas) { var statusAulas = StatusAulas.Where(sa => sa.MatriculaId == matricula.Id).SingleOrDefault(); if (statusAulas != null) { StatusAulas.Remove(statusAulas); } var pagamento = await Pagamentos.Where(p => p.Id == matricula.PagamentoId).SingleOrDefaultAsync(); Pagamentos.Remove(pagamento); Matriculas.Remove(matricula); } } await SaveChangesAsync(); }
public JsonResult GetAvaliacaoEnabled(int aulaId, int matriculaId) { StatusAulas statusAulas = _dbContext.StatusAulas .Where(sa => sa.MatriculaId == matriculaId) .SingleOrDefault(); if (statusAulas.AvaliacaoLiberadaId > 0) { return(Json(new { enabled = true, nomeBotao = "#avaliacao_" + statusAulas.AvaliacaoLiberadaId.ToString() })); } else { return(Json(new { enabled = false, nomeBotao = "#avaliacao_0" })); } }
public async Task <JsonResult> UpdateNota(int alunoId, int moduloId, int cursoId, decimal valor) { bool aprovado = false; bool haMaisModulos = false; Matricula matricula = await _dbContext.Matriculas .Where(m => m.AlunoId == alunoId && m.CursoId == cursoId) .SingleOrDefaultAsync(); Modulo modulo = await _dbContext.Modulos.FindAsync(moduloId); Curso curso = await _dbContext.Cursos .Include(c => c.Modulos) .Where(c => c.Id == cursoId) .SingleOrDefaultAsync(); Nota nota = await _dbContext.Notas .Where(n => n.AlunoId == alunoId && n.ModuloId == moduloId) .SingleOrDefaultAsync(); if (nota == null) { _dbContext.Notas.Add(new Nota { Valor = valor, AlunoId = alunoId, ModuloId = moduloId }); } else { nota.Valor = valor; } decimal notaCorte = await _dbContext.Configuracoes .Select(c => c.NotaDeCorte) .FirstOrDefaultAsync(); if (valor >= notaCorte) { aprovado = true; StatusAulas statusAulas = await _dbContext.StatusAulas .Where(s => s.MatriculaId == matricula.Id) .SingleOrDefaultAsync(); statusAulas.AvaliacaoLiberadaId = 0; // Liberar o proximo modulo Modulo moduloLiberar = await _dbContext.Modulos .Include(m => m.Aulas) .Where(m => m.CursoId == cursoId && m.NumeroModulo == modulo.NumeroModulo + 1) .SingleOrDefaultAsync(); if (moduloLiberar != null) // Há mais módulos no curso { haMaisModulos = true; statusAulas.UltimoModuloLiberadoId = moduloLiberar.Id; // Ativar a primeira aula do novo módulo statusAulas.AulaPodeMarcarAssistidaId = statusAulas.AulaAssistindoId = moduloLiberar .Aulas.Where(a => a.NumeroAula == 1) .Select(a => a.Id) .SingleOrDefault(); await _dbContext.SaveChangesAsync(); } else { matricula.CursoConcluido = true; } } await _dbContext.SaveChangesAsync(); return(Json(new { aprovado, haMaisModulos })); }
public JsonResult UpdateAulaAssistida(int aulaId, int matriculaId) { string response = string.Empty; Matricula matricula = _dbContext.Matriculas.Find(matriculaId); StatusAulas statusAulas = _dbContext.StatusAulas .Include(sa => sa.AulasAssistidas) .Where(sa => sa.MatriculaId == matriculaId) .SingleOrDefault(); statusAulas.AulasAssistidas.Add(new AulaAssistida { AulaId = aulaId, AlunoId = matricula.AlunoId }); // Definir proxima aula que pode marcar assistida // Verificar se é a última aula do módulo Aula aula = _dbContext.Aulas.Find(aulaId); Modulo modulo = _dbContext.Modulos.Include(m => m.Aulas).Where(m => m.Id == aula.ModuloId).FirstOrDefault(); // É última aula if (aula.NumeroAula == modulo.Aulas.Count) { statusAulas.AulaPodeMarcarAssistidaId = 0; // Habilitar avaliacao do modulo statusAulas.AvaliacaoLiberadaId = modulo.AvaliacaoId; // Se não houver avaliacao para o modulo, habilitar próximo módulo if (statusAulas.AvaliacaoLiberadaId == null) { Curso curso = _dbContext.Cursos .Include(c => c.Modulos) .ThenInclude(m => m.Aulas) .Where(c => c.Id == modulo.CursoId) .FirstOrDefault(); Modulo novoModulo = curso.Modulos.Where(m => m.NumeroModulo == modulo.NumeroModulo + 1).FirstOrDefault(); // Se há modulo seguinte if (novoModulo != null) { response = "reload"; statusAulas.UltimoModuloLiberadoId = novoModulo.Id; Modulo m = _dbContext.Modulos .Include(m => m.Aulas) .Where(m => m.Id == novoModulo.Id) .SingleOrDefault(); Aula a = m.Aulas.Where(a => a.NumeroAula == 1).SingleOrDefault(); statusAulas.AulaPodeMarcarAssistidaId = a.Id; statusAulas.AulaAssistindoId = a.Id; } else { matricula.CursoConcluido = true; response = "end"; } } } else // Não é a ultima aula { Aula a = modulo.Aulas.Where(a => a.NumeroAula == aula.NumeroAula + 1).SingleOrDefault(); statusAulas.AulaPodeMarcarAssistidaId = a.Id; } try { _dbContext.SaveChanges(); } catch (System.Exception ex) { throw ex; } return(Json(new { response = response })); }
public IActionResult Index(int alunoId, int?cursoId) { SalaAulaVM salaAulaVM = new SalaAulaVM(); Matricula matricula = _dbContext.Matriculas.Where(m => m.CursoId == cursoId && m.AlunoId == alunoId).SingleOrDefault(); Curso curso = _dbContext.Cursos.Find(cursoId); IEnumerable <Modulo> modulos = _dbContext.Modulos .OrderBy(m => m.NumeroModulo) .Where(m => m.CursoId == cursoId).ToList(); salaAulaVM.Curso = curso; foreach (var modulo in salaAulaVM.Curso.Modulos) { IEnumerable <Aula> aulas = _dbContext.Aulas.OrderBy(a => a.NumeroAula).Where(a => a.ModuloId == modulo.Id).ToList(); } StatusAulas statusAulas = _dbContext.StatusAulas .Include(sa => sa.Matricula.Aluno) .Include(sa => sa.AulasAssistidas) .Where(sa => sa.MatriculaId == matricula.Id) .SingleOrDefault(); if (statusAulas == null) { int aulaAssistindoId = salaAulaVM.Curso.Modulos[0].Aulas[0].Id; int aulaPodeMarcarAssistidaId = aulaAssistindoId; int ultimoModuloLiberado = salaAulaVM.Curso.Modulos[0].Id; StatusAulas sa = new StatusAulas { MatriculaId = matricula.Id, AulaAssistindoId = aulaAssistindoId, AulaPodeMarcarAssistidaId = aulaPodeMarcarAssistidaId, UltimoModuloLiberadoId = ultimoModuloLiberado, AulasAssistidas = new List <AulaAssistida>() }; _dbContext.StatusAulas.Add(sa); _dbContext.SaveChanges(); salaAulaVM.StatusAulas = sa; } else { salaAulaVM.StatusAulas = statusAulas; } foreach (var modulo in salaAulaVM.Curso.Modulos) { Modulo m = _dbContext.Modulos.Find(salaAulaVM.StatusAulas.UltimoModuloLiberadoId); if (m.NumeroModulo >= modulo.NumeroModulo) { modulo.Liberado = true; if (salaAulaVM.StatusAulas.AvaliacaoLiberadaId == modulo.AvaliacaoId) { modulo.AvaliacaoLiberada = true; } foreach (var aula in modulo.Aulas) { AulaAssistida aulaAssistida = salaAulaVM.StatusAulas.AulasAssistidas.FirstOrDefault(aa => aa.AulaId == aula.Id); if (aulaAssistida != null) { aula.Assistida = true; } if (aula.Id == salaAulaVM.StatusAulas.AulaAssistindoId) { aula.Assistindo = true; AnotacaoAula anotacaoAula = _dbContext.AnotacoesAulas .Where(aa => aa.AulaId == aula.Id && aa.AlunoId == salaAulaVM.StatusAulas.Matricula.AlunoId) .FirstOrDefault(); if (anotacaoAula != null) { aula.Anotacoes = anotacaoAula.Anotacao; } } if (aula.Id == salaAulaVM.StatusAulas.AulaPodeMarcarAssistidaId) { aula.PodeMarcarAssistida = true; } } } } return(View(salaAulaVM)); }