public static async Task <TicketCenterListViewModel> GetViewModelAsync(int currentPage, string listName, TicketDeskContext context, string userId)
        {
            var vm = new TicketCenterListViewModel(currentPage, listName, context, userId);

            vm.Tickets = await vm.ListTicketsAsync(currentPage, context);

            return(vm);
        }
        public static async Task<TicketCenterListViewModel> GetViewModelAsync(int currentPage, string listName, TdDomainContext context, string userId)
        {
            var userSettings = await context.UserSettingsManager.GetSettingsForUserAsync(userId);
            var vm = new TicketCenterListViewModel()
            {
                UserListSettings = userSettings.ListSettings.OrderBy(
                        lp => lp.ListMenuDisplayOrder),
                CurrentPage = currentPage,
                CurrentListSetting = await context.UserSettingsManager.GetUserListSettingByNameAsync(listName, userId)
            };


            vm.Tickets = await vm.ListTicketsAsync(currentPage, context);

            return vm;
        }
        public static async Task <TicketCenterListViewModel> GetViewModelAsync(int currentPage, string listName, TdDomainContext context, string userId)
        {
            var userSettings = await context.UserSettingsManager.GetSettingsForUserAsync(userId);

            var vm = new TicketCenterListViewModel()
            {
                UserListSettings = userSettings.ListSettings.OrderBy(
                    lp => lp.ListMenuDisplayOrder),
                CurrentPage        = currentPage,
                CurrentListSetting = await context.UserSettingsManager.GetUserListSettingByNameAsync(listName, userId)
            };


            vm.Tickets = await vm.ListTicketsAsync(currentPage, context);

            return(vm);
        }
        public virtual ActionResult List(int? page, string listName)
        {
            var dp = Settings.UserSettings.GetDisplayPreferences();

            int p = page ?? 1;

            if (string.IsNullOrEmpty(listName) || !dp.TicketCenterListPreferences.Any(pr => pr.ListName == listName))
            {
                var defaultTicketCenterListPreferences = dp.TicketCenterListPreferences.OrderBy(ls => ls.ListMenuDisplayOrder).FirstOrDefault();
                if (defaultTicketCenterListPreferences != null)
                {
                    listName = defaultTicketCenterListPreferences.ListName;
                }
            }




            var lp = dp.GetPreferencesForList(listName);
            TempData["TicketCenterList"] = listName;
            TempData["TicketCenterPage"] = p;
            TempData["TicketCenterListDisplayName"] = lp.ListDisplayName;

            if (p < 1) //prevent negative pageIndex, redirect to page 1(index 0);
            {
                return RedirectToAction(MVC.TicketCenter.List(1, listName));
            }
            var model = new TicketCenterListViewModel(listName, Tickets.ListTickets(p, lp), Settings, Security);

            if (p > model.Tickets.TotalPages && p > 1)//total pages is 0 when no rows returned, so we only do this when requested page is not page 1.
            {
                return RedirectToAction(MVC.TicketCenter.List(model.Tickets.TotalPages, listName));
            }

            if (IsItReallyRedirectFromAjax())
            {
                return PartialView(MVC.TicketCenter.Views.Controls.TicketList, model);
            }

            return View(MVC.TicketCenter.Views.TicketCenter, model);
        }