//
        // GET: /Question/Create
        public ActionResult Create(int id)
        {
            Form form = context.Forms.SingleOrDefault(b => b.FormId == id);
            ViewBag.FormTitle = form.Title;

            Question question = new Question();
            question.FormId = id;

            return View(question);
        }
 public ActionResult Create(Question question)
 {
     try
     {
         if (ModelState.IsValid)
         {
             Form form = context.Forms.SingleOrDefault(b => b.FormId == question.FormId);
             form.Questions.Add(question);
             context.SaveChanges();
             return RedirectToAction("Details", "Data", new { id = form.FormId });
         }
         return View();
     }
     catch (Exception ex)
     {
         return RedirectToAction("Error", "Shared", ex.Message);
     }
 }
        public ActionResult AddQuestion(FormCollection collection)
        {
            try
            {
                //Création d'une nouvelle question
                Question quest = new Question();

                //On récupère le FormId du formulaire
                quest.FormId = Convert.ToInt32(Request.Form["listForms"].ToString());

                //On retourne la question à la vue
                return View(quest);
            }
            catch (Exception ex)
            {
                return RedirectToAction("Error", "Shared", ex.Message);
            }
        }
        public ActionResult Edit(int id, Question question)
        {
            try
            {
                if (ModelState.IsValid)
                {
                    using (context)
                    {
                        Question _question = context.Questions.Single(p => p.QuestionId == id);

                        _question.QuestionLabel = question.QuestionLabel;

                        context.Entry(_question).State = EntityState.Modified;
                        context.SaveChanges();

                        return RedirectToAction("Index");
                    }

                }
                return View(question);
            }
            catch (Exception ex)
            {
                return RedirectToAction("Error", "Shared", ex.Message);
            }
        }
        public ActionResult Delete(int id, Question question)
        {
            try
            {
                //get question to delete
                Question _question = context.Questions.Single(p => p.QuestionId == id);

                #region DeleteAnswers

                //Select all asnwers to this question
                List<Answer> answersToDelete = context.Answers.Where(i => i.QuestionId == id).ToList();

                //On supprime les réponses de la base
                foreach (Answer answerToDelete in answersToDelete)
                {
                    context.Answers.Remove(answerToDelete);
                }

                #endregion

                #region DeleteStats

                //Select All stats to this question
                List<Stat> statsToDelete = context.Stats.Where(i => i.QuestionId == id).ToList();

                //On supprime chaque stat
                foreach (Stat statToDelete in statsToDelete)
                {
                    context.Stats.Remove(statToDelete);
                }

                #endregion

                //Delete question
                context.Questions.Remove(_question);

                context.SaveChanges();
                return RedirectToAction("Index");
            }
            catch (Exception ex)
            {
                return RedirectToAction("Error", "Shared", ex.Message);
            }
        }