Example #1
0
        private void DeployEventReceiver(object modelHost, EventReceiverDefinitionCollection eventReceivers,
                                         EventReceiverDefinition definition)
        {
            var context = eventReceivers.Context;

            var existingReceiver = FindEventReceiverDefinition(eventReceivers, definition);

            InvokeOnModelEvent(this, new ModelEventArgs
            {
                CurrentModelNode = null,
                Model            = null,
                EventType        = ModelEventType.OnProvisioning,
                Object           = existingReceiver,
                ObjectType       = typeof(Microsoft.SharePoint.Client.EventReceiverDefinition),
                ObjectDefinition = definition,
                ModelHost        = modelHost
            });

            bool isNew = false;

            if (existingReceiver == null)
            {
                isNew = true;

                existingReceiver = eventReceivers.Add(new EventReceiverDefinitionCreationInformation
                {
                    ReceiverName     = definition.Name,
                    EventType        = (EventReceiverType)Enum.Parse(typeof(EventReceiverType), definition.Type),
                    Synchronization  = (EventReceiverSynchronization)Enum.Parse(typeof(EventReceiverSynchronization), definition.Synchronization),
                    ReceiverAssembly = definition.Assembly,
                    ReceiverClass    = definition.Class,
                    SequenceNumber   = definition.SequenceNumber,
                });
            }

            MapEventReceiverProperties(definition, existingReceiver, isNew);

            InvokeOnModelEvent(this, new ModelEventArgs
            {
                CurrentModelNode = null,
                Model            = null,
                EventType        = ModelEventType.OnProvisioned,
                Object           = existingReceiver,
                ObjectType       = typeof(Microsoft.SharePoint.Client.EventReceiverDefinition),
                ObjectDefinition = definition,
                ModelHost        = modelHost
            });

            existingReceiver.Update();
            context.ExecuteQuery();
        }
        private void DeployEventReceiver(object modelHost, EventReceiverDefinitionCollection eventReceivers,
            EventReceiverDefinition definition)
        {
            var context = eventReceivers.Context;

            var existingReceiver = FindEventReceiverDefinition(eventReceivers, definition);

            InvokeOnModelEvent(this, new ModelEventArgs
            {
                CurrentModelNode = null,
                Model = null,
                EventType = ModelEventType.OnProvisioning,
                Object = existingReceiver,
                ObjectType = typeof(Microsoft.SharePoint.Client.EventReceiverDefinition),
                ObjectDefinition = definition,
                ModelHost = modelHost
            });

            bool isNew = false;

            if (existingReceiver == null)
            {
                isNew = true;

                existingReceiver = eventReceivers.Add(new EventReceiverDefinitionCreationInformation
                {
                    ReceiverName = definition.Name,
                    EventType = (EventReceiverType)Enum.Parse(typeof(EventReceiverType), definition.Type),
                    Synchronization = (EventReceiverSynchronization)Enum.Parse(typeof(EventReceiverSynchronization), definition.Synchronization),
                    ReceiverAssembly = definition.Assembly,
                    ReceiverClass = definition.Class,
                    SequenceNumber = definition.SequenceNumber,
                });
            }

            MapEventReceiverProperties(definition, existingReceiver, isNew);

            InvokeOnModelEvent(this, new ModelEventArgs
            {
                CurrentModelNode = null,
                Model = null,
                EventType = ModelEventType.OnProvisioned,
                Object = existingReceiver,
                ObjectType = typeof(Microsoft.SharePoint.Client.EventReceiverDefinition),
                ObjectDefinition = definition,
                ModelHost = modelHost
            });

            existingReceiver.Update();
            context.ExecuteQuery();
        }