public ActionResult Submit(CustomerAnswer answer)
        {
            bool isAjax = Request.IsAjaxRequest();

            if (ModelState.IsValid)
            {
                //Automatique Date And answer Status processing
                if (answer.answerText != "-" && answer.answerStatusValue == (int)AnswerStatus.NotSet)
                {
                    answer.answerStatusValue = (int)AnswerStatus.Commented;
                }
                else if (answer.answerText == "-" && answer.answerStatusValue == (int)AnswerStatus.NotSet)
                {
                    answer.answerStatusValue = (int)AnswerStatus.Reported;
                }

                if (answer.observerComment != null)
                {
                    answer.observerCommentDateAndTime = DateTime.Now;
                }

                db.Entry(answer).State = EntityState.Modified;
                db.SaveChanges();

                TempData["SubmitStatus"] = "1";
            }
            else
            {
                TempData["SubmitStatus"] = "0";
            }
            return(RedirectToAction("Index", new { id = answer.surveyId, number = answer.questionId }));
        }
        public ActionResult Validate(CustomerAnswer answer)
        {
            if (ModelState.IsValid)
            {
                answer.supervisorCommentDateAndTime = DateTime.Now;
                answer.answerStatusValue            = (int)AnswerStatus.Validated;

                db.Entry(answer).State = EntityState.Modified;
                db.SaveChanges();
            }
            return(RedirectToAction("Index", new { id = answer.surveyId, number = answer.questionId }));
        }
        public ActionResult Validate(int id = 0, int number = 0)
        {
            CustomerAnswer answer = db.CustomerAnswers.Find(id, number);

            if (answer == null)
            {
                return(HttpNotFound());
            }

            if (Request.IsAjaxRequest())
            {
                return(PartialView(answer));
            }

            return(View(answer));
        }
        public ActionResult Submit(int id = 0, int number = 0)
        {
            //That ensures that parameters passed are correct
            CustomerSurvey survey = db.CustomerSurveys.Find(id);

            if (survey == null)
            {
                return(HttpNotFound());
            }

            CustomerAnswer answer = survey.CustomerAnswers.SingleOrDefault(a => a.questionId == number);

            if (answer == null)
            {
                /*if answer does not exist --> check if question is part of base survey
                 * (ensures that parameters passed are correct)*/
                bool includedInBaseSurvey = survey.GenericSurvey.Questions.Any(q => q.questionId == number);
                if (!includedInBaseSurvey)
                {
                    return(HttpNotFound());
                }
                //If question is included --> create new Dummy customer Answer
                else
                {
                    answer = new CustomerAnswer()
                    {
                        surveyId = id, questionId = number, answerText = "-", observerStatusValue = 0
                    };
                    db.CustomerAnswers.Add(answer);
                    db.SaveChanges();
                }
            }

            #region Additional info
            //Question type into account (1: long, 2: short;)
            ViewBag.QuestionType = answer.Question.questionTypeId;
            //Drop downs
            ViewBag.answerOptionNumber =
                new SelectList(answer.Question.AnswerOptions, "answerNumber", "answerText", answer.answerOptionNumber);
            ViewBag.observerStatusValue =
                new SelectList(db.ObserverStatus, "statusValue", "description", answer.observerStatusValue);

            int measuresAmount = answer.Question.GenericCountermeasures.Count;
            ViewBag.MeasuresAmount = measuresAmount > 3 ? 3 : measuresAmount;

            ViewBag.countermeasureId1 =
                new SelectList(answer.Question.GenericCountermeasures, "countermeasureId", "title", answer.countermeasureId1);
            ViewBag.countermeasureId2 =
                new SelectList(answer.Question.GenericCountermeasures, "countermeasureId", "title", answer.countermeasureId2);
            ViewBag.countermeasureId3 =
                new SelectList(answer.Question.GenericCountermeasures, "countermeasureId", "title", answer.countermeasureId3);

            #endregion

            if (Request.IsAjaxRequest())
            {
                return(PartialView(answer));
            }

            return(View(answer));
        }
示例#5
0
        private ProfileQuestionsViewModel GenerateCustomerAnswer(CustomerAnswer customerAnswerObj)
        {
            var profileQuestionsViewModel = new ProfileQuestionsViewModel();

            StyleProfileQuestion objQuestion =
                _scottybonsEComEntities.StyleProfileQuestions.FirstOrDefault(
                    q => q.QuestionID == customerAnswerObj.QuestionId && q.Language == "nl");


            profileQuestionsViewModel.CustomerAnswer = customerAnswerObj;

            profileQuestionsViewModel.Question               = objQuestion.Question;
            profileQuestionsViewModel.QuestionId             = objQuestion.QuestionID;
            profileQuestionsViewModel.QuestionNumber         = objQuestion.QuestionNumber ?? 0;
            profileQuestionsViewModel.QuestionSubDescription = objQuestion.QuestionDescription;
            profileQuestionsViewModel.IsRequired             = objQuestion.isRequired ?? false;
            profileQuestionsViewModel.IsImageTobeShown       = objQuestion.IsImageTobeShown ?? false;
            profileQuestionsViewModel.ImagePath              = objQuestion.ImagePath ?? string.Empty;
            profileQuestionsViewModel.DisplayOrder           = objQuestion.DisplayOrder ?? 0;
            profileQuestionsViewModel.LanguageOfQuestion     = objQuestion.Language;
            profileQuestionsViewModel.ValidationMessage      = objQuestion.ValidationMessage;

            //Answer Information
            profileQuestionsViewModel.AnswerControlId   = objQuestion.AnswerControlID ?? 0;
            profileQuestionsViewModel.AnswerControlType =
                (ProfileQuestionAnswerControlTypes)profileQuestionsViewModel.AnswerControlId;
            profileQuestionsViewModel.Answers =
                _scottybonsEComEntities.StyleProfileAnswers.Where(a => a.QuestionID == objQuestion.QuestionID).ToList();

            if (
                profileQuestionsViewModel.AnswerControlType.Equals(ProfileQuestionAnswerControlTypes.RadioButton) &&
                (!ReferenceEquals(profileQuestionsViewModel.CustomerAnswer.AnswerId, null)))
            {
                profileQuestionsViewModel.SelectedAnswer = profileQuestionsViewModel.CustomerAnswer.AnswerId.ToString();


                profileQuestionsViewModel.SelectedAnswerDescription =
                    profileQuestionsViewModel.Answers.FirstOrDefault(
                        o => o.AnswerID == profileQuestionsViewModel.CustomerAnswer.AnswerId).Answer + " " +
                    profileQuestionsViewModel.Answers.FirstOrDefault(
                        o => o.AnswerID == profileQuestionsViewModel.CustomerAnswer.AnswerId).AnswerDescription;
                if (!string.IsNullOrEmpty(profileQuestionsViewModel.CustomerAnswer.Answer))
                {
                    profileQuestionsViewModel.SelectedOtherAnswer       = profileQuestionsViewModel.CustomerAnswer.Answer;
                    profileQuestionsViewModel.SelectedAnswerDescription = " " +
                                                                          profileQuestionsViewModel.SelectedOtherAnswer;
                }
            }
            else if (
                profileQuestionsViewModel.AnswerControlType.Equals(ProfileQuestionAnswerControlTypes.TextBox) &&
                (!ReferenceEquals(profileQuestionsViewModel.CustomerAnswer.Answer, null)))
            {
                profileQuestionsViewModel.SelectedAnswer = profileQuestionsViewModel.CustomerAnswer.Answer;
            }
            else if (
                profileQuestionsViewModel.AnswerControlType.Equals(
                    ProfileQuestionAnswerControlTypes.UploadControl) &&
                (!ReferenceEquals(profileQuestionsViewModel.CustomerAnswer.CustomerImage, null)))
            {
                profileQuestionsViewModel.SelectedAnswerImage =
                    profileQuestionsViewModel.CustomerAnswer.CustomerImage;
            }
            else if (profileQuestionsViewModel.AnswerControlType.Equals(ProfileQuestionAnswerControlTypes.CheckBox) &&
                     (!ReferenceEquals(profileQuestionsViewModel.CustomerAnswer.Answer, null)))
            {
                if (!string.IsNullOrEmpty(profileQuestionsViewModel.CustomerAnswer.OtherAnswer))
                {
                    profileQuestionsViewModel.SelectedOtherAnswer = profileQuestionsViewModel.CustomerAnswer.OtherAnswer;
                }
                profileQuestionsViewModel.SelectedAnswer = profileQuestionsViewModel.CustomerAnswer.Answer;

                var answerCheckBoxViewModel = profileQuestionsViewModel.Answers.Select(ans => new AnswerControlViewModel
                {
                    IsSelected =
                        !ReferenceEquals(profileQuestionsViewModel.SelectedAnswer, null) &&
                        profileQuestionsViewModel.SelectedAnswer.Contains(ans.AnswerID.ToString()),
                    AnswerId          = ans.AnswerID,
                    QuestionId        = ans.QuestionID ?? 1,
                    Answer            = ans.Answer,
                    AnswerDescription = ans.AnswerDescription,
                    AnswerImagePath   = ans.AnswerImagePath,
                    Flag              = ans.FLAG,
                    QuestionNumber    = ans.QuestionNumber,
                    DependentQuestion = ans.DependentQuestion ?? 1
                }).ToList();
                profileQuestionsViewModel.CheckBoxAnswers = answerCheckBoxViewModel;
            }
            return(profileQuestionsViewModel);
        }