public static EventReceiverDefinition RegisterEventReceiver(List list, string name, string url, EventReceiverType eventReceiverType, EventReceiverSynchronization synchronization, bool force, ClientContext clientContext) { clientContext.Load(list.EventReceivers); clientContext.ExecuteQuery(); bool receiverExists = false; foreach (var receiver in list.EventReceivers) { if (receiver.ReceiverName == name) { receiverExists = true; if (force) { receiver.DeleteObject(); clientContext.ExecuteQuery(); receiverExists = false; } } } EventReceiverDefinition def = null; if (!receiverExists) { EventReceiverDefinitionCreationInformation receiver = new EventReceiverDefinitionCreationInformation(); receiver.EventType = eventReceiverType; receiver.ReceiverUrl = url; receiver.ReceiverName = name; receiver.Synchronization = synchronization; def = list.EventReceivers.Add(receiver); clientContext.Load(def); clientContext.ExecuteQuery(); } return def; }
/// <summary> /// Registers a remote event receiver /// </summary> /// <param name="web">The web to process</param> /// <param name="name">The name of the event receiver (needs to be unique among the event receivers registered on this list)</param> /// <param name="url">The URL of the remote WCF service that handles the event</param> /// <param name="eventReceiverType"></param> /// <param name="synchronization"></param> /// <param name="sequenceNumber"></param> /// <param name="force">If True any event already registered with the same name will be removed first.</param> /// <returns>Returns an EventReceiverDefinition if succeeded. Returns null if failed.</returns> public static EventReceiverDefinition AddRemoteEventReceiver(this Web web, string name, string url, EventReceiverType eventReceiverType, EventReceiverSynchronization synchronization, int sequenceNumber, bool force) { var query = from receiver in web.EventReceivers where receiver.ReceiverName == name select receiver; var receivers = web.Context.LoadQuery(query); web.Context.ExecuteQueryRetry(); var receiverExists = receivers.Any(); if (receiverExists && force) { var receiver = receivers.FirstOrDefault(); receiver.DeleteObject(); web.Context.ExecuteQueryRetry(); receiverExists = false; } EventReceiverDefinition def = null; if (!receiverExists) { EventReceiverDefinitionCreationInformation receiver = new EventReceiverDefinitionCreationInformation(); receiver.EventType = eventReceiverType; receiver.ReceiverUrl = url; receiver.ReceiverName = name; receiver.SequenceNumber = sequenceNumber; receiver.Synchronization = synchronization; def = web.EventReceivers.Add(receiver); web.Context.Load(def); web.Context.ExecuteQueryRetry(); } return def; }
protected override bool InitOnePropertyFromJson(string peekedName, JsonReader reader) { bool flag = base.InitOnePropertyFromJson(peekedName, reader); if (flag) { return(flag); } switch (peekedName) { case "ReceiverAssembly": flag = true; reader.ReadName(); this.m_receiverAssembly = reader.ReadString(); break; case "ReceiverClass": flag = true; reader.ReadName(); this.m_receiverClass = reader.ReadString(); break; case "ReceiverName": flag = true; reader.ReadName(); this.m_receiverName = reader.ReadString(); break; case "SequenceNumber": flag = true; reader.ReadName(); this.m_sequenceNumber = reader.ReadInt32(); break; case "Synchronization": flag = true; reader.ReadName(); this.m_synchronization = reader.ReadEnum <EventReceiverSynchronization>(); break; case "EventType": flag = true; reader.ReadName(); this.m_eventType = reader.ReadEnum <EventReceiverType>(); break; case "ReceiverUrl": flag = true; reader.ReadName(); this.m_receiverUrl = reader.ReadString(); break; } return(flag); }
/// <summary> /// Creates a Remote Event Receiver /// </summary> /// <param name="receiverName">The name of the remote event receiver</param> /// <param name="type"><see cref="Microsoft.SharePoint.Client.EventReceiverType"/></param> /// <returns><see cref="Microsoft.SharePoint.Client.EventReceiverDefinitionRemoCreationInformation"/></returns> public static EventReceiverDefinitionCreationInformation CreateEventReciever(string receiverName, EventReceiverType type) { EventReceiverDefinitionCreationInformation _rer = new EventReceiverDefinitionCreationInformation(); _rer.EventType = type; _rer.ReceiverName = receiverName; _rer.ReceiverClass = "ECM.AutoTaggingWeb.Services.AutoTaggingService"; _rer.ReceiverUrl = "https://amsecm.azurewebsites.net/Services/AutoTaggingService.svc"; _rer.Synchronization = EventReceiverSynchronization.Synchronous; return _rer; }
/// <summary> /// Register the remote event receiver /// </summary> /// <param name="clientContext"></param> /// <param name="list"></param> /// <param name="name"></param> /// <param name="serviceUrl"></param> /// <param name="eventType"></param> /// <param name="sequence"></param> private void RegisterEventReceiver(ClientContext clientContext, List list, string name, string serviceUrl, EventReceiverType eventType, int sequence) { EventReceiverDefinitionCreationInformation newEventReceiver = new EventReceiverDefinitionCreationInformation() { EventType = eventType, ReceiverName = name, ReceiverUrl = serviceUrl, SequenceNumber = sequence }; list.EventReceivers.Add(newEventReceiver); clientContext.ExecuteQuery(); }
private static void AddEventReceiverToList(ClientContext clientContext, string listTitle, EventReceiverType eventType) { var list = clientContext.Web.Lists.GetByTitle(listTitle); var requestProperty = (HttpRequestMessageProperty)OperationContext.Current.IncomingMessageProperties[HttpRequestMessageProperty.Name]; var appWebUrl = "https://" + requestProperty.Headers[HttpRequestHeader.Host]; var receiverName = listTitle + "_" + eventType.ToString(); var eventReceiver = new EventReceiverDefinitionCreationInformation(); eventReceiver.EventType = eventType; eventReceiver.ReceiverName = receiverName; eventReceiver.ReceiverClass = receiverName; eventReceiver.ReceiverUrl = appWebUrl + "/Services/" + receiverName + ".svc"; eventReceiver.SequenceNumber = 10000; list.EventReceivers.Add(eventReceiver); clientContext.ExecuteQuery(); TraceHelper.RemoteLog("RER attached: " + receiverName); }
public static bool IsRemoteEventRegistered(ClientContext clientContext, EventReceiverType type) { var result = false; if (null == clientContext) { throw new ArgumentNullException("clientContext"); } try { // Get the list Logger.Logger.LogInfo("Checking if remote events registered", () => { var listName = GetProperty(clientContext, Constants.LISTNAME_PROPERTY) as string; if (String.IsNullOrEmpty(listName)) { return; } var srcList = clientContext.Web.Lists.GetByTitle(listName); clientContext.Load(clientContext.Web); clientContext.ExecuteQuery(); // Iterate all event receivers. clientContext.Load(srcList.EventReceivers); clientContext.ExecuteQuery(); // ReSharper disable once LoopCanBeConvertedToQuery foreach (var er in srcList.EventReceivers) { if (er.ReceiverName == Constants.LISTEVTRCVR_NAME && er.EventType == type) { result = true; break; } } }); return(result); } catch (Exception ex) { Debug.WriteLine(ex.ToString()); Logger.Logger.LogError(ex.ToString()); } return(false); }
public static void AddListItemRemoteEventReceiver(ClientContext context, string listName, EventReceiverType eventType, EventReceiverSynchronization synchronization, string receiverName, string receiverUrl, int sequence, string receiverAssemblyName = "", string receiverClassName = "") { var list = context.Web.Lists.GetByTitle(listName); context.Load(list); var eventReceivers = list.EventReceivers; context.Load(eventReceivers); context.ExecuteQuery(); var newRER = new EventReceiverDefinitionCreationInformation(); newRER.EventType = eventType; newRER.ReceiverName = receiverName; newRER.ReceiverClass = receiverClassName; newRER.ReceiverAssembly = receiverAssemblyName; newRER.ReceiverUrl = receiverUrl; newRER.Synchronization = synchronization; newRER.SequenceNumber = sequence; list.EventReceivers.Add(newRER); list.Update(); context.ExecuteQuery(); }
public void Bind(ClientContext clientContext, string listName, string eventRecieverName, string remoteUrl, int sequencyId, EventReceiverType eventType) { try { List olist = clientContext.Web.Lists.GetByTitle(listName); clientContext.Load(olist, o => o.EventReceivers); clientContext.ExecuteQuery(); bool isReRExsist = false; foreach (var receiver in olist.EventReceivers) { if (receiver.ReceiverName == eventRecieverName) { isReRExsist = true; break; } } if (!isReRExsist) { EventReceiverDefinitionCreationInformation eventReDefCreation = new EventReceiverDefinitionCreationInformation() { EventType = eventType, ReceiverAssembly = Assembly.GetExecutingAssembly().FullName, ReceiverName = eventRecieverName, ReceiverClass = eventRecieverName, ReceiverUrl = remoteUrl, SequenceNumber = sequencyId }; olist.EventReceivers.Add(eventReDefCreation); clientContext.ExecuteQuery(); } } catch (Exception ex) { } }
public SPOEventReceiverDefinition AddEventReceiver( EventReceiverType eventType, string receiverAssembly, string receiverClass, string receiverName, string receiverUrl, int sequenceNumber, EventReceiverSynchronization synchronization) { EventReceiverDefinitionCreationInformation erdci = new EventReceiverDefinitionCreationInformation { EventType = eventType, ReceiverAssembly = receiverAssembly, ReceiverClass = receiverClass, ReceiverName = receiverName, ReceiverUrl = receiverUrl, SequenceNumber = sequenceNumber, Synchronization = synchronization }; return(AddEventReceiver(erdci)); }
public static bool IsRemoteEventRegistered(ClientContext clientContext, EventReceiverType type) { var result = false; if (null == clientContext) { throw new ArgumentNullException("clientContext"); } try { // Get the list Logger.Logger.LogInfo("Checking if remote events registered", () => { var srcList = clientContext.Web.Lists.GetByTitle(LISTNAME); clientContext.Load(clientContext.Web); clientContext.ExecuteQuery(); // Iterate all event receivers. clientContext.Load(srcList.EventReceivers); clientContext.ExecuteQuery(); foreach (var er in srcList.EventReceivers) { if (0 == string.Compare(er.ReceiverName, RERNAME, true, CultureInfo.CurrentCulture) && er.EventType == type) { result = true; break; } } }); return(result); } catch (Exception ex) { Debug.WriteLine(ex.ToString()); Logger.Logger.LogError(ex.ToString()); } return(false); }
public static EventReceiverDefinitionCreationInformation CreateEventReciever(string receiverName, EventReceiverType type) { EventReceiverDefinitionCreationInformation _rer = new EventReceiverDefinitionCreationInformation(); _rer.EventType = type; _rer.ReceiverName = receiverName; _rer.ReceiverClass = "ECM.AutoTaggingWeb.Services.AutoTaggingService"; _rer.ReceiverUrl = "https://localhost:44382/Services/AppEventReceiver.svc"; _rer.Synchronization = EventReceiverSynchronization.Synchronous; return(_rer); }
/// <summary> /// Registers a remote event receiver /// </summary> /// <param name="site">The site collection to process</param> /// <param name="name">The name of the event receiver (needs to be unique among the event receivers registered on this site)</param> /// <param name="url">The URL of the remote WCF service that handles the event</param> /// <param name="eventReceiverType"></param> /// <param name="synchronization"></param> /// <param name="force">If True any event already registered with the same name will be removed first.</param> /// <returns>Returns an EventReceiverDefinition if succeeded. Returns null if failed.</returns> public static EventReceiverDefinition AddRemoteEventReceiver(this Site site, string name, string url, EventReceiverType eventReceiverType, EventReceiverSynchronization synchronization, bool force) { return(site.AddRemoteEventReceiver(name, url, eventReceiverType, synchronization, 1000, force)); }
private void AttachEventHandler(string handlerEndpoint, Web web, string name, EventReceiverType receiverType, ClientContext clientContext) { clientContext.Load(web, w => w.EventReceivers.Include(e => e.ReceiverName)); clientContext.ExecuteQueryRetry(); var handlersToDelete = new List <EventReceiverDefinition>(); foreach (var eventReciever in web.EventReceivers) { if (eventReciever.ReceiverName == name) { handlersToDelete.Add(eventReciever); } } if (handlersToDelete.Count > 0) { foreach (var eventReceiverDefinition in handlersToDelete) { eventReceiverDefinition.DeleteObject(); } clientContext.ExecuteQueryRetry(); } var eventReceiver = new EventReceiverDefinitionCreationInformation { EventType = receiverType, ReceiverName = name, ReceiverUrl = handlerEndpoint, SequenceNumber = 10000, Synchronization = EventReceiverSynchronization.DefaultSynchronization }; web.EventReceivers.Add(eventReceiver); OnNotify(ProvisioningNotificationLevels.Verbose, "Attaching remote event handler to web | " + name); }
private static EventReceiverDefinitionCreationInformation CreateECMRecordEventReceiverDefinition(EventReceiverType eventType, int sequenceNumber, int sharePointVersion) { return new EventReceiverDefinitionCreationInformation() { EventType = eventType, ReceiverAssembly = String.Format("Microsoft.Office.Policy, Version={0}.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c", sharePointVersion), ReceiverClass = "Microsoft.Office.RecordsManagement.Internal.HoldEventReceiver", ReceiverName = "ECM_RecordEventReceiver", ReceiverUrl = "", SequenceNumber = sequenceNumber, Synchronization = EventReceiverSynchronization.Synchronous }; }
public static EventReceiverDefinition RegisterRemoteEventReceiver(this Web web, string name, string url, EventReceiverType eventReceiverType, EventReceiverSynchronization synchronization, bool force) { return(web.AddRemoteEventReceiver(name, url, eventReceiverType, synchronization, force)); }
public SPOEventReceiverDefinition AddEventReceiver( EventReceiverType eventType, string receiverAssembly, string receiverClass, string receiverName, string receiverUrl, int sequenceNumber, EventReceiverSynchronization synchronization) { EventReceiverDefinitionCreationInformation erdci = new EventReceiverDefinitionCreationInformation { EventType = eventType, ReceiverAssembly = receiverAssembly, ReceiverClass = receiverClass, ReceiverName = receiverName, ReceiverUrl = receiverUrl, SequenceNumber = sequenceNumber, Synchronization = synchronization }; return AddEventReceiver(erdci); }
public static EventReceiverDefinition RegisterRemoteEventReceiver(this List list, string name, string url, EventReceiverType eventReceiverType, EventReceiverSynchronization synchronization, bool force) { return list.AddRemoteEventReceiver(name, url, eventReceiverType, synchronization, force); }
private static EventReceiverDefinitionCreationInformation CreateECMRecordEventReceiverDefinition(EventReceiverType eventType, int sequenceNumber, int sharePointVersion) { return(new EventReceiverDefinitionCreationInformation() { EventType = eventType, ReceiverAssembly = $"Microsoft.Office.Policy, Version={sharePointVersion}.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c", ReceiverClass = "Microsoft.Office.RecordsManagement.Internal.HoldEventReceiver", ReceiverName = "ECM_RecordEventReceiver", ReceiverUrl = "", SequenceNumber = sequenceNumber, Synchronization = EventReceiverSynchronization.Synchronous }); }
/// <summary> /// Registers a remote event receiver /// </summary> /// <param name="web">The web to process</param> /// <param name="name">The name of the event receiver (needs to be unique among the event receivers registered on this list)</param> /// <param name="url">The URL of the remote WCF service that handles the event</param> /// <param name="eventReceiverType"></param> /// <param name="synchronization"></param> /// <param name="force">If True any event already registered with the same name will be removed first.</param> /// <returns>Returns an EventReceiverDefinition if succeeded. Returns null if failed.</returns> public static EventReceiverDefinition AddRemoteEventReceiver(this Web web, string name, string url, EventReceiverType eventReceiverType, EventReceiverSynchronization synchronization, bool force) { return web.AddRemoteEventReceiver(name, url, eventReceiverType, synchronization, 1000, force); }
/// <summary> /// Registers a remote event receiver /// </summary> /// <param name="web">The web to process</param> /// <param name="name">The name of the event receiver (needs to be unique among the event receivers registered on this list)</param> /// <param name="url">The URL of the remote WCF service that handles the event</param> /// <param name="eventReceiverType"></param> /// <param name="synchronization"></param> /// <param name="sequenceNumber"></param> /// <param name="force">If True any event already registered with the same name will be removed first.</param> /// <returns>Returns an EventReceiverDefinition if succeeded. Returns null if failed.</returns> public static EventReceiverDefinition AddRemoteEventReceiver(this Web web, string name, string url, EventReceiverType eventReceiverType, EventReceiverSynchronization synchronization, int sequenceNumber, bool force) { var query = from receiver in web.EventReceivers where receiver.ReceiverName == name select receiver; web.Context.LoadQuery(query); web.Context.ExecuteQueryRetry(); var receiverExists = query.Any(); if (receiverExists && force) { var receiver = query.FirstOrDefault(); receiver.DeleteObject(); web.Context.ExecuteQueryRetry(); receiverExists = false; } EventReceiverDefinition def = null; if (!receiverExists) { EventReceiverDefinitionCreationInformation receiver = new EventReceiverDefinitionCreationInformation(); receiver.EventType = eventReceiverType; receiver.ReceiverUrl = url; receiver.ReceiverName = name; receiver.SequenceNumber = sequenceNumber; receiver.Synchronization = synchronization; def = web.EventReceivers.Add(receiver); web.Context.Load(def); web.Context.ExecuteQueryRetry(); } return(def); }
private void AttachEventHandler(string handlerEndpoint, List list, string name, EventReceiverType receiverType, ClientContext clientContext) { clientContext.Load(list, l => l.Title, l => l.EventReceivers.Include(e => e.ReceiverName)); clientContext.ExecuteQueryRetry(); foreach (var eventReciever in list.EventReceivers) { if (eventReciever.ReceiverName == name) { return; } } var eventReceiver = new EventReceiverDefinitionCreationInformation { EventType = receiverType, ReceiverName = name, ReceiverUrl = handlerEndpoint, SequenceNumber = 10000, Synchronization = EventReceiverSynchronization.Asynchronous }; list.EventReceivers.Add(eventReceiver); OnNotify(ProvisioningNotificationLevels.Verbose, "Attaching remote event handler to list " + list.Title + " | " + name); }