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());
                }
            }
        }
Пример #5
0
        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);
        }
Пример #6
0
        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;
            }
        }
Пример #7
0
        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);
             */
        }
Пример #8
0
        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);
            }
        }