Esempio n. 1
0
        public ActionResult AddPergunta(int idQuadrante, int idPergunta)
        {
            Pergunta_Quadrante newPerguntaQuadrante = new Pergunta_Quadrante();

            newPerguntaQuadrante.idQuadrante = idQuadrante;
            newPerguntaQuadrante.idPergunta  = idPergunta;

            db.Pergunta_Quadrantes.InsertOnSubmit(newPerguntaQuadrante);
            db.SubmitChanges();

            return(RedirectToAction("EditQuadrante", new { id = idQuadrante }));
        }
Esempio n. 2
0
        public ActionResult RemovePergunta(int id)
        {
            //Neste caso, como só queremos remover a pergunta do quadrante (e não eliminá-la da base de dados), obtemos a relação pergunta-quadrante correspondente
            //Depois de obtida, eliminamos essa mesma relação da base de dados
            Pergunta_Quadrante removePerguntaQuadrante = db.Pergunta_Quadrantes.Single(pq => pq.idPergunta_Quadrante == id);

            int removePerguntaQuadranteIDQuadrante = removePerguntaQuadrante.idQuadrante;

            db.Pergunta_Quadrantes.DeleteOnSubmit(removePerguntaQuadrante);
            db.SubmitChanges();

            return(RedirectToAction("EditQuadrante", new { id = removePerguntaQuadranteIDQuadrante }));
        }
Esempio n. 3
0
        public ActionResult EditQuadrante(FormCollection dadosNovos, int id)
        {
            //Verifica cada dado introduzido pelo utilizador por inconsistências (se os campos estão preenchidos, se os campos são válidos, etc.)
            if (string.IsNullOrEmpty(dadosNovos["nome"]) == true)
            {
                ModelState.AddModelError("nome", "Tem que preencher o campo do nome do quadrante!");
            }

            if (ModelState.IsValid == true)
            {
                //Primeiro obtém o quadrante a editar, através do seu resptivo ID passado como parâmetro
                //Depois associa os novos dados a esse mesmo quadrante
                Quadrante editQuadrante = db.Quadrantes.Single(q => q.idQuadrante == id);

                editQuadrante.nome = dadosNovos["nome"];

                //Apaga todas as relações pergunta-quadrante associadas a este quadrante particular
                db.Pergunta_Quadrantes.DeleteAllOnSubmit(db.Pergunta_Quadrantes.Where(pq => pq.idQuadrante == id));
                db.SubmitChanges();

                //Depois das relações apagadas, volta a criar novas relações pergunta-quadrante, com base nas novas checkboxes seleccionadas
                foreach (Pergunta p in db.Perguntas)
                {
                    //Visto que o ASP.NET MVC faz umas coisas esquisitas com as checkboxes, este workaround certifica que a checkbox de cada pergunta é corretamente validada
                    if (dadosNovos[string.Concat("pergunta", p.idPergunta)].Contains("true") == true)
                    {
                        Pergunta_Quadrante newPerguntaQuadrante = new Pergunta_Quadrante();

                        newPerguntaQuadrante.idPergunta  = p.idPergunta;
                        newPerguntaQuadrante.idQuadrante = editQuadrante.idQuadrante;

                        db.Pergunta_Quadrantes.InsertOnSubmit(newPerguntaQuadrante);
                    }
                }

                db.SubmitChanges();

                return(RedirectToAction("Index"));
            }
            else
            {
                TecnicasViewModel editQuadranteViewModel = new TecnicasViewModel();

                editQuadranteViewModel.QuadrantesList.Add(db.Quadrantes.Single(q => q.idQuadrante == id));
                editQuadranteViewModel.PerguntasQuadrantesList = db.Pergunta_Quadrantes.Where(pq => pq.idQuadrante == id).ToList();
                editQuadranteViewModel.PerguntasList           = db.Perguntas.ToList();

                return(View(editQuadranteViewModel));
            }
        }
Esempio n. 4
0
        public ActionResult CreateQuadrante(FormCollection dadosQuadrante)
        {
            if (string.IsNullOrEmpty(dadosQuadrante["nome"]) == true)
            {
                ModelState.AddModelError("nome", "Tem que preencher o campo do nome do quadrante!");
            }

            if (ModelState.IsValid == true)
            {
                Quadrante newQuadrante = new Quadrante();

                newQuadrante.nome         = dadosQuadrante["nome"];
                newQuadrante.idUtilizador = Convert.ToInt32(Session["idUtilizadorAutenticado"]);

                db.Quadrantes.InsertOnSubmit(newQuadrante);
                db.SubmitChanges();

                foreach (Pergunta p in db.Perguntas)
                {
                    //Visto que o ASP.NET MVC faz umas coisas esquisitas com as checkboxes, este workaround certifica que a checkbox de cada pergunta é corretamente validada
                    if (dadosQuadrante[string.Concat("pergunta", p.idPergunta)].Contains("true") == true)
                    {
                        Pergunta_Quadrante newPerguntaQuadrante = new Pergunta_Quadrante();

                        newPerguntaQuadrante.idPergunta  = p.idPergunta;
                        newPerguntaQuadrante.idQuadrante = newQuadrante.idQuadrante;

                        db.Pergunta_Quadrantes.InsertOnSubmit(newPerguntaQuadrante);
                    }
                }

                db.SubmitChanges();

                return(RedirectToAction("Index"));
            }
            else
            {
                TecnicasViewModel createQuadranteViewModel = new TecnicasViewModel();

                createQuadranteViewModel.QuadrantesList.Add(new Quadrante());
                createQuadranteViewModel.PerguntasList = db.Perguntas.ToList();

                return(View(createQuadranteViewModel));
            }
        }