예제 #1
0
 public SurveyResponse CreateResponse(int surveyId)
 {
     var survey = context.Surveys.Find(surveyId);
       var model = new SurveyResponse()
       {
     Survey = survey,
     SurveyId = surveyId,
     Answers = survey.Questions.Select(q => new Answer() { Question = q, QuestionId = q.Id }).ToList()
       };
       return model;
 }
예제 #2
0
        public ActionResult Create(SurveyResponse surveyResponse)
        {
            if (ModelState.IsValid)
              {
            responseRepository.InsertOrUpdate(surveyResponse);
            responseRepository.Save();
            return RedirectToAction("Index");
              }

              PopulateViewBag();
              var model = GetCleanModelWithCurrentAnswers(surveyResponse);
              return View(model);
        }
예제 #3
0
 public ActionResult CreateResponse(int surveyId)
 {
     var survey = surveyRepository.Find(surveyId);
       var model = new SurveyResponse()
             {
               SurveyId = surveyId,
               Survey = survey,
               Answers = new List<Answer>()
             };
       foreach (var question in survey.Questions)
       {
     model.Answers.Add(new Answer()
                     {
                       Question = question,
                       QuestionId = question.Id
                     }
       );
       }
       PopulateViewBag();
       return View(model);
 }
예제 #4
0
        public void ResponsesContainsRespondent()
        {
            using (var db = new SurveyorContext())
              {
            var respondent = db.Respondents.First();
            var survey = db.Surveys.First();
            var response1 = new SurveyResponse() { RespondentId = respondent.Id, SurveyId = survey.Id };
            db.Responses.Add(response1);
            db.SaveChanges();
              }

              using (var db = new SurveyorContext())
              {
            var response = db.Responses.Include(r => r.Respondent).First();
            Assert.IsNotNull(response);
            Assert.IsNotNull(response.Respondent);
            Assert.IsNotNull(response.Respondent.UserName);
              }
        }
예제 #5
0
        public void InsertOrUpdate(SurveyResponse surveyResponse)
        {
            context.SetEntityStateForChildren(surveyResponse.Answers);
              if (surveyResponse.Id == default(int))
              {
            // New entity
            context.Responses.Add(surveyResponse);
              }
              else
              {
            // Existing entity
            context.Entry(surveyResponse).State = EntityState.Modified;

              }
        }
예제 #6
0
 public ActionResult Edit(SurveyResponse surveyResponse)
 {
     if (ModelState.IsValid)
       {
     responseRepository.InsertOrUpdate(surveyResponse);
     responseRepository.Save();
     return RedirectToAction("Index");
       }
       PopulateViewBag();
       return View(surveyResponse);
 }
예제 #7
0
 private SurveyResponse GetCleanModelWithCurrentAnswers(SurveyResponse surveyResponse)
 {
     // Get fresh model and clone answoers to it.
       var model = responseRepository.CreateResponse(surveyResponse.SurveyId);
       foreach (var answer in model.Answers)
       {
     answer.AnswerText = surveyResponse.Answers.Single(r => r.QuestionId == answer.QuestionId).AnswerText;
       }
       return model;
 }