コード例 #1
0
        public void ConfigureSiteCollection(int siteCollectionId)
        {
            Debug.WriteLine("Fujitsu.AFC.Services.ProvisioningService.cs -> Processing ConfigureSiteCollection.");
            var prfMonMethod = new PrfMon();

            var siteCollectionName = _provisionedSiteCollectionRepository.Single(x => x.Id == siteCollectionId).Name;

            using (var context = new ClientContext(SiteCollectionUrl(siteCollectionName)))
            {
                context.Credentials = Credentials;
                var searchCentreUrl            = _parameterService.GetParameterByNameAndCache <string>(ParameterNames.SearchCentreUrl);
                var searchCentreResultsPageUrl = _parameterService.GetParameterByNameAndCache <string>(ParameterNames.SearchCentreResultsPageUrl);
                var model = new SearchResultModel
                {
                    Inherit            = false,
                    ResultsPageAddress = searchCentreResultsPageUrl,
                    ShowNavigation     = false
                };
                var jsonSearchSettings = JsonConvert.SerializeObject(model);
                context.ActivateFeature(InPlaceRecordManagementTypes.InplaceRecordsManagementFeatureId);
                context.SetPropertyBagValue(InPlaceRecordManagementTypes.EcmSiteRecordDeclarationDefault, true.ToString());
                context.SetPropertyBagValue(InPlaceRecordManagementTypes.EcmSiteRecordRestrictions, $"{EcmSiteRecordRestrictions.BlockDelete}, {EcmSiteRecordRestrictions.BlockEdit}");
                context.SetPropertyBagValue(InPlaceRecordManagementTypes.EcmSiteRecordDeclarationBy, EcmRecordDeclarationBy.AllListContributors.ToString());
                context.SetPropertyBagValue(InPlaceRecordManagementTypes.EcmSiteRecordUndeclarationBy, EcmRecordDeclarationBy.OnlyAdmins.ToString());
                context.SetPropertyBagValue(SearchCentreKeyTypes.SearchCentreUrl, searchCentreUrl);
                context.SetPropertyBagValue(SearchCentreKeyTypes.SearchCentreSite, jsonSearchSettings);
                var site = context.Site;
                context.Load(site, s => s.Audit);
                context.ExecuteQuery();

                site.Audit.AuditFlags = AuditMaskType.All;
                site.Audit.Update();
                context.ExecuteQuery();
            }

            Debug.WriteLine("Fujitsu.AFC.Services.ProvisioningService.cs -> Completed Processing ConfigureSiteCollection. Duration: {0:0.000}s", prfMonMethod.Stop());
        }