示例#1
0
 public IEnumerable <UserModel> Get()
 {
     return(userModels.GetUsers());
 }
        // GET: Users
        public ViewResult Users(string sortOrder, string currentFilter, string searchString, int?page)
        {
            if (Session["UserTicket"] != null)
            {
                ViewBag.CurrentSort     = sortOrder;
                ViewBag.IdSortParm      = String.IsNullOrEmpty(sortOrder) ? "id_asc" : "";
                ViewBag.NameSortParm    = sortOrder == "Name" ? "Name_desc" : "Name";
                ViewBag.SurnameSortParm = sortOrder == "Surname" ? "Surname_desc" : "Surname";
                ViewBag.LoginSortParm   = sortOrder == "Login" ? "Login_desc" : "Login";
                ViewBag.IsAdminSortParm = sortOrder == "IsAdmin" ? "IsAdmin_desc" : "IsAdmin";
                ViewBag.UnitSortParm    = sortOrder == "Unit" ? "Unit_desc" : "Unit";

                if (searchString != null)
                {
                    page = 1;
                }
                else
                {
                    searchString = currentFilter;
                }

                ViewBag.CurrentFilter = searchString;

                UserModels m = new UserModels();

                var users = m.GetUsers(new Guid(Session["UserTicket"].ToString()));

                if (!String.IsNullOrEmpty(searchString))
                {
                    users = users.Where(s => s.name.Contains(searchString) ||
                                        s.id.ToString().Contains(searchString) ||
                                        s.surname.Contains(searchString) ||
                                        s.Login.Contains(searchString));
                }

                switch (sortOrder)
                {
                case "id_asc":
                    users = users.OrderByDescending(s => s.id);
                    break;

                case "Name":
                    users = users.OrderBy(s => s.name);
                    break;

                case "Name_desc":
                    users = users.OrderByDescending(s => s.name);
                    break;

                case "Surname":
                    users = users.OrderBy(s => s.surname);
                    break;

                case "Surname_desc":
                    users = users.OrderByDescending(s => s.surname);
                    break;

                case "Login":
                    users = users.OrderBy(s => s.Login);
                    break;

                case "Login_desc":
                    users = users.OrderByDescending(s => s.Login);
                    break;

                case "IsAdmin":
                    users = users.OrderBy(s => s.isAdmin);
                    break;

                case "IsAdmin_desc":
                    users = users.OrderByDescending(s => s.isAdmin);
                    break;

                case "Unit":
                    users = users.OrderBy(s => s.isAdmin);
                    break;

                case "Unit_desc":
                    users = users.OrderByDescending(s => s.unitName);
                    break;

                default:      // id ascending
                    users = users.OrderBy(s => s.id);
                    break;
                }

                int pageSize   = 8;
                int pageNumber = (page ?? 1);
                return(View(users.ToPagedList(pageNumber, pageSize)));
            }

            RedirectToAction("Login", "login");
            return(View());
        }