public QuestionnaireViewModel(Questionnaire questionnaire)
 {
     this.QuestionnaireItemViewModels = questionnaire.Items.Select(x => new QuestionnaireItemViewModel(x)).ToArray();
 }
        public ActionResult Questionnaire()
        {
            var user = this.GetAuthUser();
            var context = ApplicationDbContext.Create();
            var questionnaire = context.Questionnaires.SingleOrDefault(x => x.User.Id == user.Id);

            if (questionnaire == null) {
                questionnaire = new Questionnaire() {
                    User = context.Users.Single(x => x.Id == user.Id),
                    Date = DateTime.Now,
                };
                foreach (var setting in context.CriteriaSettings) {
                    questionnaire.Items.Add(new QuestionnaireItem {
                        Key = setting.Name,
                        Value = 0,
                    });
                }
                context.Questionnaires.Add(questionnaire);
                context.SaveChanges();
            }

            var model = new QuestionnaireViewModel(questionnaire);
            return View(model);
        }