Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class AppEventReceiver : IRemoteEventService
- {
- /// <summary>
- /// Handles app events that occur after the app is installed or upgraded, or when app is being uninstalled.
- /// </summary>
- /// <param name="properties">Holds information about the app event.</param>
- /// <returns>Holds information returned from the app event.</returns>
- private const string ReceiverName = "ItemAddedEvent";
- private const string ListName = "test";
- public SPRemoteEventResult ProcessEvent(SPRemoteEventProperties properties)
- {
- SPRemoteEventResult result = new SPRemoteEventResult();
- switch (properties.EventType)
- {
- case SPRemoteEventType.AppInstalled:
- HandleAppInstalled(properties);
- break;
- case SPRemoteEventType.AppUninstalling:
- HandleAppUninstalling(properties);
- break;
- case SPRemoteEventType.ItemAdded:
- HandleItemAdded(properties);
- break;
- }
- return result;
- }
- private void HandleAppInstalled(SPRemoteEventProperties properties)
- {
- using (ClientContext clientContext =
- TokenHelper.CreateAppEventClientContext(properties, false))
- {
- if (clientContext != null)
- {
- List myList = clientContext.Web.Lists.GetByTitle(ListName);
- clientContext.Load(myList, p => p.EventReceivers);
- clientContext.ExecuteQuery();
- bool rerExists = false;
- foreach (var rer in myList.EventReceivers)
- {
- if (rer.ReceiverName == ReceiverName)
- {
- rerExists = true;
- System.Diagnostics.Trace.WriteLine("Found existing ItemAdded receiver at "
- + rer.ReceiverUrl);
- }
- }
- if (!rerExists)
- {
- EventReceiverDefinitionCreationInformation receiver =
- new EventReceiverDefinitionCreationInformation();
- receiver.EventType = EventReceiverType.ItemAdded;
- //Get WCF URL where this message was handled
- OperationContext op = OperationContext.Current;
- Message msg = op.RequestContext.RequestMessage;
- receiver.ReceiverUrl = msg.Headers.To.ToString();
- receiver.ReceiverName = ReceiverName;
- receiver.Synchronization = EventReceiverSynchronization.Synchronous;
- myList.EventReceivers.Add(receiver);
- clientContext.ExecuteQuery();
- System.Diagnostics.Trace.WriteLine("Added ItemAdded receiver at "
- + msg.Headers.To.ToString());
- }
- }
- }
- }
Add Comment
Please, Sign In to add comment