public async Task ProcessDeploymentStepAsync(DeploymentStep deploymentStep, DeploymentPlanResult result)
        {
            if (!(deploymentStep is DeploymentPlanDeploymentStep deploymentPlanStep))
            {
                return;
            }

            if (!await _deploymentPlanService.DoesUserHavePermissionsAsync())
            {
                return;
            }

            var deploymentPlans = deploymentPlanStep.IncludeAll
                ? (await _deploymentPlanService.GetAllDeploymentPlansAsync()).ToArray()
                : (await _deploymentPlanService.GetDeploymentPlansAsync(deploymentPlanStep.DeploymentPlanNames)).ToArray();

            var plans = (from plan in deploymentPlans
                         select new
            {
                plan.Name,
                Steps = (from step in plan.DeploymentSteps
                         select new
                {
                    Type = step.GetType().Name,
                    Step = step
                }).ToArray()
            }).ToArray();

            // Adding deployment plans
            result.Steps.Add(new JObject(
                                 new JProperty("name", "deployment"),
                                 new JProperty("Plans", JArray.FromObject(plans))
                                 ));
        }
Exemple #2
0
        public async Task <int> CreateAsync()
        {
            await _recipeMigrator.ExecuteAsync("exportcontenttodeploymenttarget.recipe.json", this);

            var deploymentPlans = await _deploymentPlanService.GetAllDeploymentPlansAsync();

            var exportContentToDeploymentTargetPlan = deploymentPlans.FirstOrDefault(x => x.DeploymentSteps.Any(x => x.Name == nameof(ExportContentToDeploymentTargetDeploymentStep)));

            if (exportContentToDeploymentTargetPlan != null)
            {
                var siteSettings = await _siteService.LoadSiteSettingsAsync();

                siteSettings.Alter <ExportContentToDeploymentTargetSettings>(nameof(ExportContentToDeploymentTargetSettings), aspect => aspect.ExportContentToDeploymentTargetPlanId = exportContentToDeploymentTargetPlan.Id);

                await _siteService.UpdateSiteSettingsAsync(siteSettings);
            }

            return(1);
        }