private void ProcessInternalOptions(MainViewModel model, UIOptionSubCategoryType subCategory) { var docProvs = subCategory.Options.Find(op => op.Name == "DocumentProviders") as UIOptionGroupType; var defaultDocProv = subCategory.Options.Find(op => op.Name == "DefaultDocumentProvider") as UIOptionType; StringOption defaultDocProvOpt = CreateShellOption(null, defaultDocProv) as StringOption; model.AddOption(defaultDocProvOpt); foreach (UIOptionGroupInstanceType instance in docProvs.OptionGroupInstances) { if (instance.Name == DefaultXmlReadVisitor.InstanceTemplateName) { continue; } if (instance.Name == "Offline Document Provider") { continue; } OptionGroupInstance shelloptiongroup = CreateShellOptionGroupInstance(null, instance); BoolOption enabledOpt = (from x in shelloptiongroup.SubOptions where x.Name == "Enabled" select x).FirstOrDefault() as BoolOption; model.AddOption(enabledOpt); if (IsFeatureEnabled(instance) || model.AppModel.IsAdmin) { DMSEnableOption newOpt = new DMSEnableOption(instance.Name, enabledOpt, defaultDocProvOpt) { Category = model.GetCategory("DMS"), SubCategory = model.GetSubCategory("DMS", "General") }; newOpt.IsEnabled = ShouldOptionBeEnabled(newOpt, model.AppModel.IsAdmin); model.AddOption(newOpt); } } }
internal void UpdateInternalSubCategory(MainViewModel model, UIOptionCategoryType category, UIOptionSubCategoryType internalSubCategory) { var shellCategory = model.GetCategory(category.Name) ?? BuildShellCategory(category); shellCategory.Model = model; ProcessInternalOptions(model, internalSubCategory); return; }
private void ProcessCategory(MainViewModel model, Dictionary<string, AreaOption> areas, UIOptionCategoryType category) { var shellCategory = model.GetCategory(category.Name) ?? BuildShellCategory(category); shellCategory.Model = model; foreach (var subCategory in category.SubCategories) { if (subCategory.Name == "Internal") { ProcessInternalOptions(model, subCategory); return; } ProcessSubCategory(model, areas, shellCategory, subCategory); } }