public ActionResult Fields(Guid id) { var existingTemplate = database.GetTemplates().FirstOrDefault(t => t.Id == id); if (existingTemplate == null) { return(NotFound()); } var vm = new TemplateFieldsViewModel { Criteria = existingTemplate.criteria.ToList(), Id = existingTemplate.Id, Fields = existingTemplate.inputSurvey.fields.ToList() }; return(View(vm)); }
public ActionResult Fields(TemplateFieldsViewModel vm) { if (ModelState.IsValid) { var existingTemplate = database.GetTemplates().FirstOrDefault(t => t.Id == vm.Id); if (existingTemplate == null) { return(NotFound()); } existingTemplate.criteria = vm.Criteria; existingTemplate.inputSurvey.fields = vm.Fields; database.SaveChanges(); } return(RedirectToAction("Index")); }
public ActionResult Fields(TemplateFieldsViewModel vm) { if (ModelState.IsValid) { var existingTemplate = database.GetTemplates().FirstOrDefault(t => t.Id == vm.Id); if (existingTemplate == null) { return(NotFound()); } //create empty lists if values are absent vm.Criteria = vm.Criteria ?? new List <Criteria>(); vm.Fields = vm.Fields ?? new List <Field>(); //turn criteria selectedValue into a set of answers foreach (var criteria in vm.Criteria) { int answerIndex = 0; criteria.answers = new List <Answer>(); var userInput = criteria.SelectedValue?.Split(','); foreach (var input in userInput) { criteria.answers.Add( new Answer { Id = Guid.NewGuid(), Order = answerIndex++, Text = input, value = input }); } criteria.SelectedValue = ""; } existingTemplate.criteria = vm.Criteria; existingTemplate.inputSurvey.fields = vm.Fields; database.SaveChanges(); return(RedirectToAction("Assign", new { id = vm.Id })); } return(View(vm)); }