예제 #1
0
        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()));
        }
예제 #2
0
        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()));
        }