protected AppController()
        {
            id          = Interlocked.Increment(ref dialogId);
            MenuCommand = new UntrackedCommand(async parameter =>
            {
                if (Routes.Count <= 1)
                {
                    IsMenuOpen = !IsMenuOpen;
                }
                else
                {
                    var current = Routes.Current;
                    if (current.IsTransitioning || !current.IsOutsideTransitionReady)
                    {
                        return;
                    }

                    var handler  = current.DeactivateRequested;
                    var popRoute = handler == null || await handler();
                    if (popRoute)
                    {
                        await Routes.Pop(null);
                    }
                }
            });

            SnackbarMessageQueue = new SnackbarMessageQueue();
            Kernel = new StandardKernel();
        }
        //private PageableCollection()
        //{
        //}

        public PageableCollection(IEnumerable <T> allObjects, int?entriesPerPage = null)
        {
            AllObjects = new ObservableCollection <T>(allObjects);
            if (entriesPerPage != null)
            {
                PageSize = (int)entriesPerPage;
            }
            Calculate(CurrentPageNumber);

            NextPageCommand = new UntrackedCommand(nothing =>
            {
                GoToNextPage();
            }, nothing => CurrentPageNumber < TotalPagesNumber);
            PreviousPageCommand = new UntrackedCommand(nothing =>
            {
                GoToPreviousPage();
            }, nothing => CurrentPageNumber > 1);
        }