Advertisement
Guest User

Untitled

a guest
Nov 19th, 2018
118
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 3.40 KB | None | 0 0
  1. # Html
  2.  
  3. <h2>AuditWallet</h2>
  4.  
  5. <ul class="list-group">
  6.     <li class="list-group-item">Accounted Balance <span class="pull-right">@Model.AccountedBalance</span></li>
  7.     <li class="list-group-item">Actual Wallet Balance <span class="pull-right">@Model.ActualWalletBalance</span></li>
  8.     <li class="list-group-item">Computed Wallet Balance <span class="pull-right">@Model.ComputedWalletBalance</span></li>
  9.     <li class="list-group-item">Total Deposits <span class="pull-right">@Model.TotalDeposits</span></li>
  10.     <li class="list-group-item">Total Withdrawals <span class="pull-right">@Model.TotalWithdrawals</span></li>
  11.     <li class="list-group-item">Result <span class="pull-right">@Model.Result</span></li>
  12. </ul>
  13.  
  14.  
  15. # Controller Code
  16.         public async Task<ActionResult> AuditWallet(int? id)
  17.         {
  18.             if (id == null)
  19.             {
  20.                 return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
  21.             }
  22.             UserWallets userWallets = await db.UserWallets.FindAsync(id);
  23.             if (userWallets == null)
  24.             {
  25.                 return HttpNotFound();
  26.             }
  27.             // Error Prevention for null balance. (No entrys for the coin in UserBalances)
  28.             var users = db.Users.ToList();
  29.             foreach(var item in users)
  30.             {
  31.                 await new WalletManager(db).InitiateBalancesAndValidateNewAsync(item.Id);
  32.             }
  33.             // Sum Total Deposits
  34.             decimal TotalDeposits = db.UserDeposits.Where(x => x.WalletName == userWallets.WalletName).Sum(x => x.Amount);
  35.             // Sum Total Withdrawals
  36.             decimal TotalWithdrawals = db.UserWithdrawals.Where(x => x.WalletName == userWallets.WalletName).Sum(x => x.Amount);
  37.             // Compute WalletBalance
  38.             decimal ComputedWalletBalance = (TotalDeposits - TotalWithdrawals);
  39.             // Sum Accounted Balances
  40.             decimal AccountedBalance = db.UserBalances.Where(x => x.WalletName == userWallets.WalletName).Sum(x => x.WalletBalance);
  41.             // Get The Actual Wallet Balance
  42.             decimal ActualWalletBalance = await new WalletManager(db).GetWalletBalanceByNameAsync(userWallets.WalletName);
  43.  
  44.             WalletAuditModel model = new WalletAuditModel();
  45.             model.AccountedBalance = AccountedBalance;
  46.             model.ActualWalletBalance = ActualWalletBalance;
  47.             model.ComputedWalletBalance = ComputedWalletBalance;
  48.             model.TotalDeposits = TotalDeposits;
  49.             model.TotalWithdrawals = TotalWithdrawals;
  50.            
  51.             // Some Logic
  52.             if(ComputedWalletBalance == ActualWalletBalance && ActualWalletBalance == ComputedWalletBalance)
  53.             {
  54.                 model.Result = AuditResult.AuditPassed;
  55.             }
  56.             else
  57.             {
  58.                 model.Result = AuditResult.AuditFailed;
  59.             }
  60.  
  61.             return View(model);
  62.         }
  63.  
  64.         public class WalletAuditModel
  65.         {
  66.             public decimal TotalDeposits { get; set; }
  67.             public decimal TotalWithdrawals { get; set; }
  68.             public decimal ComputedWalletBalance { get; set; }
  69.             public decimal AccountedBalance { get; set; }
  70.             public decimal ActualWalletBalance { get; set; }
  71.             public AuditResult Result { get; set; }
  72.         }
  73.         public enum AuditResult
  74.         {
  75.             AuditPassed,
  76.             AuditFailed
  77.         }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement