using Bootstrap.DataAccess; using Longbow.Web.Mvc; using System.Linq; namespace Bootstrap.Admin.Query { /// /// /// public class QueryUserOption : PaginationOption { /// /// /// public string Name { get; set; } /// /// /// public string DisplayName { get; set; } /// /// /// /// public QueryData RetrieveData() { // int limit, int offset, string name, string price, string sort, string order var data = UserHelper.Retrieves(); if (!string.IsNullOrEmpty(Name)) { data = data.Where(t => t.UserName.Contains(Name)); } if (!string.IsNullOrEmpty(DisplayName)) { data = data.Where(t => t.DisplayName.Contains(DisplayName)); } var ret = new QueryData(); ret.total = data.Count(); switch (Sort) { case "UserName": data = Order == "asc" ? data.OrderBy(t => t.UserName) : data.OrderByDescending(t => t.UserName); break; case "DisplayName": data = Order == "asc" ? data.OrderBy(t => t.DisplayName) : data.OrderByDescending(t => t.DisplayName); break; case "RegisterTime": data = Order == "asc" ? data.OrderBy(t => t.RegisterTime) : data.OrderByDescending(t => t.RegisterTime); break; case "ApprovedTime": data = Order == "asc" ? data.OrderBy(t => t.ApprovedTime) : data.OrderByDescending(t => t.ApprovedTime); break; case "ApprovedBy": data = Order == "asc" ? data.OrderBy(t => t.ApprovedBy) : data.OrderByDescending(t => t.ApprovedBy); break; } ret.rows = data.Skip(Offset).Take(Limit).Select(u => new { u.Id, u.UserName, u.DisplayName, u.RegisterTime, u.ApprovedTime, u.ApprovedBy, u.Description, u.IsReset }); return ret; } } }