public static void Run( [ServiceBusTrigger("shippingsinitiated", Connection = "ServiceBus")] /*ShippingCreatedMessage*/ string msg, // Issue with deserializing incoming message ILogger log) { log.LogInformation($"NotifyClientsAboutOrderShipment SB queue trigger function processed message: {msg}"); ShippingCreatedMessage message = JsonConvert.DeserializeObject <ShippingCreatedMessage>(msg); var messageToNotify = new { orderId = message.OrderId }; // TODO: Notify users' clients through SignalR... }
public static async Task Run( [ServiceBusTrigger("shippingsinitiated", Connection = "ServiceBus")] ShippingCreatedMessage message, [SignalR(HubName = "shippingsHub", ConnectionStringSetting = "SignalR")] IAsyncCollector <SignalRMessage> notificationMessages, ILogger log) { log.LogInformation($"NotifyClientsAboutOrderShipment SB queue trigger function processed message: {message}"); // NOTE: Group feature not yet available in SignalR binding var messageToNotify = new { userId = message.UserId, orderId = message.OrderId }; await notificationMessages.AddAsync(new SignalRMessage { Target = "shippingInitiated", Arguments = new[] { messageToNotify } }); }
public static async Task Run( [ServiceBusTrigger("ordersforshipping", Connection = "ServiceBus")] NewOrderMessage message, [ServiceBus("shippingsinitiated", Connection = "ServiceBus")] IAsyncCollector <ShippingCreatedMessage> shippingCreatedMessages, ILogger log) { log.LogInformation($"CreateShipment ServiceBus topic trigger function processed message: {message}"); // NOTE: Look at our complex business logic! // TODO: Yes - do the REAL STUFF here... await Task.Delay(5000); var shippingCreated = new ShippingCreatedMessage { Id = Guid.NewGuid(), Created = DateTime.UtcNow, OrderId = message.Order.Id, UserId = message.UserId }; log.LogInformation("New shipment: {0}", shippingCreated); try { await shippingCreatedMessages.AddAsync(shippingCreated); await shippingCreatedMessages.FlushAsync(); } catch (ServiceBusException sbx) { // TODO: retry policy... log.LogError(sbx, "Service Bus Error"); throw; } }
public async Task Run( [ServiceBusTrigger("shippingsinitiated", Connection = "ServiceBus")] /*ShippingCreatedMessage*/ string msg, [SignalR(HubName = "shippingsHub", ConnectionStringSetting = "SignalR")] IAsyncCollector <SignalRMessage> notificationMessages, ILogger log) { log.LogInformation($"NotifyClientsAboutOrderShipment SB queue trigger function processed message: {msg}"); ShippingCreatedMessage message = JsonConvert.DeserializeObject <ShippingCreatedMessage>(msg); // TODO: Use group feature in SignalR binding var messageToNotify = new { userId = message.UserId, orderId = message.OrderId }; await notificationMessages.AddAsync(new SignalRMessage { Target = "shippingInitiated", Arguments = new[] { messageToNotify } }); }