public async Task RaiseEvent(SkuMessageType type, IInventoryItem item) { Console.WriteLine($"Raising event {type} for SKU {item.Sku}..."); var eventPayload = SkuNotification.Create(type, item); var events = new List <EventGridEvent>() { new EventGridEvent { Id = Guid.NewGuid().ToString(), EventType = type.ToString(), Data = eventPayload, EventTime = DateTime.Now, Subject = item.Sku, DataVersion = "2.0" } }; var topicHostname = new Uri(endPoint).Host; var topicCredentials = new TopicCredentials(key); var client = new EventGridClient(topicCredentials); await client.PublishEventsAsync(topicHostname, events); Console.WriteLine($"Raised successfully."); }
public static SkuNotification Create(SkuMessageType type, IInventoryItem item) { switch (type) { case SkuMessageType.Activated: return(new SkuActivated { Sku = item.Sku }); case SkuMessageType.Added: return(new SkuAdded { Sku = item.Sku }); case SkuMessageType.DescriptionSet: return(new DescriptionSet { Sku = item.Sku, Description = item.Description }); case SkuMessageType.ImageSet: return(new ImageSet { Sku = item.Sku, ImageUrl = item.ImageUrl }); case SkuMessageType.PriceSet: return(new PriceSet { Sku = item.Sku, Price = item.Price }); } return(null); }