private static void AddCaseResultFormDefaultSections(AspergillosisContext context) { var caseReportFormSections = new CaseReportFormSection[] { new CaseReportFormSection { Name = "Aspergillus Fumigatus Percip" }, new CaseReportFormSection { Name = "Beta Glucan" }, new CaseReportFormSection { Name = "Aspergillus Galactomannan ag" }, new CaseReportFormSection { Name = "Cryptococcal Antigen" }, new CaseReportFormSection { Name = "Expected Resistance Profile" } }; foreach (var item in caseReportFormSections) { context.CaseReportFormSections.Add(item); } }
public static void BuildSection(AspergillosisContext context, CaseReportFormSectionViewModel formSectionVM) { var formSection = new CaseReportFormSection() { Name = formSectionVM.Name }; formSection.CaseReportFormResultFields = new List <CaseReportFormField>(); foreach (var field in formSectionVM.Fields) { formSection.CaseReportFormResultFields.Add(field); context.CaseReportFormFields.Add(field); if (field.SelectedOptionsIds == null) { continue; } foreach (var fieldOptionId in field.SelectedOptionsIds) { var sectionOption = new CaseReportFormFieldOption(); sectionOption.CaseReportFormOptionChoiceId = fieldOptionId; sectionOption.Field = field; context.CaseReportFormFieldOptions.Add(sectionOption); } } context.CaseReportFormSections.Add(formSection); }
public IActionResult EditFormSection(int?id, CaseReportFormSection section, CaseReportFormField[] fields) { section.CaseReportFormResultFields = fields; foreach (var field in section.CaseReportFormResultFields.OrderBy(f => f.ID)) { var dbOptionsIds = _context.CaseReportFormFieldOptions.Where(fo => fo.CaseReportFormFieldId == field.ID).Select(fo => fo.CaseReportFormOptionChoiceId).ToList(); var formIds = new List <int>(); if (field.SelectedOptionsIds != null) { formIds = field.SelectedOptionsIds.ToList(); } var toDeleteOptions = dbOptionsIds.Except(formIds); var toInsertOptions = formIds.Except(dbOptionsIds); if (toDeleteOptions.Count() > 0) { var fieldOptions = _context.CaseReportFormFieldOptions.Where(fo => fo.CaseReportFormFieldId == field.ID && toDeleteOptions.Contains(fo.CaseReportFormOptionChoiceId)); _context.RemoveRange(fieldOptions); } if (toInsertOptions.Count() > 0) { foreach (var optionId in toInsertOptions) { var fieldOption = new CaseReportFormFieldOption(); fieldOption.CaseReportFormFieldId = field.ID; fieldOption.CaseReportFormOptionChoiceId = optionId; _context.Add(fieldOption); } } } if (ModelState.IsValid) { _context.Update(section); _context.SaveChanges(); return(Json(new { valid = true })); } else { var errors = ModelStateHelper.Errors(ModelState); return(Json(new { errors = errors, valid = false })); } }