示例#1
0
        protected override void RunJobInternal(ProvisioningJob job)
        {
            RefreshSingleSiteJob updateJob = job as RefreshSingleSiteJob;

            if (updateJob == null)
            {
                throw new ArgumentException("Invalid job type for RefreshSingleSiteJobHandler.");
            }

            UpdateTemplates(updateJob);
        }
示例#2
0
        private void UpdateTemplates(RefreshSingleSiteJob job)
        {
            using (var siteContext = PnPPartnerPackContextProvider.GetAppOnlyClientContext(job.TargetSiteUrl))
            {
                // Get a reference to the target web
                var targetWeb = siteContext.Site.RootWeb;

                // Update the root web of the site collection
                RefreshSitesJobHandler.UpdateTemplateOnWeb(targetWeb);
            }
        }
示例#3
0
        public ActionResult UpdateSiteTemplate(UpdateSiteTemplateViewModel model)
        {
            AntiForgery.Validate();
            if (ModelState.IsValid)
            {
                // Prepare the Job to update the Provisioning Template
                RefreshSingleSiteJob job = new RefreshSingleSiteJob();
                job.TargetSiteUrl = model.TargetSiteUrl;

                // Prepare all the other information about the Provisioning Job
                job.Owner = ClaimsPrincipal.Current.Identity.Name;
                job.Title = $"Update Provisioning Template for {model.TargetSiteUrl}";

                model.JobId = ProvisioningRepositoryFactory.Current.EnqueueProvisioningJob(job);
            }

            return(View(model));
        }