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