public List <TradeCommandSecurity> Get(int commandId) { var dbCommand = _dbHelper.GetStoredProcCommand(SP_Get); _dbHelper.AddInParameter(dbCommand, "@CommandId", System.Data.DbType.Int32, commandId); List <TradeCommandSecurity> items = new List <TradeCommandSecurity>(); var reader = _dbHelper.ExecuteReader(dbCommand); if (reader.HasRows) { while (reader.Read()) { TradeCommandSecurity item = new TradeCommandSecurity(); item.CommandId = (int)reader["CommandId"]; item.SecuCode = (string)reader["SecuCode"]; item.SecuType = (SecurityType)reader["SecuType"]; item.CommandAmount = (int)reader["CommandAmount"]; item.EDirection = (EntrustDirection)reader["CommandDirection"]; item.CommandPrice = (double)(decimal)reader["CommandPrice"]; item.CurrentPrice = (double)(decimal)reader["CurrentPrice"]; item.EntrustStatus = (EntrustStatus)reader["EntrustStatus"]; items.Add(item); } } reader.Close(); _dbHelper.Close(dbCommand); return(items); }
private List <TradeCommandSecurity> GetSelectCommandSecurities(OpenPositionItem openItem, int commandId, List <OpenPositionSecurityItem> selectedSecuItems) { List <TradeCommandSecurity> cmdSecuItems = new List <TradeCommandSecurity>(); foreach (var item in selectedSecuItems) { if (item.Selection && item.MonitorId == openItem.MonitorId) { TradeCommandSecurity secuItem = new TradeCommandSecurity { CommandId = commandId, SecuCode = item.SecuCode, SecuType = item.SecuType, CommandAmount = item.EntrustAmount, CommandPrice = item.CommandPrice, CurrentPrice = item.LastPrice, EntrustStatus = EntrustStatus.NoExecuted }; if (secuItem.SecuType == SecurityType.Stock) { secuItem.EDirection = EntrustDirection.BuySpot; } else { secuItem.EDirection = EntrustDirection.SellOpen; } cmdSecuItems.Add(secuItem); } } return(cmdSecuItems); }
private List <TradeCommandSecurity> GetSelectCommandSecurities(int instanceId, List <ClosePositionSecurityItem> closeSecuItems) { List <TradeCommandSecurity> cmdSecuItems = new List <TradeCommandSecurity>(); //var tempStockItems = _tempstockdao.Get(closePositionItem.TemplateId); var selectedSecuItems = closeSecuItems.Where(p => p.InstanceId.Equals(instanceId)).ToList(); foreach (var item in selectedSecuItems) { TradeCommandSecurity secuItem = new TradeCommandSecurity { SecuCode = item.SecuCode, SecuType = item.SecuType, CommandAmount = item.EntrustAmount, CommandPrice = item.CommandPrice, CurrentPrice = item.LastPrice, EDirection = item.EDirection, EntrustStatus = EntrustStatus.NoExecuted }; //var tempStockItem = tempStockItems.Find(p => p.SecuCode.Equals(secuItem.SecuCode)); //if (tempStockItem != null) //{ // secuItem.WeightAmount = tempStockItem.Amount; //} cmdSecuItems.Add(secuItem); } return(cmdSecuItems); }
public int Update(TradeCommandSecurity secItem) { var dbCommand = _dbHelper.GetStoredProcCommand(SP_Modify); _dbHelper.AddInParameter(dbCommand, "@CommandId", System.Data.DbType.Int32, secItem.CommandId); _dbHelper.AddInParameter(dbCommand, "@SecuCode", System.Data.DbType.String, secItem.SecuCode); _dbHelper.AddInParameter(dbCommand, "@SecuType", System.Data.DbType.Int32, (int)secItem.SecuType); _dbHelper.AddInParameter(dbCommand, "@CommandAmount", System.Data.DbType.Int32, secItem.CommandAmount); _dbHelper.AddInParameter(dbCommand, "@CommandDirection", System.Data.DbType.Int32, (int)secItem.EDirection); _dbHelper.AddInParameter(dbCommand, "@CommandPrice", System.Data.DbType.Double, secItem.CommandPrice); return(_dbHelper.ExecuteNonQuery(dbCommand)); }
public ArchiveTradeCommandSecurity(TradeCommandSecurity tradeCommandSecurity) : base(tradeCommandSecurity) { }
private int UpdateItem(CommandManagementItem cmdMngItem, List <ModifySecurityItem> modifiedSecuItems, DateTime startDate, DateTime endDate, string notes) { //var oldInstance = _tradeInstanceBLL.GetInstance(cmdMngItem.InstanceId); //if (oldInstance == null || oldInstance.InstanceId != cmdMngItem.InstanceId) //{ // return -1; //} //TODO: add the StartDate, EndDate TradeCommand cmdItem = new TradeCommand { CommandId = cmdMngItem.CommandId, ECommandStatus = Model.EnumType.CommandStatus.Modified, DStartDate = startDate, DEndDate = endDate, ModifiedDate = DateTime.Now, Notes = !string.IsNullOrEmpty(notes)?notes: cmdMngItem.Notes, }; List <TradeCommandSecurity> tradeModifiedSecuItems = new List <TradeCommandSecurity>(); List <TradeCommandSecurity> tradeCancelSecuItems = new List <TradeCommandSecurity>(); var selectedModifiedSecuItems = modifiedSecuItems.Where(p => p.Selection).ToList(); foreach (var secuItem in selectedModifiedSecuItems) { TradeCommandSecurity tradeSecuItem = new TradeCommandSecurity { CommandId = cmdItem.CommandId, SecuCode = secuItem.SecuCode, SecuType = secuItem.SecuType, EDirection = secuItem.EDirection, CommandAmount = secuItem.NewCommandAmount, CommandPrice = secuItem.NewCommandPrice, CurrentPrice = secuItem.LastPrice, }; if (secuItem.Selection) { tradeModifiedSecuItems.Add(tradeSecuItem); } else { tradeCancelSecuItems.Add(tradeSecuItem); } } int result = _tradeCommandBLL.Update(cmdItem, tradeModifiedSecuItems, tradeCancelSecuItems); if (result > 0) { //TODO: add more parameters TradeInstance tradeInstance = new TradeInstance { InstanceId = cmdMngItem.InstanceId, InstanceCode = cmdMngItem.InstanceCode, FuturesContract = cmdMngItem.BearContract, //MonitorUnitId = oldInstance.MonitorUnitId, //StockDirection = oldInstance.StockDirection, //FuturesDirection = oldInstance.FuturesDirection, //FuturesPriceType = oldInstance.FuturesPriceType, }; List <TradeInstanceSecurity> modifiedInstSecuItems = new List <TradeInstanceSecurity>(); List <TradeInstanceSecurity> cancelInstSecuItems = new List <TradeInstanceSecurity>(); foreach (var secuItem in selectedModifiedSecuItems) { int modifiedAmount = secuItem.NewCommandAmount - secuItem.OriginCommandAmount; TradeInstanceSecurity tradeInstSecuItem = new TradeInstanceSecurity { SecuCode = secuItem.SecuCode, SecuType = secuItem.SecuType, InstructionPreBuy = 0, InstructionPreSell = 0, }; //TODO::::::how to handle the case??? switch (secuItem.EDirection) { case Model.EnumType.EntrustDirection.BuySpot: { tradeInstSecuItem.InstructionPreBuy = modifiedAmount; } break; case Model.EnumType.EntrustDirection.SellSpot: { tradeInstSecuItem.InstructionPreSell = modifiedAmount; } break; case Model.EnumType.EntrustDirection.SellOpen: { tradeInstSecuItem.InstructionPreSell = modifiedAmount; } break; case Model.EnumType.EntrustDirection.BuyClose: { tradeInstSecuItem.InstructionPreBuy = modifiedAmount; } break; } if (secuItem.Selection) { modifiedInstSecuItems.Add(tradeInstSecuItem); } else { cancelInstSecuItems.Add(tradeInstSecuItem); } } result = _tradeInstanceBLL.Update(tradeInstance, modifiedInstSecuItems, cancelInstSecuItems); } return(result); }