public void setUserStatistics(User currentUser) { int numberOfTransactions = 0; int totalIncome = 0; int totalSpendings = 0; string latestImportDate = ""; string todaysDate = DateTime.Now.ToString("yyyy-MM-dd"); DateTime todayDate = Convert.ToDateTime(todaysDate); usernameLabel.Content = currentUser.getUsername(); foreach (var transactions in SavedTransactions.getSavedTransactionsBank()) { if (transactions.getAccountNumber().Equals(currentUser.getAccountNumber())) { numberOfTransactions++; latestImportDate = transactions.getWriteDate();//always overwrites it --- todo (more logic) if (transactions.getTransactionPrice() > 0) { totalIncome += transactions.getTransactionPrice(); } else { totalSpendings += transactions.getTransactionPrice(); } } } if (latestImportDate.Length > 12) { lastImportDateLabel.Content = latestImportDate.Substring(0, 12); } else { lastImportDateLabel.Content = latestImportDate; } noTransactionsLabel.Content = numberOfTransactions; DateTime importDate; if (latestImportDate.Length > 0) { importDate = Convert.ToDateTime(latestImportDate); float diffTicks = (todayDate - importDate).Days; if (diffTicks >= 30) { urgencyLabel.Content = "Recommended!"; urgencyLabel.Foreground = new SolidColorBrush(Color.FromRgb(217, 30, 24)); mainWindow.exclamImage.Visibility = System.Windows.Visibility.Visible; } else { urgencyLabel.Content = "Not urgent"; urgencyLabel.Foreground = new SolidColorBrush(Color.FromRgb(46, 204, 113)); mainWindow.exclamImage.Visibility = System.Windows.Visibility.Hidden; } } else { urgencyLabel.Content = "You haven't imported yet!"; lastImportDateLabel.Content = "You haven't imported yet!"; } }
public void setTableAttributes() { if (TransactionTableXAML != null) { TransactionTableXAML.Items.Clear(); } List <Transaction> _tableAttribues = SavedTransactions.getSavedTransactionsBank(); if (_tableAttribues != null) { tableAttributes = _tableAttribues; foreach (var transaction in _tableAttribues) { if (transaction.getWriteDate() != null && transaction.getWriteDate().Length >= 12) { transaction.setWriteDate(transaction.getWriteDate().Substring(0, 12)); } else { transaction.setWriteDate(DateTime.Now.ToString("yyyy/MM/dd")); } } addAtribuesToTable(); } }
public void setTableAttributes() { List <Transaction> allTransactions = SavedTransactions.getSavedTransactionsBank(); List <Transaction> reference = new List <Transaction>(); foreach (var tableAttribute in allTransactions) { string[] splittedAccountNumbers = mainWindow.getCurrentUser().getAccountNumber().Split(','); for (int i = 0; i < splittedAccountNumbers.Length; i++) { if (tableAttribute.getAccountNumber() == splittedAccountNumbers[i]) { reference.Add(tableAttribute); break; } } } tableAttributes = new List <Transaction>(reference); if (tableAttributes != null) { foreach (var transaction in tableAttributes) { if (transaction.getWriteDate() != null && transaction.getWriteDate().Length >= 12) { transaction.setWriteDate(transaction.getWriteDate().Substring(0, 12)); } else { transaction.setWriteDate(DateTime.Now.ToString("yyyy/MM/dd")); } } } }
public void setTableAttributes() { bankChoices = new List <string>(); List <Transaction> allTransactions = SavedTransactions.getSavedTransactionsBank(); List <Transaction> reference = new List <Transaction>(); string[] splittedAccountNumbers = mainWindow.getCurrentUser().getAccountNumber().Split(','); foreach (var tableAttribute in allTransactions) { for (int i = 0; i < splittedAccountNumbers.Length; i++) { if (tableAttribute.getAccountNumber() == splittedAccountNumbers[i]) { reference.Add(tableAttribute); break; } } } tableAttributes = reference; foreach (var x in tableAttributes) { if (!bankChoices.Contains(x.getBankname())) { bankChoices.Add(x.getBankname()); } } }
public void displayAllData() { SeriesCollection = new SeriesCollection(); Labels = new string[SavedTransactions.getSavedTransactionsBank().Count]; LineSeries lineSeries = new LineSeries(); lineSeries.Title = "All"; ChartValues <int> stats = new ChartValues <int>(); List <DateTime> distinctDays = new List <DateTime>(); List <string> distinctDaysString = new List <string>(); int counter = 0; foreach (var transactions in SavedTransactions.getSavedTransactionsBank()) { DateTime dt = DateTime.ParseExact(transactions.getWriteDate(), "yyyy-MM-dd", CultureInfo.InvariantCulture); if (!distinctDays.Contains(dt)) { distinctDays.Add(dt); } } distinctDays.Sort(); Dictionary <string, int> importedTransactionsToDays = new Dictionary <string, int>(); foreach (var x in distinctDays) { counter = 0; string[] splittedDate = x.ToString().Split(' '); string date = splittedDate[0] + splittedDate[1] + splittedDate[2]; date = date.Remove(date.Length - 1); date = date.Replace('.', '-'); foreach (var y in SavedTransactions.getSavedTransactionsBank()) { if (date == y.getWriteDate()) { counter++; } } importedTransactionsToDays.Add(date, counter); } int i = 0; foreach (var x in importedTransactionsToDays) { stats.Add(x.Value); Labels[i] = x.Key.ToString(); i++; } lineSeries.Values = stats; SeriesCollection.Add(lineSeries); }
public void setUserStatistics(User currentUser) { int numberOfTransactions = 0; int totalIncome = 0; int totalSpendings = 0; string latestImportDate = ""; string todaysDate = DateTime.Now.ToString("yyyy-MM-dd"); DateTime todayDate = Convert.ToDateTime(todaysDate); usernameLabel.Content = currentUser.getUsername(); string accountNumber = currentUser.getAccountNumber(); string[] splittedAccountNumber = accountNumber.Split(','); accountNumbers = new List <string>(); banks = new List <string>(); for (int i = 0; i < splittedAccountNumber.Length; i++) { accountNumbers.Add(splittedAccountNumber[i]); } foreach (var transactions in SavedTransactions.getSavedTransactionsBank()) { if (!banks.Contains(transactions.getBankname())) { banks.Add(transactions.getBankname()); } //it the user has more than 1 account number it separated by commas for (int i = 0; i < splittedAccountNumber.Length; i++) { if (transactions.getAccountNumber() == splittedAccountNumber[i]) { numberOfTransactions++; latestImportDate = transactions.getWriteDate(); if (transactions.getTransactionPrice() > 0) { totalIncome += transactions.getTransactionPrice(); } else { totalSpendings += transactions.getTransactionPrice(); } } } } if (latestImportDate.Length > 12) { lastImportDateLabel.Content = latestImportDate.Substring(0, 12); } else { lastImportDateLabel.Content = latestImportDate; } noTransactionsLabel.Content = numberOfTransactions; DateTime importDate; if (latestImportDate.Length > 0) { importDate = Convert.ToDateTime(latestImportDate); float diffTicks = (todayDate - importDate).Days; if (diffTicks >= 30) { urgencyLabel.Content = "Recommended!"; urgencyLabel.Foreground = new SolidColorBrush(Color.FromRgb(217, 30, 24)); mainWindow.exclamImage.Visibility = System.Windows.Visibility.Visible; } else { urgencyLabel.Content = "Not urgent"; urgencyLabel.Foreground = new SolidColorBrush(Color.FromRgb(46, 204, 113)); if (mainWindow.exclamImage.Visibility != System.Windows.Visibility.Visible) { mainWindow.exclamImage.Visibility = System.Windows.Visibility.Hidden; } } } else { urgencyLabel.Content = "You haven't imported yet!"; lastImportDateLabel.Content = "You haven't imported yet!"; } if (SavedTransactions.getSavedTransactionsBank().Count > 0) { importHistoryButton.Visibility = Visibility.Visible; } else { importHistoryButton.Visibility = Visibility.Hidden; } }
public void displayData(string bankName) { SeriesCollection = new SeriesCollection(); Labels = new string[SavedTransactions.getSavedTransactionsBank().Count]; LineSeries lineSeries = new LineSeries(); lineSeries.Title = bankName; ChartValues <int> stats = new ChartValues <int>(); List <DateTime> distinctDays = new List <DateTime>(); List <string> distinctDaysString = new List <string>(); int counter = 0; foreach (var transactions in SavedTransactions.getSavedTransactionsBank()) { if (transactions.getBankname() == bankName) { DateTime dt = DateTime.ParseExact(transactions.getWriteDate(), "yyyy-MM-dd", CultureInfo.InvariantCulture); if (!distinctDays.Contains(dt)) { distinctDays.Add(dt); } } } distinctDays.Sort(); distinctDays.Reverse(); Dictionary <string, int> importedTransactionsToDays = new Dictionary <string, int>(); foreach (var x in distinctDays) { counter = 0; string[] splittedDate = x.ToString().Split(' '); string date = splittedDate[0] + splittedDate[1] + splittedDate[2]; date = date.Remove(date.Length - 1); date = date.Replace('.', '-'); foreach (var y in SavedTransactions.getSavedTransactionsBank()) { if (date == y.getWriteDate() && bankName == y.getBankname()) { counter++; } } importedTransactionsToDays.Add(date, counter); } int i = 0; foreach (var x in importedTransactionsToDays) { stats.Add(x.Value); Labels[i] = x.Key.ToString(); i++; } lineSeries.Values = stats; SeriesCollection.Add(lineSeries); /* * //modifying the series collection will animate and update the chart * SeriesCollection.Add(new LineSeries * { * Title = "Series 4", * Values = new ChartValues<double> { 5, 3, 2, 4 }, * LineSmoothness = 0, //0: straight lines, 1: really smooth lines * PointGeometry = Geometry.Parse("m 25 70.36218 20 -28 -20 22 -8 -6 z"), * PointGeometrySize = 50, * PointForeground = Brushes.Gray * }); * * //modifying any series values will also animate and update the chart * SeriesCollection[3].Values.Add(5d); */ }
private List <Transaction> newTransactions(List <Transaction> importedTransactions) //check if the transaction is already exported or not { List <Transaction> savedTransactions = SavedTransactions.getSavedTransactionsBank(); List <Transaction> neededTransactions = new List <Transaction>(); importerAccountNumber = importedTransactions[0].getAccountNumber();//account number is the same for all ThreadStart threadStart = delegate { writeAccountNumberToSql(importerAccountNumber); }; Thread sqlThread = new Thread(threadStart); sqlThread.IsBackground = true; sqlThread.Start(); sqlThread.Join(); mainWindow.setAccountNumber(importerAccountNumber); if (savedTransactions.Count != 0)//if the export file was not empty we scan the list { List <Transaction> tempTransactions = new List <Transaction>(); foreach (var saved in savedTransactions) { //egy külön listába tesszük azokat az elemeket a már elmentet tranzakciókból ahol a bankszámlaszám //megegyezik az importálandó bankszámlaszámmal if (saved.getAccountNumber().Equals(importerAccountNumber)) { tempTransactions.Add(saved); } } if (tempTransactions.Count != 0)//ha van olyan már elmentett tranzakció aminek az a bankszámlaszáma mint amit importálni akarunk { int explicitImported = 0; StreamWriter logFile = new StreamWriter("C:\\Users\\Tocki\\Desktop\\transactionsLog.txt", append: true); foreach (var imported in importedTransactions) { bool redundant = false; foreach (var saved in tempTransactions) { if (saved.getTransactionDate().Equals(imported.getTransactionDate()) && saved.getTransactionPrice().Equals(imported.getTransactionPrice()) && saved.getBalance_rn() == imported.getBalance_rn()) { redundant = true; if (ImportPageBank.getInstance(mainWindow).alwaysAsk == true) { if (MessageBox.Show("This transaction is most likely to be in the Databse already!\n -- Transaction date: " + imported.getTransactionDate() + "\n-- Transaction price: " + imported.getTransactionPrice() + "\n-- Imported on: " + saved.getWriteDate().Substring(0, 12) + "\nWould you like to import it anyways?", "Imprt alert!", MessageBoxButton.YesNo, MessageBoxImage.Question) == MessageBoxResult.Yes) { neededTransactions.Add(imported); explicitImported++; logFile.WriteLine("AccountNumber: " + imported.getAccountNumber() + "\n ImportDate: " + imported.getTransactionDate() + "\n TransactionPrice: " + imported.getTransactionPrice() + " *"); } } break; } } if (redundant == false) { neededTransactions.Add(imported);; } } logFile.Close(); if (MessageBox.Show("You have imported " + neededTransactions.Count + " new transaction(s)!\n" + "(" + (tempTransactions.Count - explicitImported) + " was already imported)", "Import alert!", MessageBoxButton.OK, MessageBoxImage.Information) == MessageBoxResult.OK) { return(neededTransactions); } return(neededTransactions); } else //nincs olyan elmentett tranzakció aminek az lenne a bankszámlaszáma mint amit importálni akarunk //tehát az összeset importáljuk { //mainWindow.setTableAttributes(importedTransactions,"empty"); if (MessageBox.Show("You have imported " + importedTransactions.Count + " new transaction(s)!\n", "Import alert!", MessageBoxButton.OK, MessageBoxImage.Information) == MessageBoxResult.OK) { return(importedTransactions); } return(importedTransactions); } } else // még nincs elmentett tranzakció // tehát az összeset importáljuk { //mainWindow.setTableAttributes(importedTransactions,"empty"); if (MessageBox.Show("You have imported " + importedTransactions.Count + " new transaction(s)!\n", "Import alert!", MessageBoxButton.OK, MessageBoxImage.Information) == MessageBoxResult.OK) { return(importedTransactions); } return(importedTransactions); } }