public async void ProcessAccountInvoiceQueueMessage(int InvoiceID) { try { OrderDataAccess _orderAccess = new OrderDataAccess(_iconfiguration); DatabaseResponse accountTypeResponse = await _orderAccess.GetInvoiceRemarksFromInvoiceID(InvoiceID); if (((string)accountTypeResponse.Results) == "RecheduleDeliveryInformation") { DatabaseResponse orderMqResponse = new DatabaseResponse(); orderMqResponse = await _messageQueueDataAccess.GetRescheduleMessageQueueBody(InvoiceID); QMHelper qMHelper = new QMHelper(_iconfiguration, _messageQueueDataAccess); var result = await qMHelper.SendMQ(orderMqResponse); var invoiceDetails = (RescheduleDeliveryMessage)orderMqResponse.Results; if (invoiceDetails != null && invoiceDetails.slotDate != null) { CustomerDetails customer = new CustomerDetails { Name = invoiceDetails.name, DeliveryEmail = invoiceDetails.email, ShippingContactNumber = invoiceDetails.shippingContactNumber, OrderNumber = invoiceDetails.orderNumber, SlotDate = invoiceDetails.slotDate ?? DateTime.Now, SlotFromTime = invoiceDetails.slotFromTime ?? DateTime.Now.TimeOfDay, SlotToTime = invoiceDetails.slotToTime ?? DateTime.Now.TimeOfDay }; string status = await SendOrderSuccessSMSNotification(customer, NotificationEvent.RescheduleDelivery.ToString()); } } else { DatabaseResponse invoiceMqResponse = new DatabaseResponse(); invoiceMqResponse = await _messageQueueDataAccess.GetAccountInvoiceMessageQueueBody(InvoiceID); InvoceQM invoiceDetails = new InvoceQM(); string topicName = string.Empty; string pushResult = string.Empty; if (invoiceMqResponse != null && invoiceMqResponse.Results != null) { invoiceDetails = (InvoceQM)invoiceMqResponse.Results; // invoiceDetails.invoicelist= await GetInvoiceList(invoiceDetails.customerID); invoiceDetails.paymentmode = invoiceDetails.CardFundMethod == EnumExtensions.GetDescription(PaymentMode.CC) ? PaymentMode.CC.ToString() : PaymentMode.DC.ToString(); MessageQueueRequest queueRequest = new MessageQueueRequest { Source = CheckOutType.AccountInvoices.ToString(), NumberOfRetries = 1, SNSTopic = topicName, CreatedOn = DateTime.Now, LastTriedOn = DateTime.Now, PublishedOn = DateTime.Now, MessageAttribute = EnumExtensions.GetDescription(RequestType.PayBill), MessageBody = JsonConvert.SerializeObject(invoiceDetails), Status = 0 }; try { Dictionary <string, string> attribute = new Dictionary <string, string>(); topicName = ConfigHelper.GetValueByKey(ConfigKey.SNS_Topic_ChangeRequest.GetDescription(), _iconfiguration).Results.ToString().Trim(); attribute.Add(EventTypeString.EventType, EnumExtensions.GetDescription(RequestType.PayBill)); pushResult = await _messageQueueDataAccess.PublishMessageToMessageQueue(topicName, invoiceDetails, attribute); queueRequest.PublishedOn = DateTime.Now; if (pushResult.Trim().ToUpper() == "OK") { queueRequest.Status = 1; await _messageQueueDataAccess.InsertMessageInMessageQueueRequest(queueRequest); } else { queueRequest.Status = 0; await _messageQueueDataAccess.InsertMessageInMessageQueueRequest(queueRequest); } } catch (Exception ex) { LogInfo.Error(new ExceptionHelper().GetLogString(ex, ErrorLevel.Critical)); queueRequest.Status = 0; await _messageQueueDataAccess.InsertMessageInMessageQueueRequest(queueRequest); } } } } catch (Exception ex) { LogInfo.Error(new ExceptionHelper().GetLogString(ex, ErrorLevel.Critical)); } }