public string adicionarAtividade(Atividade a)
 {
     string erro = null;
     try
     {
         db.Atividade.AddObject(a);
         db.SaveChanges();
     }
     catch (Exception ex)
     {
         erro = ex.Message;
     }
     return erro;
 }
        public string excluirAtividade(Atividade a)
        {
            string erro = null;

            try
            {
                db.DeleteObject(a);
                db.SaveChanges();
            }
            catch (Exception ex)
            {
                erro = ex.Message;
            }
            return erro;
        }
        public string editarAtividade(Atividade a)
        {
            string erro = null;

            try
            {
                if (a.EntityState == System.Data.EntityState.Detached)
                {
                    db.Atividade.Attach(a);
                }
                db.ObjectStateManager.ChangeObjectState(a,
                    System.Data.EntityState.Modified);
                db.SaveChanges();
            }
            catch (Exception ex)
            {
                erro = ex.Message;
            }
            return erro;
        }
 /// <summary>
 /// Deprecated Method for adding a new object to the Atividade EntitySet. Consider using the .Add method of the associated ObjectSet&lt;T&gt; property instead.
 /// </summary>
 public void AddToAtividade(Atividade atividade)
 {
     base.AddObject("Atividade", atividade);
 }
 /// <summary>
 /// Create a new Atividade object.
 /// </summary>
 /// <param name="idAtividade">Initial value of the idAtividade property.</param>
 /// <param name="idDisciplina">Initial value of the idDisciplina property.</param>
 /// <param name="idTurma">Initial value of the idTurma property.</param>
 /// <param name="idTipo">Initial value of the idTipo property.</param>
 /// <param name="idStatus">Initial value of the idStatus property.</param>
 /// <param name="identificacao">Initial value of the Identificacao property.</param>
 /// <param name="dataAbertura">Initial value of the DataAbertura property.</param>
 /// <param name="dataEncerramento">Initial value of the DataEncerramento property.</param>
 /// <param name="titulo">Initial value of the Titulo property.</param>
 /// <param name="descricao">Initial value of the Descricao property.</param>
 public static Atividade CreateAtividade(global::System.Int32 idAtividade, global::System.Int16 idDisciplina, global::System.Int32 idTurma, global::System.Int32 idTipo, global::System.Int32 idStatus, global::System.String identificacao, global::System.DateTime dataAbertura, global::System.DateTime dataEncerramento, global::System.String titulo, global::System.String descricao)
 {
     Atividade atividade = new Atividade();
     atividade.idAtividade = idAtividade;
     atividade.idDisciplina = idDisciplina;
     atividade.idTurma = idTurma;
     atividade.idTipo = idTipo;
     atividade.idStatus = idStatus;
     atividade.Identificacao = identificacao;
     atividade.DataAbertura = dataAbertura;
     atividade.DataEncerramento = dataEncerramento;
     atividade.Titulo = titulo;
     atividade.Descricao = descricao;
     return atividade;
 }
        private bool validarAtividade(Atividade a)
        {
            if (a.Descricao == "")
                return false;
            if (a.idDisciplina == 0)
                return false;

            return true;
        }
        public ActionResult Edit(int id)
        {
            if (Roles.IsUserInRole(User.Identity.Name, "Professor"))
            {
                Atividade a = new Atividade();
                ViewBag.Titulo = "Nova Atividade";

                int idDisciplina = 0;
                int idTurma = 0;
                int idCurso = 0;

                if (id != 0)
                {
                    a = atividadeModel.obterAtividade(id);
                    idDisciplina = a.idDisciplina;
                    idTurma = a.idTurma;
                    idCurso = a.Disciplina.idCurso;
                    ViewBag.Titulo = "Editar Atividade";
                }

                ViewBag.idCurso
                    = new SelectList(cursoModel.todosCursos(),
                        "idCurso", "Descricao", idCurso);

                ViewBag.idTurma
                    = new SelectList(turmaModel.obterTurmasPorCurso(idCurso),
                        "idTurma", "Identificacao", idTurma);

                ViewBag.idDisciplina
                    = new SelectList(disciplinaModel.obterDisciplinaPorCurso(idCurso),
                        "idDisciplina", "Descricao", idDisciplina);

                return View(a);
            }
            return Redirect("/Shared/Restrito");
        }
        //////////////// GERAR PROVA AUTOMATICA ///////////////////////////////////////////////////
        private List<Aluno> EditProvaAutomatica(int id)
        {
            Atividade a = new Atividade();
            ViewBag.Titulo = "Nova Atividade";

            short idDisciplina = 1;
            int idTurma = 1;

            ViewBag.idDisciplina
                = new SelectList(disciplinaModel.todasDisciplinas(),
                    "idDisciplina", "Descricao", idDisciplina);

            ViewBag.idTurma
                = new SelectList(turmaModel.todasTurmas(),
                    "idTurma", "Identificacao", idTurma);

            listaAlunos = alunoModel.listarAlunosPorTurma(idDisciplina);

            return (listaAlunos);
        }
        public ActionResult GerarAvaliacaoAutomatica(cabecalhoAvaliacao c)
        {
            int id = 0;
            Atividade atA = new Atividade();
            ViewBag.Titulo = "Nova Avaliacao Automatica";

            int idDisciplina = c.IdDisciplina;
            int idTurma = c.IdTurma;

            if (id != 0)
            {
                atA = atividadeModel.obterAtividade(id);
                idDisciplina = atA.idDisciplina;
                idTurma = atA.idTurma;
                ViewBag.Titulo = "Editar Atividade";
            }

            listaAlunos = alunoModel.listarAlunosPorTurma(idTurma);

            for (int i = 0; i < listaAlunos.Count; i++)
            {

                int idAlunoA = listaAlunos[i].idAluno;
                Aluno a = alunoModel.obterAluno(idAlunoA);

                Atividade at = new Atividade();
                Atividade at2 = atividadeModel.obterAtividade(4);

                at.idDisciplina = c.IdDisciplina;
                at.idTurma = c.IdTurma;
                at.Identificacao = c.Identificacao;
                at.DataAbertura = c.DataAbertura;
                at.DataEncerramento = c.DataEncerramento;
                at.Titulo = c.Titulo;
                at.Descricao = c.Descricao;

                at.idStatus = 1; //Definindo Atividade como aberta
                at.idTipo = 2; //Definindo tipo como AVALIAÇÂO

                string erro = null;
                erro = atividadeModel.adicionarAtividade(at);

                ///////////////////// INSERIR PERGUTAS NA ATIVIDADE //////////////////////////

                //Me retorna a lista de perguntas para adicionar na prova
                prepararSorteio(idAlunoA, c.IdDisciplina);
                for (int j = 0; j < listaFinalPerguntas.Count; j++)
                {
                    Pergunta_Atividade pa = new Pergunta_Atividade();

                    pa.idAtividade = at.idAtividade;
                    pa.idPergunta = listaFinalPerguntas[j].idPergunta;

                    erro = perguntaAtividadeModel.adicionarPerguntaAtividade(pa);
                }

                Aluno_Atividade aa = new Aluno_Atividade();
                aa.idAluno = idAlunoA;
                aa.idAtividade = at.idAtividade;
                aa.idStatus = 1;
                erro = alunoAtividadeModel.adicionarAlunoAtividade(aa);
            }

            return RedirectToAction("IndexAvaliacao");
        }
        public ActionResult Edit(Atividade a, Disciplina d, Turma t, Curso c)
        {
            if (Roles.IsUserInRole(User.Identity.Name, "Professor"))
            {
                ViewBag.idCurso
                    = new SelectList(cursoModel.todosCursos(),
                        "idCurso", "Descricao", c);

                ViewBag.idDisciplina
                    = new SelectList(disciplinaModel.todasDisciplinas(),
                        "idDisciplina", "Descricao", d);

                ViewBag.idTurma
                    = new SelectList(turmaModel.todasTurmas(),
                        "idTurma", "Identificacao", t);

                a.idStatus = 1; //Definindo Atividade como aberta
                a.idTipo = 1; //TIPO ATIVIDADE

                if (!validarAtividade(a))
                {
                    ViewBag.Erro = "Erro na validação da Atividade";
                    return View(a);
                }

                string erro = null;
                if (a.idAtividade == 0)
                {
                    erro = atividadeModel.adicionarAtividade(a);
                }
                else
                {
                    erro = atividadeModel.editarAtividade(a);
                }
                if (erro == null)
                {
                    return RedirectToAction("Index");
                }
                else
                {
                    ViewBag.Erro = erro;
                    return View(a);
                }
            }
            return Redirect("/Shared/Restrito");
        }