@@ -20,6 +20,13 @@ namespace AdtEventEndpoint
2020{
2121 public static class AdtEventEndpoint
2222 {
23+ /// <summary> Azure Digital Twin's relationships events type </summary>
24+ private static readonly string relationshipEventType = "Microsoft.DigitalTwins.Relationship" ;
25+ /// <summary> Azure Digital Twin's create Digital Twin event type </summary>
26+ private static readonly string createDigitalTwinEventType = "Microsoft.DigitalTwins.Twin.Create" ;
27+ /// <summary> Azure Digital Twin's delete Digital Twin event type </summary>
28+ private static readonly string deleteDigitalTwinEventType = "Microsoft.DigitalTwins.Twin.Delete" ;
29+
2330 /// <summary>A HTTP trigger function. It is used by client to be able to connect to SignalR Service.
2431 /// It uses the SignalRConnectionInfo input binding
2532 /// to generate and return valid connection information.</summary>
@@ -51,7 +58,7 @@ public static Task Observe(
5158 eventToClients . Add ( "eventDateTime" , eventGridEvent . Time . ToString ( ) ) ;
5259
5360 // When the event involve the creation or the deletion of a reletionship then get the source's model.
54- if ( eventGridEvent . Type . StartsWith ( "Microsoft.DigitalTwins.Relationship" ) ) {
61+ if ( eventGridEvent . Type . StartsWith ( relationshipEventType ) ) {
5562 DigitalTwinsClient client = new DigitalTwinsClient (
5663 new Uri ( Environment . GetEnvironmentVariable ( "ADT_SERVICE_URL" ) ) ,
5764 new DefaultAzureCredential ( ) ,
@@ -60,6 +67,10 @@ public static Task Observe(
6067 string sourceId = eventToClients [ "data" ] [ "$sourceId" ] . ToString ( ) ;
6168 BasicDigitalTwin sourceDigitalTwin = client . GetDigitalTwin < BasicDigitalTwin > ( sourceId ) . Value ;
6269 eventToClients [ "data" ] [ "$sourceModel" ] = sourceDigitalTwin . Metadata . ModelId ;
70+ } else if ( eventGridEvent . Type . StartsWith ( createDigitalTwinEventType ) || eventGridEvent . Type . StartsWith ( deleteDigitalTwinEventType ) ) {
71+ // When the event involves the creation or the deletion of a Digital Twin then include the model
72+ // of the Digital Twin at the root level of the event itself.
73+ eventToClients . Add ( "model" , eventToClients [ "data" ] [ "$metadata" ] [ "$model" ] ) ;
6374 }
6475
6576 log . LogInformation ( $ "New event:\n { eventToClients . ToString ( ) } ") ;
0 commit comments