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); } } }
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"); } }
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); } } }