예제 #1
0
        public ActionResult Contracts(ContractsViewModel model)
        {
            if (ModelState.IsValid)
            {
                // Perhaps we should reset the page to 1
                model.Page = 1;
                // Query the Contracts
                model = QueryContracts(model);
                // Store the model in the session
                SessionHelper.ContractsViewModel = model;
            }
            else
            {
                ModelState.AddModelError("", "The contracts View Model is not valid!!");
            }

            return View(model);
        }
예제 #2
0
 // P R I V A T E   M E T H O D S
 private ContractsViewModel QueryContracts(ContractsViewModel model)
 {
     DateTime expDate = DateTime.Now.AddDays(30);
     Expression<Func<Contract, bool>> filter = x => (x.TraderOne.Id == model.TraderId || x.TraderTwo.Id == model.TraderId) && x.EndDate > DateTime.Now;
     model.ActiveContracts = _contractsRepository.Search(filter, model.Page, model.Count).Select(x => x);
     filter = x => (x.TraderOne.Id == model.TraderId || x.TraderTwo.Id == model.TraderId) && x.EndDate > DateTime.Now && x.EndDate <= expDate;
     model.ExpiringContracts = _contractsRepository.Search(filter, model.Page, model.Count).Select(x => x);
     filter = x => (x.TraderOne.Id == model.TraderId || x.TraderTwo.Id == model.TraderId) && x.EndDate > DateTime.Now && (x.IsTraderOneApproved == false || x.IsTraderOneApproved == false);
     model.PendingContracts = _contractsRepository.Search(filter, model.Page, model.Count).Select(x => x);
     model.MaxPage = Math.Max((int)Math.Ceiling((double)_contractsRepository.Count(filter) / model.Count), 1);
     return model;
 }