Guest User

Untitled

a guest
Jan 16th, 2018
93
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.15 KB | None | 0 0
  1. public class AppEventReceiver : IRemoteEventService
  2. {
  3. /// <summary>
  4. /// Handles app events that occur after the app is installed or upgraded, or when app is being uninstalled.
  5. /// </summary>
  6. /// <param name="properties">Holds information about the app event.</param>
  7. /// <returns>Holds information returned from the app event.</returns>
  8. private const string ReceiverName = "ItemAddedEvent";
  9. private const string ListName = "test";
  10.  
  11. public SPRemoteEventResult ProcessEvent(SPRemoteEventProperties properties)
  12. {
  13.  
  14. SPRemoteEventResult result = new SPRemoteEventResult();
  15.  
  16. switch (properties.EventType)
  17. {
  18. case SPRemoteEventType.AppInstalled:
  19. HandleAppInstalled(properties);
  20. break;
  21. case SPRemoteEventType.AppUninstalling:
  22. HandleAppUninstalling(properties);
  23. break;
  24. case SPRemoteEventType.ItemAdded:
  25. HandleItemAdded(properties);
  26. break;
  27. }
  28.  
  29.  
  30. return result;
  31. }
  32.  
  33. private void HandleAppInstalled(SPRemoteEventProperties properties)
  34.  
  35. {
  36.  
  37. using (ClientContext clientContext =
  38.  
  39. TokenHelper.CreateAppEventClientContext(properties, false))
  40.  
  41. {
  42.  
  43. if (clientContext != null)
  44.  
  45. {
  46.  
  47. List myList = clientContext.Web.Lists.GetByTitle(ListName);
  48.  
  49. clientContext.Load(myList, p => p.EventReceivers);
  50.  
  51. clientContext.ExecuteQuery();
  52.  
  53.  
  54.  
  55. bool rerExists = false;
  56.  
  57.  
  58.  
  59. foreach (var rer in myList.EventReceivers)
  60.  
  61. {
  62.  
  63. if (rer.ReceiverName == ReceiverName)
  64.  
  65. {
  66.  
  67. rerExists = true;
  68.  
  69. System.Diagnostics.Trace.WriteLine("Found existing ItemAdded receiver at "
  70.  
  71. + rer.ReceiverUrl);
  72.  
  73. }
  74.  
  75. }
  76.  
  77.  
  78.  
  79. if (!rerExists)
  80.  
  81. {
  82.  
  83. EventReceiverDefinitionCreationInformation receiver =
  84.  
  85. new EventReceiverDefinitionCreationInformation();
  86.  
  87. receiver.EventType = EventReceiverType.ItemAdded;
  88.  
  89.  
  90.  
  91. //Get WCF URL where this message was handled
  92.  
  93. OperationContext op = OperationContext.Current;
  94.  
  95. Message msg = op.RequestContext.RequestMessage;
  96.  
  97. receiver.ReceiverUrl = msg.Headers.To.ToString();
  98. receiver.ReceiverName = ReceiverName;
  99.  
  100. receiver.Synchronization = EventReceiverSynchronization.Synchronous;
  101.  
  102. myList.EventReceivers.Add(receiver);
  103. clientContext.ExecuteQuery();
  104. System.Diagnostics.Trace.WriteLine("Added ItemAdded receiver at "
  105.  
  106. + msg.Headers.To.ToString());
  107.  
  108. }
  109.  
  110. }
  111.  
  112. }
  113.  
  114. }
Add Comment
Please, Sign In to add comment