/// <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(); }
/// <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(); } }