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 })); }
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 })); }
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)); } }
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)); } }