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);
        }
Exemple #2
0
        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})");
            }
        }
Exemple #3
0
        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);
        }
Exemple #4
0
        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);
        }