public ActionResult List(string pno, int?page) { if (String.IsNullOrWhiteSpace(pno) || !pno.StartsWith(FlhConfig.TRADE_CLASS_PREFIX)) { pno = FlhConfig.TRADE_CLASS_PREFIX; } if (!page.HasValue || page.Value < 1) { page = 1; } var size = 30; var parent = _TradeManager.GetEnabled(pno); pno = pno.Trim(); var classes = _TradeManager.GetChildren(pno); var parentClasses = _TradeManager.EnabledTrades.Where(c => pno.StartsWith(c.no)).OrderBy(c => c.no.Length).ToDictionary(c => c.no, c => c.name); return(View(new Models.Classes.ListModel() { ParentNo = pno, ParentFullName = Util.DisplayClassFullName(parent.full_name), ParentClasses = parentClasses, Items = new PageModel <Models.Classes.ListModel.Item>(classes .OrderByDescending(n => n.order_by) .ThenByDescending(n => n.created) .Skip((page.Value - 1) * size) .Take(size) .Select(n => new Models.Classes.ListModel.Item { Name = n.name, No = n.no, Order = n.order_by }), page.Value, (int)Math.Ceiling((double)classes.Count() / (double)size)) })); }