示例#1
0
 public void ProcessLoading(object obj, System.Timers.ElapsedEventArgs e)
 {
     if (loadingForm != null && !loadingForm.IsDisposed)
     {
         MsgUpdatedDelegate d = new MsgUpdatedDelegate(ProgresstUpdate);
         int status           = loadingForm.GetLoadingStatus();
         if (status < 10)// && AppClient.IsReady)
         {
             loadingForm.BeginInvoke(d, 10);
         }
         else if (status < 20 && AppContext.IsGetSymbols)
         {
             loadingForm.BeginInvoke(d, 20);
         }
         else if (status < 30 && AppContext.IsGetDSInfo)
         {
             loadingForm.BeginInvoke(d, 30);
         }
         else if (status >= 30 && status < 40)//&& DSClient.IsReady)
         {
             loadingForm.BeginInvoke(d, 40);
         }
         else if (status >= 40 && status < 50 && AppContext.IsGetInitProviderFile)
         {
             loadingForm.BeginInvoke(d, 50);
         }
         else if (status >= 50 && status < 60 && AppContext.IsGetInitProviderRtd)
         {
             loadingForm.BeginInvoke(d, 60);
         }
         else if (status >= 60 && status < 70 && AppContext.IsGetInitProviderSignals)
         {
             AppContext.FirstDataProvider.InitStart();
             loadingForm.BeginInvoke(d, 70);
         }
         else if (status >= 70 && status < 80 && AppContext.IsGetSymbolPrices)
         {
             loadingForm.BeginInvoke(d, 80);
         }
         else if (status >= 80 && status < 90 && AppContext.IsGetSignalList)
         {
             loadingForm.BeginInvoke(d, 90);
         }
         //else if (status >= 85 && status < 95 && AppContext.IsLoadInitProviderFile)
         //{
         //    AppContext.FirstDataProvider.InitStart();
         //    loadingForm.BeginInvoke(d, 95);
         //}
         else if (status >= 90 && status < 100 && AppContext.IsFirstProviderInit)
         {
             timer.Stop();
             loadingForm.BeginInvoke(d, 100);
             AppContext.IsLoading = false;
         }
     }
 }
        private void SignalProcess(Signal signal, Protocol protocol)
        {
            Console.WriteLine(" Before Invoke control update ......   " + signal);
            bool dupli   = false;
            bool isValid = false;

            for (int i = 0; i < AppContext.SignalDatas.Count; i++)
            {
                Signal sig = AppContext.SignalDatas[i];
                if (signal.Equals(sig))
                {
                    if (signal.Arrow == sig.Arrow && protocol == Protocol.K0004_1)
                    {
                        dupli = true;
                    }
                    else if (signal.StopLoss == sig.StopLoss && protocol == Protocol.K0004_2)
                    {
                        dupli = true;
                    }
                    else if (signal.GainTip == sig.GainTip && protocol == Protocol.K0004_3)
                    {
                        dupli = true;
                    }
                    else if (signal.StopGain == sig.StopGain && protocol == Protocol.K0004_4)
                    {
                        dupli = true;
                    }
                    else if (signal.ProfitPrice == sig.ProfitPrice && protocol == Protocol.K0004_5)
                    {
                        dupli = true;
                    }
                    else
                    {
                        if (signal.StopLoss != 0)
                        {
                            sig.StopLoss = signal.StopLoss; sig.StopLossTime = signal.StopLossTime; sig.StopLossBidPrice = signal.StopLossBidPrice; isValid = true;
                        }
                        else if (signal.GainTip != 0)
                        {
                            sig.GainTip = signal.GainTip; sig.GainTipPrice = signal.GainTipPrice; sig.GainTipTime = signal.GainTipTime; isValid = true;
                        }
                        else if (signal.StopGain != 0)
                        {
                            sig.StopGain = signal.StopGain; sig.StopGainPrice = signal.StopGainPrice; sig.StopGainTime = signal.StopGainTime; isValid = true;
                        }
                        else if (signal.ProfitPrice > 0)
                        {
                            sig.Profit = signal.Profit; sig.ProfitPrice = signal.ProfitPrice; sig.ProfitTime = signal.ProfitTime; isValid = true;
                            DataProvider provider = DataService.GetProviderBySymbol(signal.Symbol);
                            if (provider != null && !provider.DataCache.SignalUnits[provider.CurrentTInterval].Contains(sig))
                            {
                                provider.DataCache.SignalUnits[provider.CurrentTInterval].Add(sig);
                            }
                        }
                        AppContext.SignalDatas[i] = sig;
                        LogUtil.Info(" AppContext.SignalDatas[i]  " + i + "  " + AppContext.SignalDatas[i]);
                    }
                    LogUtil.Info(" dupli ==============  " + dupli);
                    break;
                }
                if (i == AppContext.SignalDatas.Count - 1 && !dupli)
                {
                    isValid = true;
                }
            }

            if (!dupli)
            {
                if (protocol == Protocol.K0004_1)
                {
                    AppContext.SignalDatas.Add(signal);
                }

                if (isValid)
                {
                    Dictionary <Protocol, Signal> protocolSignal = new Dictionary <Protocol, Signal>();
                    protocolSignal.Add(protocol, signal);
                    MsgUpdatedDelegate d = null;
                    if (protocol != Protocol.K0004_5)
                    {
                        d = new MsgUpdatedDelegate(ProviderUpdate);
                        d.Invoke(protocolSignal);
                    }
                    if (protocol != Protocol.K0004_2 && protocol != Protocol.K0004_3)
                    {
                        d = new MsgUpdatedDelegate(SignalListUpdate);
                        signalListView.BeginInvoke(d, protocolSignal);
                    }
                    if (protocol == Protocol.K0004_5 || protocol == Protocol.K0004_1)
                    {
                        d = new MsgUpdatedDelegate(PriceListUpdate);
                        priceListView.BeginInvoke(d, protocolSignal);
                    }
                    if (protocol == Protocol.K0004_5 || protocol == Protocol.K0004_1)
                    {
                        d = new MsgUpdatedDelegate(StatlListUpdate);
                        statListView.BeginInvoke(d, protocolSignal);
                    }
                }
            }
        }
        private void SignalProcess(Signal signal, Protocol protocol)
        {
            Console.WriteLine(" Before Invoke control update ......   " + signal);
            bool dupli = false;
            bool isValid = false;
            for (int i = 0; i < AppContext.SignalDatas.Count; i++)
            {
                Signal sig = AppContext.SignalDatas[i];
                if (signal.Equals(sig))
                {
                    if (signal.Arrow == sig.Arrow && protocol == Protocol.K0004_1)
                    {
                        dupli = true;
                    }
                    else if (signal.StopLoss == sig.StopLoss && protocol == Protocol.K0004_2)
                    {
                        dupli = true;
                    }
                    else if (signal.GainTip == sig.GainTip && protocol == Protocol.K0004_3)
                    {
                        dupli = true;
                    }
                    else if (signal.StopGain == sig.StopGain && protocol == Protocol.K0004_4)
                    {
                        dupli = true;
                    }
                    else if (signal.ProfitPrice == sig.ProfitPrice && protocol == Protocol.K0004_5)
                    {
                        dupli = true;
                    }
                    else
                    {
                        if (signal.StopLoss != 0) { sig.StopLoss = signal.StopLoss; sig.StopLossTime = signal.StopLossTime; sig.StopLossBidPrice = signal.StopLossBidPrice; isValid = true; }
                        else if (signal.GainTip != 0) { sig.GainTip = signal.GainTip; sig.GainTipPrice = signal.GainTipPrice; sig.GainTipTime = signal.GainTipTime; isValid = true; }
                        else if (signal.StopGain != 0) { sig.StopGain = signal.StopGain; sig.StopGainPrice = signal.StopGainPrice; sig.StopGainTime = signal.StopGainTime; isValid = true; }
                        else if (signal.ProfitPrice > 0) { sig.Profit = signal.Profit; sig.ProfitPrice = signal.ProfitPrice; sig.ProfitTime = signal.ProfitTime; isValid = true;
                               DataProvider provider = DataService.GetProviderBySymbol(signal.Symbol);
                               if (provider != null && !provider.DataCache.SignalUnits[provider.CurrentTInterval].Contains(sig))
                               { provider.DataCache.SignalUnits[provider.CurrentTInterval].Add(sig); }
                        }
                        AppContext.SignalDatas[i] = sig;
                        LogUtil.Info(" AppContext.SignalDatas[i]  " + i +"  "+AppContext.SignalDatas[i]);
                    }
                    LogUtil.Info(" dupli ==============  " + dupli);
                    break;
                }
                if (i == AppContext.SignalDatas.Count - 1 && !dupli)
                {
                    isValid = true;
                }
            }

            if (!dupli)
            {
                if (protocol == Protocol.K0004_1)
                    AppContext.SignalDatas.Add(signal);

                if (isValid)
                {
                    Dictionary<Protocol, Signal> protocolSignal = new Dictionary<Protocol, Signal>();
                    protocolSignal.Add(protocol, signal);
                    MsgUpdatedDelegate d = null;
                    if (protocol != Protocol.K0004_5)
                    {
                        d = new MsgUpdatedDelegate(ProviderUpdate);
                        d.Invoke(protocolSignal);
                    }
                    if (protocol != Protocol.K0004_2 && protocol != Protocol.K0004_3)
                    {
                        d = new MsgUpdatedDelegate(SignalListUpdate);
                        signalListView.BeginInvoke(d, protocolSignal);
                    }
                    if (protocol == Protocol.K0004_5 || protocol == Protocol.K0004_1)
                    {
                        d = new MsgUpdatedDelegate(PriceListUpdate);
                        priceListView.BeginInvoke(d, protocolSignal);
                    }
                    if (protocol == Protocol.K0004_5 || protocol == Protocol.K0004_1)
                    {
                        d = new MsgUpdatedDelegate(StatlListUpdate);
                        statListView.BeginInvoke(d, protocolSignal);
                    }
                }
            }
        }