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; }
public ActionResult Create(SurveyResponse surveyResponse) { if (ModelState.IsValid) { responseRepository.InsertOrUpdate(surveyResponse); responseRepository.Save(); return RedirectToAction("Index"); } PopulateViewBag(); var model = GetCleanModelWithCurrentAnswers(surveyResponse); return View(model); }
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); }
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); } }
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; } }
public ActionResult Edit(SurveyResponse surveyResponse) { if (ModelState.IsValid) { responseRepository.InsertOrUpdate(surveyResponse); responseRepository.Save(); return RedirectToAction("Index"); } PopulateViewBag(); return View(surveyResponse); }
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; }