protected static IQueryable<UserEntity> Page(SearchModel model, IQueryable<UserEntity> result)
		{
			var pagedResult = result
				.Skip((model.PageNumber - 1)*model.PageSize)
				.Take(model.PageSize);
			return pagedResult;
		}
		protected static IQueryable<UserEntity> Filter(SearchModel model)
		{
			var result = string.IsNullOrEmpty(model.Term)
			             	? UserRepository.Users
			             	: UserRepository.Users.Where(t =>
			             	                             t.LastName.StartsWith(model.Term, StringComparison.OrdinalIgnoreCase)
			             	                             || t.FirstName.StartsWith(model.Term, StringComparison.OrdinalIgnoreCase)
			             	                             || t.Title.StartsWith(model.Term, StringComparison.OrdinalIgnoreCase));
			return result;
		}
		public ActionResult Items(SearchModel model)
		{
			var result = Filter(model);
			var totalCount = result.Count();
			result = Sort(model, result);
			result = Page(model, result);
			var viewModelResult = result.Select(usr => new TableModel(usr, Url));

			return this.GriffinTable(viewModelResult, totalCount);
		}
		protected static IQueryable<UserEntity> Sort(SearchModel model, IQueryable<UserEntity> result)
		{
			if (!string.IsNullOrEmpty(model.SortColumn))
			{
				var param = Expression.Parameter(typeof (UserEntity), "t");
				var sortExpression = Expression.Lambda<Func<UserEntity, object>>
					(Expression.Property(param, model.SortColumn), param);

				switch (model.SortOrder)
				{
					case "asc":
						result = result.OrderBy(sortExpression);
						break;
					case "desc":
						result = result.OrderByDescending(sortExpression);
						break;
				}
			}
			return result;
		}