/// <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;

        }
示例#3
0
        /// <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;
        }