// GET: /Book/
        public ViewResult Index(string sortOrder, string keyword, string CurrentFilter, int?page)
        {
            ViewBag.CurrentSort = sortOrder;
            ViewBag.keyword     = keyword;
            List <SelectListItem> items = Common.getBookTypeItems();

            this.ViewData["list"]      = items;
            ViewBag.AmountSortParm     = String.IsNullOrEmpty(sortOrder) ? "Amount_desc" : "";
            ViewBag.TypeSortParm       = String.IsNullOrEmpty(sortOrder) ? "Type_Asc" : "";
            ViewBag.CurrAmountSortParm = String.IsNullOrEmpty(sortOrder) ? "CurrAmount_desc" : "";
            ViewBag.AddTimeSortParm    = sortOrder == "Date" ? "date_desc" : "Date";
            IBookDal ibookDao = RepositoryFactory.BookRepository;

            var books = ibookDao.FindBookList(keyword);

            switch (sortOrder)
            {
            case "Amount_desc":
                books = books.OrderByDescending(s => s.amount).ToList();
                break;

            case "Type_Asc":
                books = books.OrderBy(s => s.type).ToList();
                break;

            case "CurrAmount_desc":
                books = books.OrderByDescending(s => s.currAmount).ToList();
                break;

            case "Date":
                books = books.OrderBy(s => s.addTime).ToList();
                break;

            case "date_desc":
                books = books.OrderByDescending(s => s.addTime).ToList();
                break;

            default:
                books = books.OrderByDescending(s => s.addTime).ToList();
                break;
            }
            for (int i = 0; i < books.Count(); i++)
            {
                var type = books[i].type;
                books[i].type = Common.GetDisplayName("BookType", type);
            }
            int pageSize = 5; int pageNumber = (page ?? 1);

            return(View(books.ToPagedList(pageNumber, pageSize)));
        }