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("虚拟币交易系统成功停止"); }
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); } } }