public static SavedTransactions getInstance() { if (instance == null) { instance = new SavedTransactions(); } return(instance); }
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.getSavedTransactionsStock()) { string username = currentUser.getUsername(); if (transactions.getImporter() == username) { numberOfTransactions++; latestImportDate = transactions.getWriteDate(); } } noTransactionsLabel.Content = numberOfTransactions; if (latestImportDate.Length >= 12) { lastImportDateLabel.Content = latestImportDate.Substring(0, 12); } else { lastImportDateLabel.Content = latestImportDate; } 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!"; } }
private TransactionMain(MainWindow mainWindow, List <Transaction> tableAttribues, String accountNumber) { this.DataContext = this; InitializeComponent(); if (TransactionTableXAML != null) { TransactionTableXAML.Items.Clear(); } if (tableAttribues != null && tableAttribues != this.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")); } } } else if (tableAttribues == null) { foreach (var transaction in SavedTransactions.getSavedTransactions()) { if (transaction.getWriteDate() != null && transaction.getWriteDate().Length != 12) { transaction.setWriteDate(transaction.getWriteDate().Substring(0, 12)); } else { transaction.setWriteDate(DateTime.Now.ToString("yyyy/MM/dd")); } } } if ((this.tableAttribues != tableAttribues) && (tableAttribues != null)) { this.tableAttribues = tableAttribues; if (accountNumber.Equals("")) { addAtribuesToTable(); //we have imported and saved files in this case //the accountNumber is already matching } else { addAtribuesToTable(accountNumber); } } else { addAtribuesToTable(accountNumber); } }
public void displayAllData() { SeriesCollection = new SeriesCollection(); Labels = new string[SavedTransactions.getSavedTransactionsStock().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.getSavedTransactionsStock()) { 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.getSavedTransactionsStock()) { 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); }
private void importHistoryButton_Click(object sender, RoutedEventArgs e) { List <string> stockNames = new List <string>(); foreach (var x in SavedTransactions.getSavedTransactionsStock()) { if (!stockNames.Contains(x.getStockName())) { stockNames.Add(x.getStockName()); } } ImportStatsChartStock importStatsChart = new ImportStatsChartStock(stockNames); importStatsChart.displayAllData(); mainWindow.MainFrame.Content = importStatsChart; }
public void setTableAttributes() { //Binding is the reason for .ToList() , the count changed - it freezes it is not there List <Stock> allTransactions = SavedTransactions.getSavedTransactionsStock(); List <Stock> reference = new List <Stock>(); stockChoices = new List <string>(); foreach (var tableAttribute in allTransactions) { if (tableAttribute.getImporter() == mainWindow.getCurrentUser().getUsername()) { reference.Add(tableAttribute); } if (!stockChoices.Contains(tableAttribute.getStockName())) { stockChoices.Add(tableAttribute.getStockName()); } } tableAttributes = new List <Stock>(reference); if (tableAttributes != null) { foreach (var transaction in tableAttributes) { if (transaction.getProfit() != null && transaction.getProfit() != "-") { try { double profit = double.Parse(transaction.getProfit()); var f = new NumberFormatInfo { NumberGroupSeparator = "." }; var s = profit.ToString("n", f); transaction.setProfit(s); } catch (Exception e) { } } else { transaction.setProfit("-"); } } } }
private void addAtribuesToTable(String accountNumber) { if (accountNumber.Equals("empty"))//only imported files { foreach (var attribute in tableAttribues) { TransactionTableXAML.Items.Add(attribute); } } else { foreach (var attribute in SavedTransactions.getSavedTransactions()) { if (attribute.getAccountNumber().Equals(accountNumber))//only saved files { TransactionTableXAML.Items.Add(attribute); } } } }
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; } } } if (tableAttributes != null) { foreach (var transaction in reference) { if (transaction.getWriteDate() != null && transaction.getWriteDate().Length >= 12) { transaction.setWriteDate(transaction.getWriteDate().Substring(0, 12)); } else { transaction.setWriteDate(DateTime.Now.ToString("yyyy/MM/dd").Substring(0, 12)); } } } tableAttributes = reference; foreach (var x in tableAttributes) { if (!bankChoices.Contains(x.getBankname())) { bankChoices.Add(x.getBankname()); } } }
public void displayData(string stockName) { SeriesCollection = new SeriesCollection(); Labels = new string[SavedTransactions.getSavedTransactionsStock().Count]; LineSeries lineSeries = new LineSeries(); lineSeries.Title = stockName; 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.getSavedTransactionsStock()) { if (transactions.getStockName() == stockName) { 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.getSavedTransactionsStock()) { if (date == y.getWriteDate() && stockName == y.getStockName()) { 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.getSavedTransactions(); 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 (ImportMainPage.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(neededTransactions.Count==0) * { * //mainWindow.setTableAttributes(savedTransactions, importerAccountNumber); * //only pass the saved transactions because we didn't add new * //and the accountNumber so we can select it by user * } * else * { * //we pass both the saved and the new transcations * List<Transaction> savedAndImported=new List<Transaction>(); * * //tempTrancations containts saved Transactions where the accountnumber matches with the imported Transactions * foreach (var attribue in tempTransactions) * { * savedAndImported.Add(attribue); * } * foreach (var attribue in neededTransactions) * { * savedAndImported.Add(attribue); * } * //mainWindow.setTableAttributes(savedAndImported,true); * } */ 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); } }
public ExportTransactions(List <Transaction> transactions, MainWindow mainWindow, string currentFileName) { for (int i = 0; i < transactions.Count; i++) { string [] spaceSplitted = transactions[i].getTransactionDate().Split(' '); string dateString = ""; for (int j = 0; j < spaceSplitted.Length; j++) { dateString += spaceSplitted[j]; } Console.WriteLine(dateString.Substring(0, 11)); } this.mainWindow = mainWindow; MessageBox.Show("Exporting data from: " + currentFileName, "", MessageBoxButton.OK); //BUT FIRST - check if the transaction is already exported or not List <Transaction> neededTransactions = newTransactions(transactions); SavedTransactions.addToSavedTransactions(neededTransactions);//adding the freshyl imported transactions to the saved WriteWorkbook = excel.Workbooks.Open(@"C:\Users\Tocki\Desktop\Kimutatas.xlsx"); WriteWorksheet = WriteWorkbook.Worksheets[1]; if (neededTransactions != null) { string todaysDate = DateTime.Now.ToString("yyyy-MM-dd"); int row_number = 1; while (WriteWorksheet.Cells[row_number, 1].Value != null) { row_number++; // get the current last row } foreach (var transctn in neededTransactions) { WriteWorksheet.Cells[row_number, 1].Value = todaysDate; WriteWorksheet.Cells[row_number, 2].Value = transctn.getTransactionDate(); WriteWorksheet.Cells[row_number, 3].Value = transctn.getBalance_rn(); WriteWorksheet.Cells[row_number, 7].Value = transctn.getTransactionPrice(); if (transctn.getTransactionPrice() < 0) { WriteWorksheet.Cells[row_number, 9].Value = transctn.getTransactionPrice(); WriteWorksheet.Cells[row_number, 11].Value = transctn.getTransactionPrice(); WriteWorksheet.Cells[row_number, 15].Value = "havi"; } else { WriteWorksheet.Cells[row_number, 8].Value = transctn.getTransactionPrice(); WriteWorksheet.Cells[row_number, 10].Value = transctn.getTransactionPrice(); WriteWorksheet.Cells[row_number, 11].Value = transctn.getTransactionPrice(); WriteWorksheet.Cells[row_number, 15].Value = "havi"; } WriteWorksheet.Cells[row_number, 14].Value = transctn.getTransactionDescription(); WriteWorksheet.Cells[row_number, 16].Value = transctn.getAccountNumber(); row_number++; Range line = (Range)WriteWorksheet.Rows[row_number]; line.Insert(); } try { //WriteWorkbook.SaveAs(@"C:\Users\Tocki\Desktop\Kimutatas.xlsx"); excel.ActiveWorkbook.Save(); excel.Workbooks.Close(); excel.Quit(); } catch (Exception e) { } ImportMainPage.getInstance(mainWindow).setUserStatistics(mainWindow.getCurrentUser()); } else { return; } }
public ExportTransactions(List <Stock> customTransactions, MainWindow mainWindow, string currentFileName, string customEarning) { for (int i = 0; i < customTransactions.Count; i++) { customTransactions[i].setImporter(mainWindow.getCurrentUser().getUsername()); customTransactions[i].setEarningMethod(customEarning); } MessageBox.Show("Exporting data from: " + currentFileName, "", MessageBoxButton.OK); SavedTransactions.addToSavedTransactionsStock(customTransactions); //adding the freshyl imported transactions to the saved WriteWorkbook = excel.Workbooks.Open(@"C:\Users\Tocki\Desktop\Kimutatas.xlsx"); WriteWorksheet = WriteWorkbook.Worksheets[2]; string todaysDate = DateTime.Now.ToString("yyyy-MM-dd"); int row_number = 1; while (WriteWorksheet.Cells[row_number, 1].Value != null) { row_number++; // get the current last row } for (int i = 0; i < customTransactions.Count; i++) { WriteWorksheet.Cells[row_number, 1].Value = todaysDate; WriteWorksheet.Cells[row_number, 2].Value = customTransactions[i].getTransactionDate(); WriteWorksheet.Cells[row_number, 3].Value = customTransactions[i].getStockName(); WriteWorksheet.Cells[row_number, 4].Value = customTransactions[i].getStockPrice(); Regex typeRegex1 = new Regex(@"Eladott"); Regex typeRegex2 = new Regex(@"Sold"); Regex typeRegex3 = new Regex(@"Sell"); Regex typeRegex4 = new Regex(@"Vásárolt"); Regex typeRegex5 = new Regex(@"Bought"); Regex typeRegex6 = new Regex(@"Buy"); if (typeRegex1.IsMatch(customTransactions[i].getTransactionType()) || typeRegex2.IsMatch(customTransactions[i].getTransactionType()) || typeRegex3.IsMatch(customTransactions[i].getTransactionType())) //Eladott { WriteWorksheet.Cells[row_number, 5].Value = customTransactions[i].getOriginalQuantityForCustomEarning(); //!! eredeti quantity WriteWorksheet.Cells[row_number, 9].Value = customTransactions[i].getProfit(); WriteWorksheet.Cells[row_number, 10].Value = customEarning; } else if (typeRegex4.IsMatch(customTransactions[i].getTransactionType()) || typeRegex5.IsMatch(customTransactions[i].getTransactionType()) || typeRegex6.IsMatch(customTransactions[i].getTransactionType())) //Vásárolt { WriteWorksheet.Cells[row_number, 6].Value = customTransactions[i].getOriginalQuantityForCustomEarning(); //! eredeti quantity WriteWorksheet.Cells[row_number, 8].Value = customTransactions[i].getOriginalQuantityForCustomEarning() * customTransactions[i].getStockPrice(); //!! eredeti quantity } WriteWorksheet.Cells[row_number, 7].Value = customTransactions[i].getQuantity(); //!! mostani quantity WriteWorksheet.Cells[row_number, 11].Value = mainWindow.getCurrentUser().getUsername(); row_number++; Range line = (Range)WriteWorksheet.Rows[row_number]; line.Insert(); } try { excel.ActiveWorkbook.Save(); excel.Workbooks.Close(); excel.Quit(); } catch (Exception e) { } ImportPageStock.getInstance(mainWindow).setUserStatistics(mainWindow.getCurrentUser()); }
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 getUserStatistics(string accountNumber) { urgencyLabel.Foreground = new SolidColorBrush(Color.FromRgb(0, 0, 0)); int totalIncome = 0; int totalSpendings = 0; int numberOfTransactions = 0; string lastImportDate = ""; string todaysDate = DateTime.Now.ToString("yyyy-MM-dd"); DateTime todayDate = Convert.ToDateTime(todaysDate); usernameLabel.Content = "Test"; foreach (var transactions in SavedTransactions.getSavedTransactions()) { if (transactions.getAccountNumber().Equals(accountNumber)) { numberOfTransactions++; lastImportDate = transactions.getWriteDate();//always overwrites it --- todo (more logic needed lulz) if (transactions.getTransactionPrice() > 0) { totalIncome += transactions.getTransactionPrice(); } else { totalSpendings += transactions.getTransactionPrice(); } } } if (lastImportDate == null) { lastImportDate = DateTime.Now.ToString("yyyy-MM-dd"); } if (lastImportDate.Length > 12) { lastImportDateLabel.Content = lastImportDate.Substring(0, 12); } else { lastImportDateLabel.Content = lastImportDate; } noTransactionsLabel.Content = numberOfTransactions; if (lastImportDate.Length > 0) { DateTime importDate = Convert.ToDateTime(lastImportDate); int diffDays = (todayDate - importDate).Days; if (diffDays >= 30) { urgencyLabel.Content = "Recommended!"; urgencyLabel.Foreground = new SolidColorBrush(Color.FromRgb(217, 30, 24)); } else { urgencyLabel.Content = "Not urgent"; urgencyLabel.Foreground = new SolidColorBrush(Color.FromRgb(46, 204, 113)); } } else { urgencyLabel.Content = "You haven't imported yet!"; lastImportDateLabel.Content = "You haven't imported yet!"; } }
private void startUpReadIn() { //reading in saved transactions SavedTransactions.getInstance().readOutSavedBankTransactions(); SavedTransactions.getInstance().readOutStockSavedTransactions(); }
private void startUpReadIn() { //reading in the already saved transactions SavedTransactions.getInstance(); }
public ExportTransactions(List <Stock> transactions, MainWindow mainWindow, string currentFileName) { string earningMethod = ImportPageStock.getInstance(mainWindow).getMethod(); //we need the original quantity that's we going to get it from the original transactions List //(after the switch it is zero for every object) List <int> quantities = new List <int>(); for (int i = 0; i < transactions.Count; i++) { quantities.Add(transactions[i].getQuantity()); } //but we need the profits too , which we going to get from the tempTransactions switch (earningMethod) { case "FIFO": stockExportFIFO(ref transactions); break; case "LIFO": stockExportLIFO(ref transactions); break; case "CUSTOM": mainWindow.MainFrame.Content = new CustomStockExportPage(mainWindow, transactions, currentFileName); break; } if (earningMethod == "FIFO" || earningMethod == "LIFO") { //for DataBaseDataStock for (int i = 0; i < transactions.Count; i++) { string value = quantities[i] + " (" + transactions[i].getQuantity() + ")"; transactions[i].setOriginalAndSellQuantity(value); transactions[i].setImporter(mainWindow.getCurrentUser().getUsername()); transactions[i].setEarningMethod(earningMethod); } MessageBox.Show("Exporting data from: " + currentFileName, "", MessageBoxButton.OK); SavedTransactions.addToSavedTransactionsStock(transactions);//adding the freshyl imported transactions to the saved WriteWorkbook = excel.Workbooks.Open(@"C:\Users\Tocki\Desktop\Kimutatas.xlsx"); WriteWorksheet = WriteWorkbook.Worksheets[2]; string todaysDate = DateTime.Now.ToString("yyyy-MM-dd"); int row_number = 1; while (WriteWorksheet.Cells[row_number, 1].Value != null) { row_number++; // get the current last row } for (int i = 0; i < transactions.Count; i++) { WriteWorksheet.Cells[row_number, 1].Value = todaysDate; WriteWorksheet.Cells[row_number, 2].Value = transactions[i].getTransactionDate(); WriteWorksheet.Cells[row_number, 3].Value = transactions[i].getStockName(); WriteWorksheet.Cells[row_number, 4].Value = transactions[i].getStockPrice(); Regex typeRegex1 = new Regex(@"Eladott"); Regex typeRegex2 = new Regex(@"Sold"); Regex typeRegex3 = new Regex(@"Sell"); Regex typeRegex4 = new Regex(@"Vásárolt"); Regex typeRegex5 = new Regex(@"Bought"); Regex typeRegex6 = new Regex(@"Buy"); if (typeRegex1.IsMatch(transactions[i].getTransactionType()) || typeRegex2.IsMatch(transactions[i].getTransactionType()) || typeRegex3.IsMatch(transactions[i].getTransactionType())) //Eladott { WriteWorksheet.Cells[row_number, 5].Value = quantities[i]; //!! eredeti quantity WriteWorksheet.Cells[row_number, 9].Value = transactions[i].getProfit(); WriteWorksheet.Cells[row_number, 10].Value = earningMethod; } else if (typeRegex4.IsMatch(transactions[i].getTransactionType()) || typeRegex5.IsMatch(transactions[i].getTransactionType()) || typeRegex6.IsMatch(transactions[i].getTransactionType())) //Vásárolt { WriteWorksheet.Cells[row_number, 6].Value = quantities[i]; //! eredeti quantity WriteWorksheet.Cells[row_number, 8].Value = quantities[i] * transactions[i].getStockPrice(); //!! eredeti quantity } WriteWorksheet.Cells[row_number, 7].Value = transactions[i].getQuantity(); //!! mostani quantity WriteWorksheet.Cells[row_number, 11].Value = mainWindow.getCurrentUser().getUsername(); row_number++; Range line = (Range)WriteWorksheet.Rows[row_number]; line.Insert(); } try { excel.ActiveWorkbook.Save(); excel.Workbooks.Close(); excel.Quit(); } catch (Exception e) { } ImportPageStock.getInstance(mainWindow).setUserStatistics(mainWindow.getCurrentUser()); } }