private static async Task SendResponse(string messageId, GetLoanOptionsResponsePayload response, string replyTo, string replyToSessionId, TraceWriter log) { var serviceBusConnectionString = Environment.GetEnvironmentVariable("ServiceBusConnection"); log.Info($"[{messageId}] Service bus connection for response {(serviceBusConnectionString == null ? "NOT FOUND" : "FOUND")}"); var responsePayload = JsonConvert.SerializeObject(response); try { var responseClient = QueueClient.CreateFromConnectionString(serviceBusConnectionString, replyTo); var responseMessage = new BrokeredMessage(responsePayload) { SessionId = replyToSessionId }; await responseClient.SendAsync(responseMessage); log.Info($"[{messageId}] Response sent!"); await responseClient.CloseAsync(); } catch (Exception e) { log.Error($"[{messageId}] Error sending response: " + e.Message); } }
public static void Run([ServiceBusTrigger("thequeue", AccessRights.Manage, Connection = "ServiceBusConnection")] BrokeredMessage myQueueItem, TraceWriter log) { log.Info($"[{myQueueItem.MessageId}] Incoming message"); var request = GetRequest(myQueueItem, log).GetAwaiter().GetResult(); var response = new GetLoanOptionsResponsePayload { Provider = "FUNCBRINKLE", LoanAmount = request.CreditScore * 4 }; log.Info($"Will respond on {myQueueItem.ReplyTo} with session {myQueueItem.ReplyToSessionId}"); SendResponse(myQueueItem.MessageId, response, myQueueItem.ReplyTo, myQueueItem.ReplyToSessionId, log).GetAwaiter().GetResult(); }