示例#1
0
        public static int PageCount(this IPaginatedMenu menu)
        {
            Ensure.That(menu, nameof(menu)).IsNotNull();

            var size = menu.PageSize;

            return(size == 0 ? 0 : Math.Max(0, menu.ItemCount - 1) / menu.PageSize + 1);
        }
        public IMenu Execute(params string[] args)
        {
            IPaginatedMenu menu = (IPaginatedMenu)this.session.CurrentMenu;

            menu.ChangePage(true);

            return(menu);
        }
示例#3
0
        public static void Next(this IPaginatedMenu menu)
        {
            Ensure.That(menu, nameof(menu)).IsNotNull();

            var lastPage = menu.PageSize == 0
                ? 0
                : (int)Math.Floor(Math.Abs(menu.ItemCount - 0.5f) / menu.PageSize);

            menu.Page = Math.Min(lastPage, menu.Page + 1);
        }
示例#4
0
        public IMenu Execute(params string[] args)
        {
            IPaginatedMenu currentMenu = (IPaginatedMenu)this.session.CurrentMenu;

            if (currentMenu is IPaginatedMenu paginatedMenu)
            {
                paginatedMenu.ChangePage();
            }

            return(currentMenu);
        }
示例#5
0
        public static void Previous(this IPaginatedMenu menu)
        {
            Ensure.That(menu, nameof(menu)).IsNotNull();

            menu.Page = Math.Max(0, menu.Page - 1);
        }
示例#6
0
        public static void First(this IPaginatedMenu menu)
        {
            Ensure.That(menu, nameof(menu)).IsNotNull();

            menu.Page = 0;
        }