Exemple #1
0
        public void NonGenericReceiveAndDeserializeEventGridEvents()
        {
            #region Snippet:EGEventParseJson
            // Parse the JSON payload into a list of events using EventGridEvent.Parse
            EventGridEvent[] egEvents = EventGridEvent.ParseEvents(jsonPayloadSampleOne);
            #endregion

            // Iterate over each event to access event properties and data
            #region Snippet:DeserializePayloadUsingAsSystemEventData
            foreach (EventGridEvent egEvent in egEvents)
            {
                // If the event is a system event, TryGetSystemEventData() will return the deserialized system event
                if (egEvent.TryGetSystemEventData(out object systemEvent))
                {
                    switch (systemEvent)
                    {
                    case SubscriptionValidationEventData subscriptionValidated:
                        Console.WriteLine(subscriptionValidated.ValidationCode);
                        break;

                    case StorageBlobCreatedEventData blobCreated:
                        Console.WriteLine(blobCreated.BlobType);
                        break;

                    // Handle any other system event type
                    default:
                        Console.WriteLine(egEvent.EventType);
                        // we can get the raw Json for the event using Data
                        Console.WriteLine(egEvent.Data.ToString());
                        break;
                    }
                }
                else
                {
                    switch (egEvent.EventType)
                    {
                    case "MyApp.Models.CustomEventType":
                        TestPayload deserializedEventData = egEvent.Data.ToObjectFromJson <TestPayload>();
                        Console.WriteLine(deserializedEventData.Name);
                        break;

                    // Handle any other custom event type
                    default:
                        Console.Write(egEvent.EventType);
                        Console.WriteLine(egEvent.Data.ToString());
                        break;
                    }
                }
            }
            #endregion
        }