public ActionResult Index(SearchMessagesModel search, int page = 1) { // Return all Messages // If not a post-back (i.e. initial load) set the searchModel to session if (Request.Form.Count <= 0) { if (search.IsEmpty() && Session["SearchMessagesModel"] != null) { search = (SearchMessagesModel)Session["SearchMessagesModel"]; } } var helper = new MessageHelper(); var model = helper.GetMessageList(search, search.ParsePage(page)); using (WebClient client = new WebClient()) { var url = "http://boxuganda.com/balance.php?user=phlyp&password=Uganda.01"; model.MessagesBalance = client.DownloadString(url); } Session["SearchMessagesModel"] = search; return(View(model)); }
public MessageListViewModel GetMessageList(SearchMessagesModel searchModel, int page = 1) { int pageSize = 20; if (page < 1) { page = 1; } IEnumerable <Message> records = db.Messages.ToList(); // Remove any default information //searchModel.ParseRouteInfo(); if (!String.IsNullOrEmpty(searchModel.Description)) { string name = searchModel.Description.ToLower(); records = records.Where(x => x.MessageDescription.ToLower().Contains(name)); } if (searchModel.StartDate.HasValue) { records = records.Where(x => x.Scheduled.HasValue && x.Scheduled.Value >= searchModel.StartDate.Value); } if (searchModel.EndDate.HasValue) { records = records.Where(x => x.Scheduled.HasValue && x.Scheduled.Value <= searchModel.EndDate.Value); } return(new MessageListViewModel { Messages = records .OrderByDescending(o => o.Added) .Skip((page - 1) * pageSize) .Take(pageSize), SearchModel = searchModel, PagingInfo = new PagingInfo { CurrentPage = page, PageSize = pageSize, TotalItems = records.Count() } }); }