public ActionResult UsersPage(int? page)
        {
            var realPage = page ?? 1;
            string file = WebConfigurationManager.AppSettings["TestFile"];

            var users = HttpContext.Cache.Get(file) as List<UserModel>;
            if (users == null)
            {
                var fileText = System.IO.File.ReadAllText(Server.MapPath(file));
                users = new JavaScriptSerializer().Deserialize<List<UserModel>>(fileText);
                if (users != null)
                    HttpContext.Cache.Insert(file, users);
                else
                    return View();
            }

            var pageData = users.Skip((realPage - 1) * UsersOnPage).Take(UsersOnPage);
            var pagination = new PaginationModel()
                {
                    Page = realPage,
                    LastPage = Convert.ToInt32(Math.Ceiling((double)users.Count / UsersOnPage)),
                    NumberOfDisplayedPages = 5,
                    DefaultDestination = new ActionDestination() { Action = "UsersPage", Controller = "Home" }
                };

            if (Request.IsAjaxRequest())
            {
                return Json(new { pageData = pageData , 
                    pagination = pagination.GetShownPages(), 
                    current = realPage, 
                    next = !pagination.IsLast, 
                    previous = !pagination.IsFirst}, 
                    JsonRequestBehavior.AllowGet);
            }
            var model = new UsersPageModel()
            {
                PagginationData = pagination,
                Users = pageData
            };
            return View(model);
        }