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(); }