/// <summary> /// Create SettlementQueueItem from service QueueItem /// </summary> /// <param name="dataQueueItem">QueueDataContract.QueueItem</param> /// <returns>SettlementQueueItem</returns> public static SettlementQueueItem CreateSettlementBusinessQueueItem(QueueDataContract.QueueItem dataQueueItem) { var queueItem = new SettlementQueueItem(); // load xml payload var payloadElement = XElement.Parse(dataQueueItem.Payload); // extract booking id and order id from xml payload queueItem.BusinessId = (int)payloadElement.Element(XML_PAYLOAD_BUSINESS_ID); queueItem.Id = dataQueueItem.Id; queueItem.Key = dataQueueItem.Key; queueItem.PayloadType = dataQueueItem.PayloadType; return queueItem; }
/// <summary> /// Create SettlementQueueItem from service QueueItem /// </summary> /// <param name="dataQueueItem">QueueDataContract.QueueItem</param> /// <returns>SettlementQueueItem</returns> public static SettlementQueueItem CreateSettlementInvoiceQueueItem(QueueDataContract.QueueItem dataQueueItem) { var queueItem = new SettlementQueueItem(); // load xml payload var payloadElement = XElement.Parse(dataQueueItem.Payload); // extract booking id and order id from xml payload queueItem.BookingId = (int)payloadElement.Element(XML_PAYLOAD_BOOKING_ID); queueItem.OrderId = (int)payloadElement.Element(XML_PAYLOAD_ORDER_ID); queueItem.EventId = (int)payloadElement.Element(XML_PAYLOAD_EVENT_ID); queueItem.OrderSourceCode = (string) payloadElement.Element(XML_PAYLOAD_ORDER_SOURCE_CODE); queueItem.Id = dataQueueItem.Id; queueItem.Key = dataQueueItem.Key; queueItem.PayloadType = dataQueueItem.PayloadType; return queueItem; }
/// <summary> /// Extract pay load information and create a specific QueueItem based on PayloadType /// </summary> /// <param name="dataQueueItem">QueueItem</param> /// <param name="originalRequest">original info from request to service</param> /// <returns>QueueItem</returns> public IQueueItem CreateQueueItemBasedOnPayloadType(QueueDataContract.QueueItem dataQueueItem, IQueueItem originalRequest) { IQueueItem result = null; switch (dataQueueItem.PayloadType) { case PayloadTypeEnum.BookingInv: result = DbDrivenQueueProcessorHelper.CreateSettlementInvoiceQueueItem(dataQueueItem); break; case PayloadTypeEnum.BusinessChange: result = DbDrivenQueueProcessorHelper.CreateSettlementBusinessQueueItem(dataQueueItem); break; default: result = new QueueItem { Id = dataQueueItem.Id, Key = dataQueueItem.Key, Payload = dataQueueItem.Payload, PayloadType = dataQueueItem.PayloadType }; break; } result.Notes = originalRequest.Notes; result.Name = originalRequest.Name; result.QueueCode = originalRequest.QueueCode; return result; }