コード例 #1
0
        public void Execute(Task task)
        {
            Debug.WriteLine("Fujitsu.AFC.Provisioning.CaseSiteProvisioning.cs -> Processing Started.");
            var prfMonMethod = new PrfMon();

            var maximumNumberOfUnallocatedSites   = _parameterService.GetParameterByNameAndCache <int>(ParameterNames.SiteProvisionerTotalUnallocatedSitesMaximum);
            var maximumNumberOfSitesPerCollection = _parameterService.GetParameterByNameAndCache <int>(ParameterNames.SiteProvisionerSitesPerSiteCollection);
            var totalNumberOfUnallocatedSites     = _provisioningService.GetNumberOfUnallocatedSites();

            if (totalNumberOfUnallocatedSites < maximumNumberOfUnallocatedSites)
            {
                var currentSiteCollectionId = _provisioningService.GetSiteCollectionId();

                while (totalNumberOfUnallocatedSites < maximumNumberOfUnallocatedSites)
                {
                    var numberOfSitesProvisionedWithinSiteCollection = _provisioningService.GetNumberOfProvisionedSitesWithinCollection(currentSiteCollectionId);
                    if (numberOfSitesProvisionedWithinSiteCollection == 0)
                    {
                        currentSiteCollectionId = _provisioningService.ProvisionSiteCollection(currentSiteCollectionId);
                        _provisioningService.ConfigureSiteCollection(currentSiteCollectionId);
                        _provisioningService.CreateSiteAudit(currentSiteCollectionId, task);
                    }

                    _provisioningService.ProvisionSite(currentSiteCollectionId, task);

                    numberOfSitesProvisionedWithinSiteCollection++;
                    totalNumberOfUnallocatedSites++;

                    if (numberOfSitesProvisionedWithinSiteCollection >= maximumNumberOfSitesPerCollection && totalNumberOfUnallocatedSites < maximumNumberOfUnallocatedSites)
                    {
                        currentSiteCollectionId = _provisioningService.GetSiteCollectionId();
                    }
                }
            }
            Debug.WriteLine("Fujitsu.AFC.Provisioning.CaseSiteProvisioning.cs -> Completed Processing. Duration: {0:0.000}s", prfMonMethod.Stop());
        }