private IDictionary <int, BuyingTransactionDto> GetOpenPositions(List <StockDto> stocks) { const string queryString = "SELECT T.[ID], T.[OrderCosts], T.[OrderDate], T.[PricePerUnit], T.[Units],T.[Stock_ID] FROM [TransactionManagement].[dbo].[Statistics] S LEFT JOIN [TransactionManagement].[dbo].[Transactions] T ON S.[TransactionStartID] = T.[ID] WHERE [TransactionEndID] IS NULL ORDER BY T.[OrderDate] ASC"; IDictionary <int, BuyingTransactionDto> buys = new Dictionary <int, BuyingTransactionDto>(); //Load from db using (var connection = new SqlConnection(SourceConnectionString)) { connection.Open(); using (var command = new SqlCommand(queryString, connection)) { using (var reader = command.ExecuteReader()) { while (reader.Read()) { var item = new BuyingTransactionDto(); item.OldId = int.Parse(reader["ID"].ToString()); item.Shares = decimal.Parse(reader["Units"].ToString()); item.PricePerShare = decimal.Parse(reader["PricePerUnit"].ToString()); item.OrderDate = DateTime.Parse(reader["OrderDate"].ToString()); item.OrderCosts = decimal.Parse(reader["OrderCosts"].ToString()); item.Stock = stocks.FirstOrDefault(s => s.OldId == int.Parse(reader["Stock_ID"].ToString())); buys.Add(item.OldId, item); } } } } return(buys); }
private void ImportBuying(BuyingTransactionDto item) { //Import var cmd = new TransactionBuyCommand( item.Id, -1, item.OrderDate, item.Shares, item.PricePerShare, item.OrderCosts, item.Description, item.Tag, item.Image, item.InitialSL, item.InitialTP, item.Stock.Id, item.Strategy.Id); CommandDispatcher.Execute(cmd); //Image if (item.Image != null) { LoggingService.Info($"Buy {item.Stock.Name} ({item.Shares} x {item.PricePerShare}) + IMAGE"); } else { LoggingService.Info($"Buy {item.Stock.Name} ({item.Shares} x {item.PricePerShare})"); } }
private ITransactionDto ImportBuying(IDataRecord reader) { var item = new BuyingTransactionDto(); item.OldId = int.Parse(reader["ID"].ToString()); item.Shares = decimal.Parse(reader["Units"].ToString()); item.Description = reader["Description"].ToString(); item.OrderCosts = decimal.Parse(reader["OrderCosts"].ToString()); item.OrderDate = DateTime.Parse(reader["OrderDate"].ToString()); item.OriginalVersion = -1; item.PricePerShare = decimal.Parse(reader["PricePerUnit"].ToString()); item.Stock = StockItems[int.Parse(reader["Stock_ID"].ToString())]; item.Tag = reader["Tag"].ToString(); item.Image = ImportImage(item.Id, item.OldId); item.InitialSL = string.IsNullOrEmpty(reader["InitialSL"].ToString()) ? decimal.Zero : decimal.Parse(reader["InitialSL"].ToString()); item.InitialTP = string.IsNullOrEmpty(reader["InitialTP"].ToString()) ? decimal.Zero : decimal.Parse(reader["InitialTP"].ToString()); item.Strategy = StrategyItems[int.Parse(reader["Strategy_ID"].ToString())]; //Import var cmd = new TransactionBuyCommand( item.Id, -1, item.OrderDate, item.Shares, item.PricePerShare, item.OrderCosts, item.Description, item.Tag, item.Image, item.InitialSL, item.InitialTP, item.Stock.Id, item.Strategy.Id); CommandDispatcher.Execute(cmd); //Image if (item.Image != null) { LoggingService.Info($"Buy {item.Stock.Name} ({item.Shares} x {item.PricePerShare}) + IMAGE"); } else { LoggingService.Info($"Buy {item.Stock.Name} ({item.Shares} x {item.PricePerShare})"); } return(item); }
private BuyingTransactionDto GetBuying(IDataRecord reader) { var item = new BuyingTransactionDto(); item.OldId = int.Parse(reader["ID"].ToString()); item.Shares = decimal.Parse(reader["Units"].ToString()); item.Description = reader["Description"].ToString(); item.OrderCosts = decimal.Parse(reader["OrderCosts"].ToString()); item.OrderDate = DateTime.Parse(reader["OrderDate"].ToString()); item.OriginalVersion = -1; item.PricePerShare = decimal.Parse(reader["PricePerUnit"].ToString()); item.Stock = GetStock(int.Parse(reader["Stock_ID"].ToString())); item.Tag = reader["Tag"].ToString(); item.Image = ImportImage(item.Id, item.OldId); item.InitialSL = string.IsNullOrEmpty(reader["InitialSL"].ToString()) ? decimal.Zero : decimal.Parse(reader["InitialSL"].ToString()); item.InitialTP = string.IsNullOrEmpty(reader["InitialTP"].ToString()) ? decimal.Zero : decimal.Parse(reader["InitialTP"].ToString()); item.Strategy = StrategyItems.FirstOrDefault(s => s.OldId == int.Parse(reader["Strategy_ID"].ToString())); return(item); }