Exemple #1
0
        public async Task <IActionResult> Index()
        {
            // var questionnaires = await context.Questionnaires.Include(q => q.Questions)
            //     .ToListAsync();
            var questionnaires = await questionnaireRepository.All();

            var vm = new QuestionnairesViewModel()
            {
                Questionnaires = questionnaires.Select(q =>
                {
                    return(new QuestionnaireViewModel()
                    {
                        Id = q.Id,
                        Title = q.Title,
                        FirstQuestionId = q.Questions.OrderBy(q => q.Id).First().Id
                    });
                }).ToList()
            };

            return(View(vm));
        }
        public ActionResult AddQuestionnaire(QuestionnairesViewModel Model, string[] BlankOptions, string[] AnswerOptions)
        {
            try
            {
                VTSDBEntities objDB = new VTSDBEntities();

                if (Model.QuestionType == DAL.Model.QuestionType.SingleLine)
                {
                    Question1 question1 = new Question1();
                    question1.QuestionSentence = Model.QuestionText;
                    question1.OriginalSentence = "";
                    List <Option1> QuesOptions = new List <Option1>();
                    foreach (string OptionText in BlankOptions)
                    {
                        Option1 EachOption = new Option1();
                        EachOption.OptionText = OptionText;
                        EachOption.Question1  = question1;
                        QuesOptions.Add(EachOption);
                    }

                    List <Answer1> AllAnswers = new List <Answer1>();
                    foreach (string AnswerText in AnswerOptions)
                    {
                        Answer1 EachAnswer = new Answer1();
                        EachAnswer.AnswerText = AnswerText;
                        EachAnswer.Question1  = question1;
                        AllAnswers.Add(EachAnswer);
                    }

                    question1.Answer1 = AllAnswers;
                    question1.Option1 = QuesOptions;
                    objDB.Question1.Add(question1);
                    objDB.SaveChanges();
                    ViewBag.SuccessMsg = "Questionnaire added successfully.";
                }
                else if (Model.QuestionType == DAL.Model.QuestionType.MultiLine)
                {
                    Question2 question2 = new Question2();
                    question2.QuestionText = Model.QuestionText;

                    List <Option2> QuesOptions = new List <Option2>();
                    foreach (string OptionText in BlankOptions)
                    {
                        Option2 EachOption = new Option2();
                        EachOption.OptionText = OptionText;
                        EachOption.Question2  = question2;
                        QuesOptions.Add(EachOption);
                    }

                    List <Answer2> AllAnswers = new List <Answer2>();
                    Answer2        EachAnswer = new Answer2();
                    EachAnswer.Answer    = Model.AnswerText;
                    EachAnswer.Question2 = question2;
                    AllAnswers.Add(EachAnswer);


                    question2.Answer2 = AllAnswers;
                    question2.Option2 = QuesOptions;
                    objDB.Question2.Add(question2);
                    objDB.SaveChanges();
                    ViewBag.SuccessMsg = "Questionnaire added successfully.";
                }
                else if (Model.QuestionType == DAL.Model.QuestionType.SingleOption)
                {
                    Question3 question3 = new Question3();
                    question3.QuestionText = Model.QuestionText;

                    List <Answer3> AllAnswers = new List <Answer3>();
                    foreach (string AnswerText in AnswerOptions)
                    {
                        Answer3 EachAnswer = new Answer3();
                        EachAnswer.Answer    = AnswerText;
                        EachAnswer.Question3 = question3;
                        AllAnswers.Add(EachAnswer);
                    }


                    question3.Answer3 = AllAnswers;
                    objDB.Question3.Add(question3);
                    objDB.SaveChanges();
                    ViewBag.SuccessMsg = "Questionnaire added successfully.";
                }
                else if (Model.QuestionType == DAL.Model.QuestionType.MultiOption)
                {
                    Question4 question4 = new Question4();
                    question4.QuestionText = Model.QuestionText;

                    List <Answer4> AllAnswers = new List <Answer4>();
                    foreach (string AnswerText in AnswerOptions)
                    {
                        Answer4 EachAnswer = new Answer4();
                        EachAnswer.Answer    = AnswerText;
                        EachAnswer.Question4 = question4;
                        AllAnswers.Add(EachAnswer);
                    }

                    question4.Answer4 = AllAnswers;
                    objDB.Question4.Add(question4);
                    objDB.SaveChanges();
                    ViewBag.SuccessMsg = "Questionnaire added successfully.";
                }
                else if (Model.QuestionType == DAL.Model.QuestionType.Date)
                {
                    Question5 question5 = new Question5();
                    question5.QuestionText = Model.QuestionText;

                    List <Answer5> AllAnswers = new List <Answer5>();
                    foreach (string AnswerText in AnswerOptions)
                    {
                        Answer5 EachAnswer = new Answer5();
                        EachAnswer.Answer    = AnswerText;
                        EachAnswer.Question5 = question5;
                        AllAnswers.Add(EachAnswer);
                    }

                    question5.Answer5 = AllAnswers;
                    objDB.Question5.Add(question5);
                    objDB.SaveChanges();
                    ViewBag.SuccessMsg = "Questionnaire added successfully.";
                }
            }
            catch (System.Data.Entity.Validation.DbEntityValidationException dbEx)
            {
                Exception raise = dbEx;
                foreach (var validationErrors in dbEx.EntityValidationErrors)
                {
                    foreach (var validationError in validationErrors.ValidationErrors)
                    {
                        string message = string.Format("{0}:{1}",
                                                       validationErrors.Entry.Entity.ToString(),
                                                       validationError.ErrorMessage);
                        // raise a new exception nesting
                        // the current instance as InnerException
                        raise = new InvalidOperationException(message, raise);
                    }
                }
                //throw raise;
                ViewBag.ErrorMsg = "An error occurred while saving the questionnaire.";
            }

            ModelState.Clear();
            return(View());
        }