Beispiel #1
0
        private async void ViewTransactionsActivated(object sender, EventArgs e)
        {
            if (isRecurring)
            {
                List <RecurringTransaction> TransactionList = await Task.Run(() => recurringTransactionRepository.GetUserTransactions(Instances.User.ID));

                lv_transactions.Items.Clear();
                foreach (RecurringTransaction transaction in TransactionList)
                {
                    string       endDate = (transaction.EndDate == DateTime.MinValue) ? "Never ends" : transaction.EndDate.ToString();
                    ListViewItem transactionListViewItem = new ListViewItem(
                        new string[] {
                        transaction.Name,
                        transaction.ContactName,
                        transaction.TypeName,
                        "£" + transaction.Amount.ToString("0.00"),
                        transaction.CreatedDate.ToString(),
                        transaction.Note,
                        transaction.Status,
                        endDate
                    });
                    transactionListViewItem.Tag = transaction;
                    lv_transactions.Items.Add(transactionListViewItem);
                }
            }
            else
            {
                List <Transaction> TransactionList = await Task.Run(() => transactionRepository.GetUserTransactions(Instances.User.ID));

                lv_transactions.Items.Clear();
                foreach (Transaction transaction in TransactionList)
                {
                    ListViewItem transactionListViewItem = new ListViewItem(
                        new string[] {
                        transaction.Name,
                        transaction.ContactName,
                        transaction.TypeName,
                        "£" + transaction.Amount.ToString("0.00"),
                        transaction.CreatedDate.ToString(),
                        transaction.Note
                    });
                    transactionListViewItem.Tag = transaction;
                    lv_transactions.Items.Add(transactionListViewItem);
                }
            }
        }
Beispiel #2
0
        private async void PredictClick(object sender, EventArgs e)
        {
            if (transactions == null)
            {
                transactions = await Task.Run(() => transactionRepository.GetUserTransactions(Instances.User.ID));

                List <Transaction> tempList = new List <Transaction>();
                foreach (Transaction transaction in transactions)
                {
                    if (transaction.Type == false)
                    {
                        tempList.Add(transaction);
                    }
                }
                transactions = tempList;
            }
            if (recurringTransactions == null)
            {
                recurringTransactions = await Task.Run(() => recurringTransactionRepository.GetUserTransactions(Instances.User.ID));

                List <RecurringTransaction> tempList = new List <RecurringTransaction>();
                foreach (RecurringTransaction transaction in recurringTransactions)
                {
                    if (transaction.Type == false)
                    {
                        tempList.Add(transaction);
                    }
                }
                recurringTransactions = tempList;
            }

            decimal average        = GetAverage();
            decimal totalRecurring = GetRecurringAmount();

            if (average > totalRecurring)
            {
                lbl_result.Text = "£" + average.ToString("0.00");
            }
            else
            {
                lbl_result.Text = "£" + totalRecurring.ToString("0.00");
            }
        }
Beispiel #3
0
        private async void DoRecurringTransaction()
        {
            TransactionRepository          transactionRepository          = TransactionRepository.Instance;
            RecurringTransactionRepository recurringTransactionRepository = RecurringTransactionRepository.Instance;

            if (Instances.User == null)
            {
                return;
            }
            List <RecurringTransaction> recurringTransactions = recurringTransactionRepository.GetUserTransactions(Instances.User.ID);

            foreach (RecurringTransaction recurringTransaction in recurringTransactions)
            {
                if (Instances.User == null)
                {
                    return;
                }
                if (DateTime.Now > recurringTransaction.EndDate && recurringTransaction.EndDate != DateTime.MinValue)
                {
                    continue;
                }
                DateTime accTime = Instances.User.LastAccessDate;
                DateTime nowTime = DateTime.Now;
                int      days    = (nowTime - accTime).Days;
                DateTime recTime = Instances.User.LastAccessDate;
                TimeSpan ts      = new TimeSpan(
                    recurringTransaction.CreatedDate.Hour,
                    recurringTransaction.CreatedDate.Minute,
                    recurringTransaction.CreatedDate.Second
                    );
                recTime = recTime.Date + ts;
                for (int i = 0; i <= days; i++)
                {
                    if (recurringTransaction.Status.Equals("Weekly"))
                    {
                        if (recTime.DayOfWeek != recurringTransaction.CreatedDate.DayOfWeek)
                        {
                            recTime = recTime.AddDays(1);
                            continue;
                        }
                    }
                    if (recurringTransaction.Status.Equals("Monthly"))
                    {
                        if (recTime.Day != recurringTransaction.CreatedDate.Day)
                        {
                            recTime = recTime.AddDays(1);
                            continue;
                        }
                    }
                    if (recurringTransaction.Status.Equals("Yearly"))
                    {
                        string recTimeString     = recTime.ToString("dd/MM");
                        string createdDateString = recurringTransaction.CreatedDate.ToString("dd/MM");
                        if (!recTimeString.Equals(createdDateString))
                        {
                            recTime = recTime.AddDays(1);
                            continue;
                        }
                    }
                    if (recTime > accTime && recTime <= nowTime && recTime > recurringTransaction.CreatedDate)
                    {
                        if (Instances.User == null)
                        {
                            return;
                        }
                        await Task.Run(() => transactionRepository.AddTransaction(new Transaction
                        {
                            Name        = recurringTransaction.Name,
                            UserID      = recurringTransaction.UserID,
                            ContactID   = recurringTransaction.ContactID,
                            Type        = recurringTransaction.Type,
                            Amount      = recurringTransaction.Amount,
                            Note        = recurringTransaction.Note,
                            CreatedDate = recTime
                        }));

                        bw_recurring.ReportProgress(1, "New transaction has been added!");
                    }
                    recTime = recTime.AddDays(1);
                }
            }
        }