public static string DisplayEventReceivers(List list, string receiverName) { string eventReceivers = ""; ClientContext context = (ClientContext)list.Context; context.Load(list); context.ExecuteQuery(); EventReceiverDefinitionCollection erdc = list.EventReceivers; context.Load(erdc); context.ExecuteQuery(); List <EventReceiverDefinition> toDelete = new List <EventReceiverDefinition>(); foreach (EventReceiverDefinition erd in erdc) { if (erd.ReceiverName == receiverName) { toDelete.Add(erd); eventReceivers += "Name: " + erd.ReceiverName + " Class: " + erd.ReceiverClass + " Event Type:" + erd.EventType + " url:" + erd.ReceiverUrl + " Assembly:" + erd.ReceiverAssembly + "\n"; } } return(eventReceivers); }
public static void DeleteEventReceivers(List list, string receiverName) { ClientContext context = (ClientContext)list.Context; context.Load(list); context.ExecuteQuery(); EventReceiverDefinitionCollection erdc = list.EventReceivers; context.Load(erdc); context.ExecuteQuery(); List <EventReceiverDefinition> toDelete = new List <EventReceiverDefinition>(); foreach (EventReceiverDefinition erd in erdc) { if (erd.ReceiverName == receiverName) { toDelete.Add(erd); } } //Delete the remote event receiver from the list foreach (EventReceiverDefinition item in toDelete) { item.DeleteObject(); context.ExecuteQuery(); } }
private static void DeleteWebEventReceiver(string webUrl, string eventName, string assemblyName) { try { Logger.LogInfoMessage(String.Format("Deleting WEB Event Receiver [{0}] from web {1} ...", eventName, webUrl), true); using (ClientContext userContext = Helper.CreateAuthenticatedUserContext(Program.AdminDomain, Program.AdminUsername, Program.AdminPassword, webUrl)) { Web web = userContext.Web; EventReceiverDefinitionCollection receivers = web.EventReceivers; userContext.Load(web); userContext.Load(receivers); userContext.ExecuteQuery(); foreach (EventReceiverDefinition receiver in receivers) { if (receiver.ReceiverName.Equals(eventName, StringComparison.InvariantCultureIgnoreCase) && receiver.ReceiverAssembly.Equals(assemblyName, StringComparison.InvariantCultureIgnoreCase) ) { receiver.DeleteObject(); userContext.ExecuteQuery(); Logger.LogSuccessMessage(String.Format("Deleted WEB Event Receiver [{0}] from web {1}", eventName, webUrl), false); return; } } Logger.LogErrorMessage(String.Format("DeleteWebEventReceiver() failed for Event Receiver [{0}] on web {1}; Error=Event Receiver not Found.", eventName, webUrl), false); } } catch (Exception ex) { Logger.LogErrorMessage(String.Format("DeleteWebEventReceiver() failed for Event Receiver [{0}] on web {1}; Error={2}", eventName, webUrl, ex.Message), false); } }
public void UnBind(ClientContext clientContext, string listName, string eventRecieverName) { try { var list = clientContext.Web.Lists.GetByTitle(listName); clientContext.Load(list); clientContext.ExecuteQuery(); EventReceiverDefinitionCollection eventRColl = list.EventReceivers; clientContext.Load(eventRColl); clientContext.ExecuteQuery(); List <EventReceiverDefinition> toDelete = new List <EventReceiverDefinition>(); foreach (EventReceiverDefinition erdef in eventRColl) { if (erdef.ReceiverName == eventRecieverName) { toDelete.Add(erdef); } } //Delete the remote event receiver from the list, when the app gets uninstalled foreach (EventReceiverDefinition item in toDelete) { item.DeleteObject(); clientContext.ExecuteQuery(); } } catch (Exception ex) { } }
private static bool DeleteListEventReceiver(string webUrl, string hostId, string eventName, string assemblyName) { try { Logger.LogInfoMessage(String.Format("Deleting LIST Event Receiver [{0}] from list [{1}] on web {2} ...", eventName, hostId, webUrl), true); using (ClientContext userContext = Helper.CreateAuthenticatedUserContext(Program.AdminDomain, Program.AdminUsername, Program.AdminPassword, webUrl)) { Web web = userContext.Web; userContext.Load(web); userContext.ExecuteQuery(); //ListCollection lists = web.Lists; //userContext.Load(lists); Guid listId = new Guid(hostId); List list = web.Lists.GetById(listId); userContext.Load(list); userContext.ExecuteQuery(); if (list == null) { Logger.LogErrorMessage(String.Format("[DeleteMissingEventReceivers: DeleteListEventReceiver] failed for Event Receiver [{0}] on list [{1}] of web {2}; Error=List not Found.", eventName, hostId, webUrl), true); return(false); } EventReceiverDefinitionCollection receivers = list.EventReceivers; userContext.Load(receivers); userContext.ExecuteQuery(); foreach (EventReceiverDefinition receiver in receivers) { if (receiver.ReceiverName.Equals(eventName, StringComparison.InvariantCultureIgnoreCase) && receiver.ReceiverAssembly.Equals(assemblyName, StringComparison.InvariantCultureIgnoreCase) ) { receiver.DeleteObject(); userContext.ExecuteQuery(); Logger.LogSuccessMessage(String.Format("[DeleteMissingEventReceivers: DeleteListEventReceiver] Deleted LIST Event Receiver [{0}] from list [{1}] on web {2} and output file is present in the path: {3}", eventName, list.Title, webUrl, Environment.CurrentDirectory), true); return(true); } } Logger.LogErrorMessage(String.Format("[DeleteMissingEventReceivers: DeleteListEventReceiver] failed for Event Receiver [{0}] on list [{1}] of web {2}; Error=Event Receiver not Found.", eventName, list.Title, webUrl), true); } } catch (Exception ex) { if (ex.Message.ToLower().Contains("list does not exist")) { Logger.LogErrorMessage(String.Format("[DeleteMissingEventReceivers: DeleteListEventReceiver] failed for Event Receiver [{0}] on list [{1}] of web {2}; Error=List not Found.", eventName, hostId, webUrl), true); ExceptionCsv.WriteException(Constants.NotApplicable, Constants.NotApplicable, webUrl, "EventReceiver", ex.Message, ex.ToString(), "DeleteListEventReceiver", ex.GetType().ToString(), String.Format("DeleteListEventReceiver() failed for Event Receiver [{0}] on list [{1}] of web {2}; Error=List not Found.", eventName, hostId, webUrl)); return(false); } Logger.LogErrorMessage(String.Format("[DeleteMissingEventReceivers: DeleteListEventReceiver] failed for Event Receiver [{0}] on list [{1}] of web {2}; Error={3}", eventName, hostId, webUrl, ex.Message), true); ExceptionCsv.WriteException(Constants.NotApplicable, Constants.NotApplicable, webUrl, "EventReceiver", ex.Message, ex.ToString(), "DeleteListEventReceiver", ex.GetType().ToString(), String.Format("DeleteListEventReceiver() failed for Event Receiver [{0}] on list [{1}] of web {2}; Error={3}", eventName, hostId, webUrl, ex.Message)); } return(false); }
public SPRemoteEventResult ProcessEvent(SPRemoteEventProperties properties) { SPRemoteEventResult result = new SPRemoteEventResult(); if (properties.EventType == SPRemoteEventType.AppInstalled) { using (ClientContext clientContext = TokenHelper.CreateAppEventClientContext(properties, false)) { if (clientContext != null) { //Get reference to the host web list by itsname var documentsList = clientContext.Web.Lists.GetByTitle("firstlist"); clientContext.Load(documentsList); clientContext.ExecuteQuery(); string remoteUrl = "http://azurewebappname.azurewebsites.net/Services/RemoteEventReceiver1.svc"; //Create the remote event receiver definition EventReceiverDefinitionCreationInformation newEventReceiver = new EventReceiverDefinitionCreationInformation() { EventType = EventReceiverType.ItemAdded, ReceiverAssembly = Assembly.GetExecutingAssembly().FullName, ReceiverName = "RemoteEventReceiver1", ReceiverClass = "RemoteEventReceiver1", ReceiverUrl = remoteUrl, SequenceNumber = 15000 }; //Add the remote event receiver to the host web list documentsList.EventReceivers.Add(newEventReceiver); clientContext.ExecuteQuery(); } } } else if (properties.EventType == SPRemoteEventType.AppUninstalling) { using (ClientContext clientContext = TokenHelper.CreateAppEventClientContext(properties, false)) { var list = clientContext.Web.Lists.GetByTitle("firstlist"); clientContext.Load(list); clientContext.ExecuteQuery(); EventReceiverDefinitionCollection erdc = list.EventReceivers; clientContext.Load(erdc); clientContext.ExecuteQuery(); List <EventReceiverDefinition> toDelete = new List <EventReceiverDefinition>(); foreach (EventReceiverDefinition erd in erdc) { if (erd.ReceiverName == "RemoteEventReceiver1") { toDelete.Add(erd); } } //Delete the remote event receiver from the list, when the app gets uninstalled foreach (EventReceiverDefinition item in toDelete) { item.DeleteObject(); clientContext.ExecuteQuery(); } } } return(result); }
private static void DeleteListEventReceiver(string webUrl, string hostId, string eventName, string assemblyName) { try { Logger.LogInfoMessage(String.Format("Deleting LIST Event Receiver [{0}] from list [{1}] on web {2} ...", eventName, hostId, webUrl), true); using (ClientContext userContext = Helper.CreateAuthenticatedUserContext(Program.AdminDomain, Program.AdminUsername, Program.AdminPassword, webUrl)) { Web web = userContext.Web; userContext.Load(web); userContext.ExecuteQuery(); //ListCollection lists = web.Lists; //userContext.Load(lists); Guid listId = new Guid(hostId); List list = web.Lists.GetById(listId); userContext.Load(list); userContext.ExecuteQuery(); if (list == null) { Logger.LogErrorMessage(String.Format("DeleteListEventReceiver() failed for Event Receiver [{0}] on list [{1}] of web {2}; Error=List not Found.", eventName, hostId, webUrl), false); return; } EventReceiverDefinitionCollection receivers = list.EventReceivers; userContext.Load(receivers); userContext.ExecuteQuery(); foreach (EventReceiverDefinition receiver in receivers) { if (receiver.ReceiverName.Equals(eventName, StringComparison.InvariantCultureIgnoreCase) && receiver.ReceiverAssembly.Equals(assemblyName, StringComparison.InvariantCultureIgnoreCase) ) { receiver.DeleteObject(); userContext.ExecuteQuery(); Logger.LogSuccessMessage(String.Format("Deleted LIST Event Receiver [{0}] from list [{1}] on web {2}", eventName, list.Title, webUrl), false); return; } } Logger.LogErrorMessage(String.Format("DeleteListEventReceiver() failed for Event Receiver [{0}] on list [{1}] of web {2}; Error=Event Receiver not Found.", eventName, list.Title, webUrl), false); } } catch (Exception ex) { if (ex.Message.ToLower().Contains("list does not exist")) { Logger.LogErrorMessage(String.Format("DeleteListEventReceiver() failed for Event Receiver [{0}] on list [{1}] of web {2}; Error=List not Found.", eventName, hostId, webUrl), false); return; } Logger.LogErrorMessage(String.Format("DeleteListEventReceiver() failed for Event Receiver [{0}] on list [{1}] of web {2}; Error={3}", eventName, hostId, webUrl, ex.Message), false); } }
protected Microsoft.SharePoint.Client.EventReceiverDefinition FindEventReceiverDefinition(EventReceiverDefinitionCollection receivers, EventReceiverDefinition definition) { var receiverName = definition.Name.ToUpper(); receivers.Context.Load(receivers); receivers.Context.ExecuteQuery(); return receivers.OfType<Microsoft.SharePoint.Client.EventReceiverDefinition>() .FirstOrDefault(r => !string.IsNullOrEmpty(r.ReceiverName) && r.ReceiverName.ToUpper() == receiverName); }
private static void DeleteEventHandler(ClientContext ctx, EventReceiverDefinitionCollection events, string eventName) { var remoteEvent = events.Where(e => e.ReceiverName == eventName).FirstOrDefault(); if (remoteEvent != null) { remoteEvent.DeleteObject(); ctx.ExecuteQueryRetry(); } }
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 static bool DeleteSiteEventReceiver(string siteUrl, string eventName, string assemblyName) { try { Logger.LogInfoMessage(String.Format("Deleting SITE Event Receiver [{0}] from site {1} ...", eventName, siteUrl), true); using (ClientContext userContext = Helper.CreateAuthenticatedUserContext(Program.AdminDomain, Program.AdminUsername, Program.AdminPassword, siteUrl)) { Site site = userContext.Site; EventReceiverDefinitionCollection receivers = site.EventReceivers; userContext.Load(site); userContext.Load(receivers); userContext.ExecuteQuery(); foreach (EventReceiverDefinition receiver in receivers) { if (receiver.ReceiverName.Equals(eventName, StringComparison.InvariantCultureIgnoreCase) && receiver.ReceiverAssembly.Equals(assemblyName, StringComparison.InvariantCultureIgnoreCase) ) { receiver.DeleteObject(); userContext.ExecuteQuery(); Logger.LogSuccessMessage(String.Format("[DeleteMissingEventReceivers: DeleteSiteEventReceiver] Deleted SITE Event Receiver [{0}] from site {1} and output file is present in the path: {2}", eventName, siteUrl, Environment.CurrentDirectory), true); return(true); } } Logger.LogErrorMessage(String.Format("[DeleteMissingEventReceivers: DeleteSiteEventReceiver] DeleteSiteEventReceiver() failed for Event Receiver [{0}] on site {1}; Error=Event Receiver not Found.", eventName, siteUrl), true); } } catch (Exception ex) { Logger.LogErrorMessage(String.Format("[DeleteMissingEventReceivers: DeleteSiteEventReceiver] failed for Event Receiver [{0}] on site {1}; Error={2}", eventName, siteUrl, ex.Message), true); ExceptionCsv.WriteException(Constants.NotApplicable, siteUrl, Constants.NotApplicable, "EventReceiver", ex.Message, ex.ToString(), "DeleteSiteEventReceiver", ex.GetType().ToString(), String.Format("[DeleteMissingEventReceivers: DeleteSiteEventReceiver] failed for Event Receiver [{0}] on site {1}", eventName, siteUrl)); return(false); } return(false); }
public static void AddEventReceivers(List list, string receiverName, string receiverUrl) { ClientContext context = (ClientContext)list.Context; string receiverAssembly = Assembly.GetExecutingAssembly().FullName; EventReceiverDefinitionCollection eventReceivers = list.EventReceivers; string receiverClass = RECEIVERCLASSPREFIX + receiverName; EventReceiverDefinitionCreationInformation updatedEventReceiver = new EventReceiverDefinitionCreationInformation() { ReceiverAssembly = receiverAssembly, ReceiverName = receiverName, ReceiverClass = receiverClass, ReceiverUrl = receiverUrl, SequenceNumber = 1000, EventType = EventReceiverType.ItemUpdated }; context.Load(eventReceivers); context.ExecuteQuery(); list.EventReceivers.Add(updatedEventReceiver); context.ExecuteQuery(); EventReceiverDefinitionCreationInformation addedEventReceiver = new EventReceiverDefinitionCreationInformation() { ReceiverAssembly = receiverAssembly, ReceiverName = receiverName, ReceiverClass = receiverClass, ReceiverUrl = receiverUrl, SequenceNumber = 1000, EventType = EventReceiverType.ItemAdded }; context.Load(eventReceivers); context.ExecuteQuery(); list.EventReceivers.Add(addedEventReceiver); context.ExecuteQuery(); }
protected Microsoft.SharePoint.Client.EventReceiverDefinition FindEventReceiverDefinition(EventReceiverDefinitionCollection receivers, EventReceiverDefinition definition) { var receiverName = definition.Name.ToUpper(); receivers.Context.Load(receivers); receivers.Context.ExecuteQuery(); return(receivers.OfType <Microsoft.SharePoint.Client.EventReceiverDefinition>() .FirstOrDefault(r => !string.IsNullOrEmpty(r.ReceiverName) && r.ReceiverName.ToUpper() == receiverName)); }
public SPOEventReceiverDefinition(EventReceiverDefinition erd, EventReceiverDefinitionCollection parentCollection) { _erd = erd; _parentCollection = parentCollection; }