public override void EndElement(string endElement)
        {
            if (!(this.ElementName == endElement))
            {
                return;
            }
            string[]          strArray     = this.Content.Split(OrderBookEventHandler.PipeDelimiter);
            long              instrumentId = OrderBookEventHandler.ParseLong(strArray[0]);
            long              timestap     = OrderBookEventHandler.ParseTimestap(strArray[1]);
            Decimal           output1;
            bool              hasValuationBidPrice = OrderBookEventHandler.TryParseDecimal(strArray[7], out output1);
            Decimal           output2;
            bool              hasValuationAskPrice = OrderBookEventHandler.TryParseDecimal(strArray[8], out output2);
            Decimal           output3;
            bool              hasLastTradedPrice = OrderBookEventHandler.TryParseDecimal(strArray[9], out output3);
            Decimal           output4;
            bool              hasDailyHighestTradedPrice = OrderBookEventHandler.TryParseDecimal(strArray[5], out output4);
            Decimal           output5;
            bool              hasDailyLowestTradedPrice = OrderBookEventHandler.TryParseDecimal(strArray[6], out output5);
            List <PricePoint> prices1 = OrderBookEventHandler.ParsePrices(strArray[2]);
            List <PricePoint> prices2 = OrderBookEventHandler.ParsePrices(strArray[3]);
            Decimal           marketClosePrice;
            long              marketClosePriceTimestamp;
            bool              marketClose = OrderBookEventHandler.TryParseMarketClose(strArray[4], out marketClosePrice, out marketClosePriceTimestamp);

            this.MarketDataChanged(new OrderBookEvent(instrumentId, hasValuationBidPrice, hasValuationAskPrice, output1, output2, prices1, prices2, marketClose, marketClosePrice, marketClosePriceTimestamp, hasLastTradedPrice, output3, hasDailyHighestTradedPrice, output4, hasDailyLowestTradedPrice, output5, timestap));
        }
 private static bool TryParseMarketClose(string payload, out Decimal marketClosePrice, out long marketClosePriceTimestamp)
 {
     if (payload.Length == 0)
     {
         marketClosePrice          = new Decimal(0);
         marketClosePriceTimestamp = 0L;
         return(false);
     }
     string[] strArray = payload.Split(OrderBookEventHandler.SemicolonDelimiter);
     if (strArray[0].Length == 0)
     {
         marketClosePrice          = new Decimal(0);
         marketClosePriceTimestamp = 0L;
         return(false);
     }
     marketClosePrice          = Decimal.Parse(strArray[0], (IFormatProvider)DefaultHandler.NumberFormat);
     marketClosePriceTimestamp = OrderBookEventHandler.ParseTimestap(strArray[1]);
     return(true);
 }