Esempio n. 1
0
        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);
            }
        }
Esempio n. 2
0
        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();
        }