This is a compact version, please ask if you need clarifications:
I have managed to register an endpoint so that when I update a property (for example phone number) in Dynamics CRM Online a message is sent to Azure Service Bus (topic and/or queue, no difference here). I also have a webjob that listens to theses changes, using the signature below:
public static void ProcessTopicMessage([ServiceBusTrigger("my-crm-topic", "topic-subscription1" )] BrokeredMessage pQueueItem, TextWriter log) { RemoteExecutionContext package = pQueueItem.GetBody<RemoteExecutionContext>(); if(package.MessageName == "Update") { Entity entity = pPackage.InputParameters["Target"] as Entity; var newPhone = entity.GetAttributeValue<string("telephone1"); } ... }
This works ok, when I change for example phone number I can read the new phone number and all other properties are null. HOWEVER, I cant find any information on the name/id of the property/properties that were changed (except that they are not null).
I could loop through all property names and be happy with that, but the main problem is that there no way to know if the property was set back to null from something else.
I cannot find any indication of that its the phone number that has been changed in pQueueItem- or package-properties. Where do I find it?