public async Task <IActionResult> Transactions(string?id)
        {
            ApplicationUser           user;
            List <AccountTransaction> transactions;

            if (id == null)
            {
                transactions = _context.Transaction.Where(c => c.CusId.Contains(userManager.FindByNameAsync(User.Identity.Name).Result.Id)).ToList();
                user         = await userManager.FindByNameAsync(User.Identity.Name);
            }
            else
            {
                transactions = _context.Transaction.Where(c => c.CusId == id).ToList();
                user         = await userManager.FindByIdAsync(id);
            }
            var userTransactions = new CustomerTransactionViewModel
            {
                Id           = user.Id,
                Name         = user.Name,
                Transactions = transactions
            };

            return(View(userTransactions));
        }
        public async Task <IActionResult> Index(long customerId = 0)
        {
            CustomerTransactionViewModel vm = new CustomerTransactionViewModel
            {
                CustomerId = customerId,
                customers  = await _customerRepo.GetAllAsync()
            };

            if (customerId > 0)
            {
                var Customer = await _customerRepo.GetById(customerId).ConfigureAwait(false);

                vm.CustomerName = Customer.FullName;

                var Transactions = await _transactionRepo.GetAllTransactionOfCustomer(customerId).ConfigureAwait(false);

                foreach (var t in Transactions)
                {
                    var tt = new CustomerTransactionModel()
                    {
                        TransactionDate = t.TransactionDate,
                        Amount          = t.Amount,
                        AmountType      = t.AmountType,
                        TransactionId   = t.Id,
                        Type            = t.Type,
                        BalanceAmount   = 0,
                        BalanceType     = ""
                    };

                    vm.Transactions.Add(tt);
                }
                var CustomerStatementModelsWithBalance = new List <CustomerTransactionModel>();
                for (int i = 0; i < vm.Transactions.Count; i++)
                {
                    var     CurrentData     = vm.Transactions[i];
                    var     CurrentIndex    = i;
                    int     PreviousIndex   = CurrentIndex - 1;
                    decimal PreviousBalance = 0;

                    var StatementModel = new CustomerTransactionModel()
                    {
                        TransactionId   = CurrentData.TransactionId,
                        Amount          = CurrentData.Amount,
                        TransactionDate = CurrentData.TransactionDate,
                        Type            = CurrentData.Type,
                        AmountType      = CurrentData.AmountType
                    };
                    if (i > 0)
                    {
                        PreviousBalance = CustomerStatementModelsWithBalance[PreviousIndex].BalanceAmount;
                    }

                    var BalanceAmount = StatementModel.AmountType == CustomerTransaction.TypeDebit
                        ? PreviousBalance + StatementModel.Amount
                        : PreviousBalance - StatementModel.Amount;
                    StatementModel.BalanceType   = BalanceAmount < 0 ? "" : "(Due)";
                    StatementModel.BalanceAmount = Math.Abs(BalanceAmount);

                    CustomerStatementModelsWithBalance.Add(StatementModel);
                }
                vm.Transactions = CustomerStatementModelsWithBalance;
            }
            return(View(vm));
        }
 public TransactionsOne(CustomerTransactionViewModel vm)
 {
     InitializeComponent();
     BindingContext = vm;
 }
示例#4
0
 public TransactionsPage()
 {
     InitializeComponent();
     vm             = new CustomerTransactionViewModel();
     BindingContext = vm;
 }