Beispiel #1
0
        internal static List <TransactionImportExport> GetTransactionForExport(Account account, string type, DateTime from, DateTime to)
        {
            var transactionsExport = new List <TransactionImportExport>();
            var transactions       = SilverCoinsManager.GetTransactions().Where(x => x.CreatedDate >= from && x.CreatedDate <= to).ToList();

            if (account.Id != 0)
            {
                transactions.Where(x => x.Account == account.Id).ToList();
            }

            if (type != "Both")
            {
                transactions.Where(x => x.Type == type).ToList();
            }

            foreach (var transaction in transactions)
            {
                var category  = SilverCoinsManager.GetCategory(transaction.Category);
                var accountAc = SilverCoinsManager.GetAccount(transaction.Account);
                transactionsExport.Add(new TransactionImportExport
                {
                    Account     = accountAc.Name,
                    Category    = category.Name,
                    Type        = transaction.Type,
                    Amount      = transaction.Amount.ToString("N2"),
                    Currency    = accountAc.Currency,
                    Date        = transaction.CreatedDate.ToString("dd/MM/yyyy"),
                    PaymentType = transaction.PaymentType,
                    Name        = transaction.Name,
                    Balance     = accountAc.Balance.ToString("N2")
                });
            }

            return(transactionsExport);
        }
        private void PopulateListView(Account account)
        {
            if (account.Id == 0)
            {
                var list = SilverCoinsManager.GetTransactions().ToList();
                transactions = list.ToList();
                foreach (var item in list.Where(x => x.Type == "Transfer"))
                {
                    transactions.Insert(transactions.IndexOf(item) + 1, new Transaction()
                    {
                        Id          = item.Id,
                        Name        = item.Name,
                        Category    = item.Category,
                        Amount      = item.Amount * item.CurrencyRate,
                        Account     = item.AccountTransfer,
                        CreatedDate = item.CreatedDate,
                        PaymentType = item.PaymentType,
                        Type        = "Income"
                    });
                }
            }
            else
            {
                transactions = SilverCoinsManager.GetAllTransactionsForAccount(account.Id);
            }

            transactionAdapter = new TransactionListAdapter(Activity, transactions, account);
            listView.Adapter   = transactionAdapter;
        }
Beispiel #3
0
        internal static ObservableArrayList PieChartData(Account account)
        {
            List <Transaction> transactions = new List <Transaction>();

            if (account.Id != 0)
            {
                transactions = SilverCoinsManager.GetTransactions().Where(x => x.Type != "Transfer" && x.Account == account.Id).ToList();
            }
            else
            {
                transactions = SilverCoinsManager.GetTransactions().Where(x => x.Type != "Transfer").ToList();
            }

            List <ResultLine> resultList = transactions.GroupBy(x => x.Category)
                                           .Select(r => new ResultLine
            {
                Name  = SilverCoinsManager.GetCategory(r.First().Category).Name,
                Value = r.Sum(s => s.Amount)
            })
                                           .ToList();

            ObservableArrayList list = new ObservableArrayList();

            foreach (var item in resultList)
            {
                list.Add(new ChartDataPoint(item.Name, Convert.ToDouble(item.Value)));
            }

            return(list);
        }
Beispiel #4
0
        internal static List <ObservableArrayList> BarChartData(Account account)
        {
            var transactions = SilverCoinsManager.GetTransactions()
                               .Where(x => x.Type != "Transfer" && x.CreatedDate >= DateTime.Today.AddYears(-1))
                               .OrderBy(x => x.CreatedDate)
                               .ToList();

            if (account.Id != 0)
            {
                transactions = transactions.Where(x => x.Account == account.Id).ToList();
            }

            List <ResultLine> resultListIncome  = GetDataForTransactionsGroupByMonth(transactions.Where(x => x.Type == "Income").ToList());
            List <ResultLine> resultListExpense = GetDataForTransactionsGroupByMonth(transactions.Where(x => x.Type == "Expense").ToList());

            ObservableArrayList listIncome  = new ObservableArrayList();
            ObservableArrayList listExpense = new ObservableArrayList();

            foreach (var item in resultListIncome)
            {
                listIncome.Add(new ChartDataPoint(item.Name, Convert.ToDouble(item.Value)));
            }

            foreach (var item in resultListExpense)
            {
                listExpense.Add(new ChartDataPoint(item.Name, Convert.ToDouble(item.Value)));
            }

            List <ObservableArrayList> dataModel = new List <ObservableArrayList>();

            dataModel.Add(listIncome);
            dataModel.Add(listExpense);

            return(dataModel);
        }
Beispiel #5
0
        private static ObservableArrayList GetBalanceGroupByMonthPerAccount(Account account)
        {
            var transactions = SilverCoinsManager.GetTransactions()
                               .Where(x => x.Type != "Transfer" &&
                                      x.CreatedDate >= DateTime.Today.AddYears(-1) &&
                                      x.Account == account.Id)
                               .OrderBy(x => x.CreatedDate)
                               .ToList();

            List <ResultLine> resultList = transactions.GroupBy(x => x.CreatedDate.Month)
                                           .Select(r => new ResultLine
            {
                Name  = r.First().CreatedDate.ToString("MMM"),
                Value = r.Sum(x => (x.Type == "Income" ? x.Amount : -x.Amount))
            })
                                           .ToList();

            ObservableArrayList list    = new ObservableArrayList();
            decimal             balance = 0;

            foreach (var item in resultList)
            {
                balance += item.Value;
                list.Add(new ChartDataPoint(item.Name, Convert.ToDouble(balance)));
            }

            return(list);
        }