Ejemplo n.º 1
0
        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 }));
        }
Ejemplo n.º 2
0
        public IActionResult UpdateAssistindoAula(int aulaId, int matriculaId)
        {
            StatusAulas sa = _dbContext.StatusAulas.Where(sa => sa.MatriculaId == matriculaId).SingleOrDefault();

            sa.AulaAssistindoId = aulaId;

            _dbContext.SaveChanges();

            return(Ok());
        }
Ejemplo n.º 3
0
        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();
        }
Ejemplo n.º 4
0
        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" }));
            }
        }
Ejemplo n.º 5
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 }));
        }
Ejemplo n.º 6
0
        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 }));
        }
Ejemplo n.º 7
0
        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));
        }