Пример #1
0
        public ActionResult Answer([Bind(Include = "Answer, Answer.ID, Answer.BodyJSON")] AnswerQuestionnaireViewModel model)
        {
            if (!ModelState.IsValid)
            {
                ViewBag.Project = this.Project;
                return(View(model));
            }

            model.Answer.Answered = this.ExecutionContext.Now;

            this.DbContext.Entry(model.Answer).State = EntityState.Modified;
            this.DbContext.SaveChanges();

            // プロジェクトの課題一覧に戻る(TODO:確認画面などの作成)
            return(RedirectToAction("Index", "Questionnaire", new { projectId = this.Project.ID }));
        }
Пример #2
0
        // GET: /Questionnaire/project/1/Answer?questionnaireId=5
        public ActionResult Answer(int?questionnaireId)
        {
            // アンケート回答を取得する
            var answer = this.DbContext.Answers
                         .Where(ans => ans.Questionnaire.ID == questionnaireId &&
                                ans.ParticipantUserProject.ParticipantUser.ID == this.CurrentUser.ID &&
                                ans.ParticipantUserProject.Project.ID == this.Project.ID)
                         .Include(ans => ans.Questionnaire)
                         .FirstOrDefault();

            // 空の回答が存在しなければ、ログインユーザにはアンケートが割り当てられていない
            if (answer == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }

            // 回答済みの場合は BadRequest(TODO: 課題一覧画面に戻すか、エラー画面を出す)
            if (answer.Answered.HasValue)
            {
                //return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
            }

            // 質問は割り当てられたが、回答可能日時を過ぎていない場合は BadRequest
            // TODO:サーバ時間は考慮済みか?
            var questionnaire = answer.Questionnaire;

            if (questionnaire.Questioned.HasValue && questionnaire.Questioned > this.ExecutionContext.Now)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }

            // モデルを作成し、回答画面を表示
            AnswerQuestionnaireViewModel model = new AnswerQuestionnaireViewModel()
            {
                Questionnaire = answer.Questionnaire,
                Answer        = answer
            };

            return(View(model));
        }