internal void marketDataReturned(QuickFix.FIX42.MarketDataSnapshotFullRefresh m)
        {
            String id = m.MDReqID.ToString();

            QuickFix.FIX42.NewOrderSingle order = orderHashSet[id];



            //get price from market snapshot

            var  bid    = new QuickFix.FIX42.MarketDataSnapshotFullRefresh.NoMDEntriesGroup();
            bool setBid = false;

            //m.GetGroup(1, bid);

            var  offer    = new QuickFix.FIX42.MarketDataSnapshotFullRefresh.NoMDEntriesGroup();
            bool setOffer = false;

            //m.GetGroup(2, offer);

            for (int grpIndex = 1; grpIndex <= m.GetInt(Tags.NoMDEntries); grpIndex += 1)
            {
                if (grpIndex == 1)
                {
                    m.GetGroup(grpIndex, bid);
                    setBid = true;
                }
                else
                {
                    m.GetGroup(grpIndex, offer);
                    setOffer = true;
                }
            }

            decimal price = 0;

            //if (order.Side.Obj == Side.BUY)

            switch (order.Side.Obj)
            {
            case QuickFix.Fields.Side.BUY:
                Console.Write("buy");

                if (setBid)
                {
                    price = bid.GetDecimal(Tags.MDEntryPx);
                }

                break;

            case QuickFix.Fields.Side.SELL:
                Console.Write("sell");

                if (setOffer)
                {
                    price = offer.GetDecimal(Tags.MDEntryPx);
                }

                break;
            }

            if (!setBid && !setOffer)
            {
                price = orderPriceHashSet[id];
            }

            order.Price = new Price(price);

            if (OrderEvent != null)
            {
                OrderEvent(order);
            }

            if (_fixConnectionSystem.InitiatorRunning && _connectionViewModel.IsOrderConnected)
            {
                Thread sendToTargetThreading = new Thread(new ParameterizedThreadStart(sendToOrderToTarget));
                sendToTargetThreading.IsBackground = true;
                sendToTargetThreading.Start(order);

                //QuickFix.Session.SendToTarget(order, _fixConnectionSystem.orderSession.SessionID);
            }
        }