コード例 #1
0
        /// <summary>
        /// Metoda przygotowuje baze danych do pracy
        /// W razie potrzeby pobiera z serwera informacje o dostepnych indeksach
        /// oraz aktualizuje informacje historyczne dla pierwszego indeksu
        /// </summary>
        private void DatabaseSetup()
        {
            DatabaseController dbController = new DatabaseController();

            if (!dbController.stockIndexes.Any())
            {
                dbController.FillStockIndexesTable();
            }

            stockIndexesList = dbController.stockIndexes.OrderBy(b => b.symbol).ToList();
            if (!dbController.historicalIndexes.Where(x => x.symbol == stockIndexesList.First().symbol).Any())
            {
                dbController.FillHistoricalTable(stockIndexesList.First().symbol);
            }
            myStockIndexesList = dbController.myStocks.OrderBy(x => x.symbol).ToList();
        }
コード例 #2
0
        /// <summary>
        /// Metoda odswieza dane o historycznych zarobkach zakupionych indeksow
        /// </summary>
        /// <param name="myStock">transakcja dla ktorej odswiezyc dane</param>
        private void UpdateMyStockProfit(MyStock myStock)
        {
            DatabaseController databaseController = new DatabaseController();
            DateTime           newestProfit;

            if (databaseController.myStockProfits.Where(x => x.transactionID == myStock.transactionID).Any())
            {
                newestProfit = databaseController.myStockProfits
                               .Where(x => x.symbol == myStock.symbol)
                               .OrderByDescending(x => x.date)
                               .FirstOrDefault().date;
            }
            else
            {
                newestProfit = myStock.transactionDate;
            }

            bool NeedToUpdateHistorical = !databaseController.historicalIndexes
                                          .Where(x => x.symbol == myStock.symbol)
                                          .Where(x => x.date.Date == DateTime.Today.AddDays(-1))
                                          .Any();

            if (NeedToUpdateHistorical && myStock.transactionDate < DateTime.Today)
            {
                databaseController.FillHistoricalTable(myStock.symbol);
            }

            var list = databaseController.historicalIndexes
                       .Where(x => x.symbol == myStock.symbol)
                       .Where(x => x.date > newestProfit)
                       .OrderByDescending(x => x.date)
                       .ToList();

            foreach (var l in list)
            {
                databaseController.myStockProfits.Add(new MyStockProfit
                {
                    date          = l.date,
                    profit        = l.price - myStock.indexPrice,
                    transactionID = myStock.transactionID,
                    symbol        = myStock.symbol
                });
                databaseController.SaveChanges();
            }
        }