// GET: Home public ActionResult Index() { List <(string AccountNumber, string AccountName, decimal?Amount, decimal?MonthOutgoing, decimal?MonthIncoming, decimal?MonthNet)> AccountsOverview = new List <(string AccountNumber, string AccountName, decimal?Amount, decimal?MonthOutgoing, decimal?MonthIncoming, decimal?MonthNet)>(); int UserID = GetUserID(); using (var dbc = new MiniBankEntities()) { string Name = dbc.Users.Where(u => u.UserID == UserID).Select(u => u.FirstName).FirstOrDefault(); ViewBag.UserName = Name; } using (var dbc = new MiniBankEntities()) { accounts = dbc.Accounts.Where(a => a.CustomerID == UserID).ToList(); ViewBag.OpenAccounts = accounts.Count(); var date = DateTime.Now; var startDate = new DateTime(date.Year, date.Month, 1); var endDate = startDate.AddMonths(1).AddDays(-1); foreach (var item in accounts) { var monthsOutgoing = dbc.Bank_Transaction .Join(dbc.TransactionTypes, bt => bt.TransactionType, t => t.TypeID, (bt, t) => new { bt, t }) .Where(btt => btt.bt.AccountID == item.AccountID && btt.t.IsDebit == true && (btt.bt.TransactionDate >= startDate && btt.bt.TransactionDate <= endDate)) .Sum(btt => btt.bt.Amount); var monthsIncoming = dbc.Bank_Transaction .Join(dbc.TransactionTypes, bt => bt.TransactionType, t => t.TypeID, (bt, t) => new { bt, t }) .Where(btt => btt.bt.AccountID == item.AccountID && btt.t.IsDebit == false && (btt.bt.TransactionDate >= startDate && btt.bt.TransactionDate <= endDate)) .Sum(btt => btt.bt.Amount); monthsOutgoing = monthsOutgoing == null ? 0 : monthsOutgoing; monthsIncoming = monthsIncoming == null ? 0 : monthsIncoming; var monthNet = monthsIncoming - monthsOutgoing; var accountInfo = ( item.AccountNumber, item.AccountName, item.Amount, monthsOutgoing, monthsIncoming, monthNet == null ? 0 : monthNet ); AccountsOverview.Add(accountInfo); } //Pay someone //Set up a direct debit } ViewBag.AccountsOverview = AccountsOverview; //ViewBag.pass = Crypto.Hash("password1234"); return(View()); }
public OverviewHub(AccountsOverview accountsOverview, ICommandCoordinator commandCoordinator) { _accountsOverview = accountsOverview; _commandCoordinator = commandCoordinator; }