private void DeployDefinition(object modelHost, ListModelHost siteModelHost, InformationRightsManagementSettingsDefinition definition)
        {
            var currentSettings = GetCurrentInformationRightsManagementSettings(siteModelHost.HostList);

            InvokeOnModelEvent(this, new ModelEventArgs
            {
                CurrentModelNode = null,
                Model = null,
                EventType = ModelEventType.OnProvisioning,
                Object = currentSettings,
                ObjectType = typeof(InformationRightsManagementSettings),
                ObjectDefinition = definition,
                ModelHost = modelHost
            });

            MapInformationRightsManagementSettings(currentSettings, definition);

            InvokeOnModelEvent(this, new ModelEventArgs
            {
                CurrentModelNode = null,
                Model = null,
                EventType = ModelEventType.OnProvisioned,
                Object = currentSettings,
                ObjectType = typeof(InformationRightsManagementSettings),
                ObjectDefinition = definition,
                ModelHost = modelHost
            });

            currentSettings.Update();
        }
        private void MapInformationRightsManagementSettings(InformationRightsManagementSettings currentSettings, InformationRightsManagementSettingsDefinition definition)
        {
            currentSettings.AllowPrint = definition.AllowPrint;
            currentSettings.AllowScript = definition.AllowScript;
            currentSettings.AllowWriteCopy = definition.AllowWriteCopy;

            currentSettings.DisableDocumentBrowserView = definition.DisableDocumentBrowserView;
            currentSettings.DocumentAccessExpireDays = definition.DocumentAccessExpireDays;
            currentSettings.DocumentLibraryProtectionExpireDate = definition.DocumentLibraryProtectionExpireDate;

            currentSettings.EnableDocumentAccessExpire = definition.EnableDocumentAccessExpire;
            currentSettings.EnableDocumentBrowserPublishingView = definition.EnableDocumentBrowserPublishingView;
            currentSettings.EnableGroupProtection = definition.EnableGroupProtection;
            currentSettings.EnableLicenseCacheExpire = definition.EnableLicenseCacheExpire;

            currentSettings.GroupName = definition.GroupName;
            currentSettings.LicenseCacheExpireDays = definition.LicenseCacheExpireDays;

            currentSettings.PolicyDescription = definition.PolicyDescription;
            currentSettings.PolicyTitle = definition.PolicyTitle;
        }
 public static ModelNode AddInformationRightsManagementSettings(this ModelNode model, InformationRightsManagementSettingsDefinition definition, Action<ModelNode> action)
 {
     return model.AddDefinitionNode(definition, action);
 }
 public static ModelNode AddInformationRightsManagementSettings(this ModelNode model, InformationRightsManagementSettingsDefinition definition)
 {
     return AddInformationRightsManagementSettings(model, definition, null);
 }