Пример #1
0
        public void Flush()
        {
            if (isStop)
            {
                return;
            }
            isStop = true;
            Thread.Sleep(30 * 1000);
            model.Flush();
            FlushSpotOrder fso = new FlushSpotOrder();

            fso.Flush((sb, nk) =>
            {
                foreach (var v in match.Container.Orders)
                {
                    foreach (var s in v.SellOrders)
                    {
                        fso.FlushTempOrder(sb, s, nk);
                    }
                    foreach (var b in v.BuyOrders)
                    {
                        fso.FlushTempOrder(sb, b, nk);
                    }
                }
            });
            Singleton <TextLog> .Instance.Info("虚拟币交易系统成功停止");
        }
Пример #2
0
        public void RestoreOrders()
        {
            FlushSpotOrder fso = new FlushSpotOrder();
            var            ok  = fso.GetOldGeneration();

            if (ok == null)
            {
                return;
            }
            string sql = string.Format(@"select * from tempspotorders where id in 
(select id from tempspotorders where detail='{0}' except select id from spotorders)", (int)ok);

            using (var db = new OptionDbCtx())
            {
                var q = db.Database.SqlQuery <SpotOrder>(sql);
                foreach (var v in q)
                {
                    var coin   = Model.Coins.Where(a => a.Id == v.CoinId).FirstOrDefault();
                    var trader = Model.Traders.Where(a => a.Id == v.TraderId).FirstOrDefault();
                    var so     = new SpotOrder
                    {
                        Id            = v.Id, CoinId = v.CoinId, Count = v.Count, Detail = v.Detail,
                        Direction     = v.Direction, DoneCount = v.DoneCount, DonePrice = v.DonePrice, IsBySystem = v.IsBySystem,
                        OrderPolicy   = v.OrderPolicy, OrderTime = v.OrderTime, Price = v.Price, ReportCount = v.ReportCount,
                        RequestStatus = v.RequestStatus, State = v.State, TotalDoneCount = v.TotalDoneCount, TotalDoneSum = v.TotalDoneSum,
                        TraderId      = v.TraderId, Coin = coin, Trader = trader
                    };
                    SpotOrders.Add(so);
                }
            }
        }