public async Task ExecuteAsync(RecipeExecutionContext context) { if (!String.Equals(context.Name, "custom-settings", StringComparison.OrdinalIgnoreCase)) { return; } var model = context.Step; var customSettingsList = (from property in model.Properties() where property.Name != "name" select property).ToArray(); var customSettingsNames = (from customSettings in customSettingsList select customSettings.Name).ToArray(); var customSettingsTypes = _customSettingsService.GetSettingsTypes(customSettingsNames).ToArray(); foreach (var customSettingsType in customSettingsTypes) { if (!await _customSettingsService.CanUserCreateSettingsAsync(customSettingsType)) { return; } } var siteSettings = await _siteService.LoadSiteSettingsAsync(); foreach (var customSettings in customSettingsList) { siteSettings.Properties[customSettings.Name] = customSettings.Value; } await _siteService.UpdateSiteSettingsAsync(siteSettings); }
public async Task ProcessDeploymentStepAsync(DeploymentStep step, DeploymentPlanResult result) { var customSettingsStep = step as CustomSettingsDeploymentStep; if (customSettingsStep == null) { return; } var settingsList = new List <JProperty> { new JProperty("name", "custom-settings") }; var settingsTypes = customSettingsStep.IncludeAll ? _customSettingsService.GetAllSettingsTypes().ToArray() : _customSettingsService.GetSettingsTypes(customSettingsStep.SettingsTypeNames).ToArray(); foreach (var settingsType in settingsTypes) { if (!await _customSettingsService.CanUserCreateSettingsAsync(settingsType)) { return; } } foreach (var settingsType in settingsTypes) { var settings = await _customSettingsService.GetSettingsAsync(settingsType); settingsList.Add(new JProperty(settings.ContentType, JObject.FromObject(settings))); } // Adding custom settings result.Steps.Add(new JObject(settingsList.ToArray())); }
public override async Task <IDisplayResult> EditAsync(ISite site, BuildEditorContext context) { var contentTypeDefinition = _customSettingsService.GetSettingsType(context.GroupId); if (contentTypeDefinition == null) { return(null); } if (!await _customSettingsService.CanUserCreateSettingsAsync(contentTypeDefinition)) { return(null); } var isNew = false; var contentItem = await _customSettingsService.GetSettingsAsync(site, contentTypeDefinition, () => isNew = true); var shape = Initialize <CustomSettingsEditViewModel>("CustomSettings", async ctx => { ctx.Editor = await _contentItemDisplayManager.BuildEditorAsync(contentItem, context.Updater, isNew); }).Location("Content:3").OnGroup(contentTypeDefinition.Name); return(shape); }
public async Task ProcessDeploymentStepAsync(DeploymentStep step, DeploymentPlanResult result) { var customSettingsStep = step as CustomSettingsDeploymentStep; if (customSettingsStep == null) { return; } var settingsList = new List <JProperty> { new JProperty("name", "custom-settings") }; var settingsTypes = customSettingsStep.IncludeAll ? _customSettingsService.GetAllSettingsTypes().ToArray() : _customSettingsService.GetSettingsTypes(customSettingsStep.SettingsTypeNames).ToArray(); var settingsPermissionsTasks = (from settingsType in settingsTypes select _customSettingsService.CanUserCreateSettingsAsync(settingsType)).ToArray(); await Task.WhenAll(settingsPermissionsTasks); if (settingsPermissionsTasks.Any(t => !t.Result)) { return; } var settingsTasks = (from settingsType in settingsTypes select _customSettingsService.GetSettingsAsync(settingsType)).ToArray(); await Task.WhenAll(settingsTasks); settingsList.AddRange( from settingsTask in settingsTasks let settings = settingsTask.Result select new JProperty(settings.ContentType, JObject.FromObject(settings))); // Adding custom settings result.Steps.Add(new JObject(settingsList.ToArray())); }