private void DeployAuditSettings(object modelHost, AuditSettingsDefinition definition)
        {
            var auditObj = GetCurrentAuditObject(modelHost);

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

            if (definition.AuditFlags.Any())
            {
                var mask = SPAuditMaskType.None;

                foreach (var auditFlag in definition.AuditFlags)
                {
                    var flag = (SPAuditMaskType)Enum.Parse(typeof(SPAuditMaskType), auditFlag);
                    mask = mask | flag;
                }

                auditObj.AuditFlags = mask;
            }

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

            auditObj.Update();
        }
        public void CanDeploy_AuditSettings_ToList()
        {
            WithExpectedUnsupportedCSOMnO365RunnerExceptions(() =>
            {
                var siteModel = SPMeta2Model
                    .NewSiteModel(site =>
                    {
                        site.AddRandomAuditSetting();
                    });

                var listAuditSetting = new AuditSettingsDefinition();

                if (Rnd.Bool())
                {
                    listAuditSetting.AuditFlags = new Collection<string>
                {
                    BuiltInAuditMaskType.CheckIn,
                    BuiltInAuditMaskType.CheckOut,
                    BuiltInAuditMaskType.Copy,
                    BuiltInAuditMaskType.Move
                };
                }
                else
                {
                    listAuditSetting.AuditFlags = new Collection<string>
                {
                    BuiltInAuditMaskType.CheckIn,
                    BuiltInAuditMaskType.Copy,
                };
                }

                var webModel = SPMeta2Model
                    .NewWebModel(web =>
                    {
                        web.AddRandomList(list =>
                        {
                            list.AddAuditSettings(listAuditSetting);
                        });
                    });

                TestModels(new ModelNode[] { siteModel, webModel });

            });
        }
示例#3
0
 public static ModelNode AddAuditSettings(this ModelNode model, AuditSettingsDefinition definition, Action<ModelNode> action)
 {
     return model.AddDefinitionNode(definition, action);
 }
示例#4
0
 public static ModelNode AddAuditSettings(this ModelNode model, AuditSettingsDefinition definition)
 {
     return AddAuditSettings(model, definition, null);
 }