public void AbandonQuotePrice(QuotePriceClient quotePrice, QuotePriceForInstrument quotePriceForInstrument, bool isSigle, Button btn)
 {
     if (quotePriceForInstrument != null)
     {
         List<Answer> quoteQuotations = new List<Answer>();
         if (isSigle)
         {
             if (quotePrice != null)
             {
                 quoteQuotations.Add(quotePrice.ToSendQutoPrice());
             }
         }
         else
         {
             quoteQuotations = quotePriceForInstrument.GetSelectedQuotePriceForAccount();
         }
         if (quoteQuotations.Count > 0)
         {
             var AbandonQuoteEventLog = new EventLogEntity(Guid.NewGuid())
             {
                //write log
             };
         }
         //Notify service
         string exchangeCode = string.Empty;
         ConsoleClient.Instance.AbandonQuote(quoteQuotations);
     }
 }
 private void SendQuotePrice(QuotePriceClient quotePrice, QuotePriceForInstrument quotePriceForInstrument, bool isSingle, Button btn)
 {
     if (quotePriceForInstrument != null)
     {
         List<Answer> ToSendQutoPrices = new List<Answer>();
         if (isSingle)
         {
             if (quotePrice != null)
             {
                 ToSendQutoPrices.Add(quotePrice.ToSendQutoPrice());
             }
         }
         else
         {
             ToSendQutoPrices = quotePriceForInstrument.GetSelectedQuotePriceForAccount();
         }
         if (ToSendQutoPrices.Count > 0)
         {
             var ConfirmedQuoteEventLog = new EventLogEntity(Guid.NewGuid())
             {
                 //Write Log
             };
             object[] abandonStatus = new object[] { ConfirmedQuoteEventLog, btn };
             ConsoleClient.Instance.SendQuotePrice(ToSendQutoPrices);
         }
     }
 }
        void MessageClient_QuotePriceReceived(QuoteMessage quoteMessage)
        {
            this.Dispatcher.BeginInvoke((Action<QuoteMessage>)delegate(QuoteMessage result)
            {
                //声音处理
                MediaManager.PlayMedia(this._Media, MediaManager._EnquiryMediaSource);

                int waiteTime = 50;     //取初始化数据系统参数
                Guid customerId = result.CustomerID;
                //通过CustomerId获取Customer对象
                //var customer = this._Customers.SingleOrDefault(P => P.id == customerId);
                var customer = new Customer();
                customer.Id = result.CustomerID;
                customer.Code = "WF007";
                QuotePriceClient quotePriceClient = new QuotePriceClient(result, waiteTime, customer);
                QuotePriceForInstrument clientQuotePriceForInstrument = null;
                clientQuotePriceForInstrument = this._ClientQuotePriceForInstrument.SingleOrDefault(P => P.InstrumentClient.Id == quotePriceClient.InstrumentId);
                if (clientQuotePriceForInstrument == null)
                {
                    //从内存中获取Instrument
                    //var instrumentEntity = this._Instruments.SingleOrDefault(P => P.InstrumentId == clientQuotePriceForAccount.InstrumentId);
                    clientQuotePriceForInstrument = new QuotePriceForInstrument();
                    var instrument = this.GetInstrument(quotePriceClient);
                    clientQuotePriceForInstrument.InstrumentClient = instrument;
                    clientQuotePriceForInstrument.Origin = instrument.Origin;
                    clientQuotePriceForInstrument.Adjust = decimal.Parse(instrument.Origin);
                    clientQuotePriceForInstrument.AdjustLot = quotePriceClient.QuoteLot;
                    this._ClientQuotePriceForInstrument.Add(clientQuotePriceForInstrument);
                }
                clientQuotePriceForInstrument.OnEmptyQuotePriceClient += new QuotePriceForInstrument.EmptyQuotePriceHandle(ClientQuotePriceForInstrument_OnEmptyClientQuotePriceClient);
                //clientQuotePriceForInstrument.OnEmptyCheckBoxClient += new QuotePriceForInstrument.EmptyCheckBoxHandle(ClientQuotePriceForInstrument_OnEmptyCheckBoxClient);
                clientQuotePriceForInstrument.AddNewQuotePrice(quotePriceClient);

                if (!this._QuoteTimer.IsEnabled)
                {
                    this._QuoteTimer.Start();
                }

            }, quoteMessage);
        }
 void ClientQuotePriceForInstrument_OnEmptyClientQuotePriceClient(QuotePriceForInstrument clientQuotePriceForInstrument)
 {
     this._ClientQuotePriceForInstrument.Remove(clientQuotePriceForInstrument);
 }
        public void RemoveSendQuotePrice(QuotePriceClient quotePriceClient)
        {
            bool isCurrentQuotePrice = (quotePriceClient.Id == this.QuotePriceForInstrument.QuoteId);
            this.QuotePriceClients.Remove(quotePriceClient);

            if (this.QuotePriceClients.Count == 0)
            {
                this.QuotePriceForInstrument = null;
                return;
            }

            bool isCurrentInstrument = (quotePriceClient.InstrumentId == this.QuotePriceClients[0].InstrumentId);
            if (isCurrentInstrument && this.QuotePriceClients.Count > 0)
            {
                this.QuotePriceForInstrument.SwitchNewInstrument(this.QuotePriceClients[0],false);
                this.QuotePriceForInstrument.SumBuyLot -= quotePriceClient.BuyLot;
                this.QuotePriceForInstrument.SumSellLot -= quotePriceClient.SellLot;
            }
            else
            {
                this.QuotePriceForInstrument.SwitchNewInstrument(this.QuotePriceClients[0], true);
                var quotePriceClients = this.QuotePriceClients.Where(P => P.InstrumentId == this.QuotePriceForInstrument.Instrument.Id);
                foreach (QuotePriceClient entity in quotePriceClients)
                {
                    this.QuotePriceForInstrument.SumBuyLot += entity.BuyLot;
                    this.QuotePriceForInstrument.SumSellLot += entity.SellLot;
                }
            }
            this.QuotePriceForInstrument.CreateBestPrice(true);
        }
        public void AddSendQuotePrice(QuotePriceClient quotePriceClient)
        {
            this.QuotePriceClients.Add(quotePriceClient);

            if (this.QuotePriceForInstrument == null)
            {
                this.QuotePriceForInstrument = new QuotePriceForInstrument(quotePriceClient);
                if (this.OnBindingQuotePriceUIEvent != null)
                {
                    this.OnBindingQuotePriceUIEvent();
                }
            }
            else
            {
                bool isCurrentInstrument = (quotePriceClient.InstrumentId == this.QuotePriceForInstrument.Instrument.Id);
                if (isCurrentInstrument)
                {
                    this.QuotePriceForInstrument.SumBuyLot += quotePriceClient.BuyLot;
                    this.QuotePriceForInstrument.SumSellLot += quotePriceClient.SellLot;
                }
                this.QuotePriceForInstrument.CreateBestPrice(true);
            }
        }