コード例 #1
0
        public ActionResult EditBalanceView(long balanceId, long userId)
        {
            if (!CurrentUser.IsAdmin)
            {
                throw new Exception("Unauthorized user access");
            }
            var balance = new BalanceToAwardService().RetrieveBalanceToAwardById(balanceId);

            if (balance == null)
            {
                throw new Exception("Record was not found");
            }
            List <SelectListItem> cycles = new CycleService().RetrieveCyclesList()
                                           .Select(cycle => new SelectListItem
            {
                Text  = cycle.StartDate.ToString("MM/dd/yyyy") + " - " + cycle.EndDate.ToString("MM/dd/yyyy"),
                Value = cycle.CycleId.ToString()
            }).ToList();

            var viewModel = new BalanceToAwardViewModel
            {
                BalanceToAwardId = balance.BalanceToAwardId,
                Balance          = balance.Balance,
                EffectiveDate    = balance.EffectiveDate,
                Cycles           = cycles,
                CycleId          = balance.Cycle.CycleId,
                UserId           = userId
            };

            return(PartialView("~/Views/Admin/_EditBalance.cshtml", viewModel));
        }
コード例 #2
0
ファイル: HomeController.cs プロジェクト: peterofson/GritCoin
        public JsonResult BalanceToAwardChartData()
        {
            long total   = new BalanceToAwardService().RetrieveBalanceToAwardListByUserAndCycle(CurrentUser.EmployeeId, null).Where(bal => bal.EffectiveDate < DateTime.Now).Sum(bal => bal.Balance);
            int  awarded = new TransactionService().RetrieveTransactionListBySenderAndCycle(CurrentUser.EmployeeId, null).Where(Tra => Tra.FromPool == false).Count();

            return(Json(new { CanAward = total - awarded, Total = total }, JsonRequestBehavior.AllowGet));
        }
コード例 #3
0
        public ActionResult SummaryReport()
        {
            BalanceToAwardService       balanceService = new BalanceToAwardService();
            List <UserDetailsViewModel> viewModel      = new EmployeeService().RetrieveEmployeeList().Select(x => new UserDetailsViewModel
            {
                Name           = x.DisplayName,
                UserId         = x.EmployeeId,
                BalanceToAward = balanceService.GetUserBalanceToAwardByCycle(x.EmployeeId, null),
                BalanceToSpend = balanceService.GetUserBalanceToSpend(x.EmployeeId, null)
            }).ToList();



            return(View("_SummaryReport", viewModel));
        }
コード例 #4
0
        public ActionResult BalancesToAward(long userId)
        {
            List <BalanceToAwardViewModel> balances = new BalanceToAwardService().RetrieveBalanceToAwardListByUser(userId)
                                                      .Select(
                balance => new BalanceToAwardViewModel
            {
                BalanceToAwardId = balance.BalanceToAwardId,
                Balance          = balance.Balance,
                EffectiveDate    = balance.EffectiveDate,
                Cycle            = balance.Cycle.StartDate.ToString("MM/dd/yyyy") + " - " + balance.Cycle.EndDate.ToString("MM/dd/yyyy"),
                CycleId          = balance.Cycle.CycleId,
                UserId           = userId
            }).ToList();

            return(PartialView("~/Views/Admin/_BalancesToAward.cshtml", balances));
        }
コード例 #5
0
        public JsonResult PoolBalanceChartData()
        {
            if (!CurrentUser.IsAdmin || (CurrentUser.IsAdmin && CurrentUser.IsEligible))
            {
                throw new Exception("Unauthorized user access");
            }
            EmployeeModel poolUser = new EmployeeService().GetEmployeeByUsername("pool.user");

            if (poolUser == null)
            {
                throw new Exception("Pool user doesn't exist");
            }
            long total   = new BalanceToAwardService().RetrieveBalanceToAwardListByUserAndCycle(poolUser.EmployeeId, null).Where(bal => bal.EffectiveDate < DateTime.Now).Sum(bal => bal.Balance);
            int  awarded = new TransactionService().RetrievePoolTransactionListByCycle(null).Where(Tra => Tra.TransactionState != TransactionState.Declined).Count();

            return(Json(new { CanAward = total - awarded, Total = total }, JsonRequestBehavior.AllowGet));
        }
コード例 #6
0
ファイル: HomeController.cs プロジェクト: peterofson/GritCoin
 public ActionResult AddTransaction(TransactionViewModel viewModel)
 {
     if (!ModelState.IsValid)
     {
         return(View("Index"));
     }
     else
     {
         if (CurrentUser.IsAdmin && !CurrentUser.IsEligible)
         {
             int poolBalance = new AdminService().GetPoolBalance();
             if (poolBalance <= 0 || poolBalance < viewModel.Count)
             {
                 throw new Exception("Pool balance is not enough");
             }
             TransactionService transactionService = new TransactionService();
             for (int i = 0; i < viewModel.Count; i++)
             {
                 transactionService.CreateTransaction(CurrentUser.EmployeeId, viewModel.RecipientId, viewModel.IsAnonymous, TransactionState.Pending, viewModel.Comment, true);
             }
         }
         else
         {
             int balance = new BalanceToAwardService().GetUserBalanceToAwardByCycle(CurrentUser.EmployeeId, null);
             TransactionService transactionService = new TransactionService();
             for (int i = 0; i < viewModel.Count; i++)
             {
                 transactionService.CreateTransaction(CurrentUser.EmployeeId, viewModel.RecipientId, viewModel.IsAnonymous, TransactionState.Pending, viewModel.Comment, balance > 0 ? false : true);
                 balance--;
             }
             if (balance < 0)
             {
                 //TODO show warning to the user that he doesn't have enough balance
                 return(RedirectToAction("Index", new { lowBalanceWarning = true }));
             }
         }
         return(RedirectToAction("Index"));
     }
 }
コード例 #7
0
        public ActionResult UserDetails(long userId)
        {
            if (!CurrentUser.IsAdmin)
            {
                throw new Exception("Unauthorized user access");
            }
            EmployeeModel user = new EmployeeService().RetrieveEmployeeById(userId);

            if (user != null)
            {
                ViewBag.UserId = userId;
                BalanceToAwardService balanceService = new BalanceToAwardService();
                UserDetailsViewModel  viewModel      = new UserDetailsViewModel
                {
                    UserId         = user.EmployeeId,
                    Name           = user.DisplayName,
                    BalanceToAward = balanceService.GetUserBalanceToAwardByCycle(userId, null),
                    BalanceToSpend = balanceService.GetUserBalanceToSpend(userId, null)
                };
                return(View("UserDetails", viewModel));
            }
            throw new Exception("User not found");
        }