public ImportLeech(IInstrumDA instrumDA, IAccountDA accountDA, IConfig config, ITickHistoryDA tickHistoryDA, IReplicationBL replBL) { _instrumDA = instrumDA; _accountDA = accountDA; _config = config; _tickHistoryDA = tickHistoryDA; _replBL = replBL; _instrum_rid_lid = new Dictionary <int, int>(); _account_rid_lid = new Dictionary <int, int>(); _stoporder_rid_lid = new Dictionary <int, int>(); _order_rid_lid = new Dictionary <int, int>(); _trade_rid_lid = new Dictionary <int, int>(); }
private void CompareAccounts(IEnumerable <Common.Data.Account> r_accounts, IEnumerable <Common.Data.Account> l_accounts, IReplicationBL replBL) { Assert.True(l_accounts.Count() == r_accounts.Count()); var repl_acc = replBL.GetReplications(Common.Data.ReplObjects.Account); foreach (var r_acc in r_accounts) { Assert.True(repl_acc.ContainsKey(r_acc.AccountID)); int l_accID = repl_acc[r_acc.AccountID]; var l_acc = l_accounts.FirstOrDefault(r => r.AccountID == l_accID); Assert.NotNull(l_acc); Assert.True(l_acc.Code == r_acc.Code); Assert.True(l_acc.Name == r_acc.Name); Assert.True(l_acc.AccountType == r_acc.AccountType); Assert.True(l_acc.CommPerc == r_acc.CommPerc); Assert.True(l_acc.IsShortEnable == r_acc.IsShortEnable); } }
private void CompareInstrums(IEnumerable <Common.Data.Instrum> r_instrums, IEnumerable <Common.Data.Instrum> l_instrums, IReplicationBL replBL) { Assert.True(l_instrums.Count() == r_instrums.Count()); var repl_ins = replBL.GetReplications(Common.Data.ReplObjects.Instrum); foreach (var r_ins in r_instrums) { Assert.True(repl_ins.ContainsKey(r_ins.InsID)); int l_insID = repl_ins[r_ins.InsID]; var l_ins = l_instrums.FirstOrDefault(r => r.InsID == l_insID); Assert.NotNull(l_ins); Assert.True(l_ins.Ticker == r_ins.Ticker); Assert.True(l_ins.ShortName == r_ins.ShortName); Assert.True(l_ins.Name == r_ins.Name); Assert.True(l_ins.Decimals == r_ins.Decimals); Assert.True(l_ins.LotSize == r_ins.LotSize); Assert.True(l_ins.PriceStep == r_ins.PriceStep); } }
private void CompareHoldings(IEnumerable <Holding> r_holdings, IEnumerable <Holding> l_holdings, IReplicationBL replBL) { Assert.True(r_holdings.Count() == l_holdings.Count()); var repl_ins = replBL.GetReplications(ReplObjects.Instrum); var repl_acc = replBL.GetReplications(ReplObjects.Account); // сначала просматриваем все remote-записи // для каждой должна найтись одна локальная с тем же инструментом и кол-вом foreach (var r_hold in r_holdings) { int l_accID = repl_acc[r_hold.AccountID]; int l_insID = repl_ins[r_hold.InsID]; var l_holds = l_holdings.Where(r => r.AccountID == l_accID && r.InsID == l_insID); Assert.True(l_holds.Count() == 1); var l_hold = l_holds.ElementAt(0); Assert.True(l_hold.LotCount == r_hold.LotCount); } // теперь просматриваем все ловальные // на каждую должна найтись одна remote-запись с тем же инструментом и кол-вом foreach (var l_hold in l_holdings) { int r_accID = repl_acc.FirstOrDefault(r => r.Value == l_hold.AccountID).Key; int r_insID = repl_ins.FirstOrDefault(r => r.Value == l_hold.InsID).Key; var r_holds = r_holdings.Where(r => r.AccountID == r_accID && r.InsID == r_insID); Assert.True(r_holds.Count() == 1); var r_hold = r_holds.ElementAt(0); Assert.True(r_hold.LotCount == l_hold.LotCount); } }
private void CompareTrades(IEnumerable <Trade> r_trades, IEnumerable <Trade> l_trades, IReplicationBL replBL) { Assert.True(l_trades.Count() == r_trades.Count()); var repl = replBL.GetReplications(Common.Data.ReplObjects.Trade); var repl_acc = replBL.GetReplications(Common.Data.ReplObjects.Account); var repl_ins = replBL.GetReplications(Common.Data.ReplObjects.Instrum); var repl_ord = replBL.GetReplications(Common.Data.ReplObjects.Order); foreach (var r_trd in r_trades) { Assert.True(repl.ContainsKey(r_trd.TradeID)); int l_trdID = repl[r_trd.TradeID]; var l_trd = l_trades.FirstOrDefault(r => r.TradeID == l_trdID); Assert.NotNull(l_trd); Assert.True(l_trd.AccountID == repl_acc[r_trd.AccountID]); Assert.True(l_trd.BuySell == r_trd.BuySell); Assert.True(l_trd.Comm == r_trd.Comm); Assert.True(l_trd.InsID == repl_ins[r_trd.InsID]); Assert.True(l_trd.LotCount == r_trd.LotCount); int l_orderID = repl_ord[r_trd.OrderID]; Assert.True(l_trd.OrderID == l_orderID); Assert.True(l_trd.Price == r_trd.Price); Assert.True(l_trd.Time == r_trd.Time); Assert.True(l_trd.TradeID == l_trdID); Assert.True(l_trd.TradeNo == r_trd.TradeNo); } }
private void CompareStopOrders(IEnumerable <StopOrder> r_stopOrders, IEnumerable <StopOrder> l_stopOrders, IReplicationBL replBL) { Assert.True(l_stopOrders.Count() == r_stopOrders.Count()); var repl = replBL.GetReplications(Common.Data.ReplObjects.StopOrder); var repl_acc = replBL.GetReplications(Common.Data.ReplObjects.Account); var repl_ins = replBL.GetReplications(Common.Data.ReplObjects.Instrum); foreach (var r_so in r_stopOrders) { Assert.True(repl.ContainsKey(r_so.StopOrderID)); int l_soID = repl[r_so.StopOrderID]; var l_so = l_stopOrders.FirstOrDefault(r => r.StopOrderID == l_soID); Assert.NotNull(l_so); Assert.True(l_so.AccountID == repl_acc[r_so.AccountID]); Assert.True(l_so.AlertPrice == r_so.AlertPrice); Assert.True(l_so.BuySell == r_so.BuySell); Assert.True(l_so.CompleteTime == r_so.CompleteTime); Assert.True(l_so.EndTime == r_so.EndTime); Assert.True(l_so.InsID == repl_ins[r_so.InsID]); Assert.True(l_so.LotCount == r_so.LotCount); Assert.True(l_so.Price == r_so.Price); Assert.True(l_so.Status == r_so.Status); Assert.True(l_so.StopOrderID == l_soID); Assert.True(l_so.StopOrderNo == r_so.StopOrderNo); Assert.True(l_so.StopType == r_so.StopType); Assert.True(l_so.Time == r_so.Time); } }
private void CompareOrders(IEnumerable <Order> r_orders, IEnumerable <Order> l_orders, IReplicationBL replBL) { Assert.True(l_orders.Count() == r_orders.Count()); var repl = replBL.GetReplications(Common.Data.ReplObjects.Order); var repl_acc = replBL.GetReplications(Common.Data.ReplObjects.Account); var repl_ins = replBL.GetReplications(Common.Data.ReplObjects.Instrum); var repl_so = replBL.GetReplications(Common.Data.ReplObjects.StopOrder); foreach (var r_ord in r_orders) { Assert.True(repl.ContainsKey(r_ord.OrderID)); int l_ordID = repl[r_ord.OrderID]; var l_ord = l_orders.FirstOrDefault(r => r.OrderID == l_ordID); Assert.NotNull(l_ord); Assert.True(l_ord.AccountID == repl_acc[r_ord.AccountID]); Assert.True(l_ord.BuySell == r_ord.BuySell); Assert.True(l_ord.InsID == repl_ins[r_ord.InsID]); Assert.True(l_ord.LotCount == r_ord.LotCount); Assert.True(l_ord.OrderID == l_ordID); Assert.True(l_ord.OrderNo == r_ord.OrderNo); Assert.True(l_ord.Price == r_ord.Price); Assert.True(l_ord.Status == r_ord.Status); int?l_stopOrderID = null; if (r_ord.StopOrderID != null) { l_stopOrderID = repl_so[r_ord.StopOrderID.Value]; } Assert.True(l_ord.StopOrderID == l_stopOrderID); Assert.True(l_ord.Time == r_ord.Time); } }