Пример #1
0
        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));
        }
Пример #2
0
        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"));
        }
Пример #3
0
        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));
        }