using PalGain.Core; using sbcLabSystem.Service.Account; using System; using System.Collections.Generic; using System.Linq; using System.Web; namespace sbcLabSystem.Models.Backstage { public class UserRequestViewModel1 { public List UserRequestInfoList { get; set; } public string where = ""; public int StateId = 0; public string name = ""; public int PageCount { get; set; } public int CurrentPageIndex = 1; public UserRequestInfoModel CurrentUserRequestInfo { get; set; } public List Pages = new List(); public static UserRequestViewModel1 GetUserRequestViewModel(int PageIndex, int SId, string where, string name,string admin) { UserRequestViewModel1 viewModel = new UserRequestViewModel1(); int newsCount = PalGainEngine.Instance.Resolve().GetUserRequestInfo() .Where(p => p.State == SId).Count(); if (string.IsNullOrEmpty(where) == false && string.IsNullOrEmpty(name) == false) { viewModel.name = name; if (name == "LabCode") { newsCount = PalGainEngine.Instance.Resolve() .GetUserRequestInfo().Where(p => p.State == SId && string.IsNullOrEmpty(p.LabCode) == false && p.LabCode.Contains(where)).Count(); } if (name == "LabLoginName") { newsCount = PalGainEngine.Instance.Resolve() .GetUserRequestInfo().Where(p => p.State == SId && string.IsNullOrEmpty(p.LabLoginName) == false && p.LabLoginName.Contains(where)).Count(); } if (name == "CompanyName") { newsCount = PalGainEngine.Instance.Resolve().GetUserRequestInfo().Where(p => p.State == SId &&string.IsNullOrEmpty(p.CompanyName)==false&&p.CompanyName.Contains(where)).Count(); } if (name == "LabName") { newsCount = PalGainEngine.Instance.Resolve().GetUserRequestInfo().Where(p => p.State == SId &&string.IsNullOrEmpty(p.LabName)==false&& p.LabName.Contains(where)).Count(); } if (name == "Address") { newsCount = PalGainEngine.Instance.Resolve().GetUserRequestInfo().Where(p => p.State == SId && string.IsNullOrEmpty(p.Address) == false && p.Address.Contains(where)).Count(); } if (name == "Province") { newsCount = PalGainEngine.Instance.Resolve().GetUserRequestInfo().Where(p => p.State == SId && string.IsNullOrEmpty(p.Province) == false && p.Province.Contains(where)).Count(); } } int offset = PageIndex - 1; int capacity = 10; viewModel.PageCount = newsCount / capacity; if (newsCount % capacity > 0) { viewModel.PageCount++; } viewModel.StateId = SId; viewModel.UserRequestInfoList = UserRequestViewModel1.Tolist(offset, capacity, SId, where, name, admin); viewModel.Pages.Add(0); for (int i = PageIndex - 2; i < PageIndex; i++) { if (i <= 0) { continue; } viewModel.Pages.Add(i); } for (int i = PageIndex; i <= PageIndex + 2; i++) { if (i >= viewModel.PageCount) { break; } viewModel.Pages.Add(i); } viewModel.Pages.Add(viewModel.PageCount); return viewModel; } public static UserRequestViewModel1 GetUserRequestViewModel2(int PageIndex, DateTime? date1, DateTime? date2) { UserRequestViewModel1 viewModel = new UserRequestViewModel1(); int newsCount = PalGainEngine.Instance.Resolve().GetUserRequestInfo().Where(p => p.State == 1&&p.UpdateTime>date1&&p.UpdateTime 0) { viewModel.PageCount++; } viewModel.StateId = 1; viewModel.UserRequestInfoList =PalGainEngine.Instance.Resolve().GetUserRequestInfo() .Where(p => p.State == 1&&p.UpdateTime>date1&&p.UpdateTimep.LabCode).ToList() .Skip(offset * capacity).Take(capacity).Select(p => UserRequestInfoModel.FromEntity(p)).ToList(); viewModel.Pages.Add(0); for (int i = PageIndex - 2; i < PageIndex; i++) { if (i <= 0) { continue; } viewModel.Pages.Add(i); } for (int i = PageIndex; i <= PageIndex + 2; i++) { if (i >= viewModel.PageCount) { break; } viewModel.Pages.Add(i); } viewModel.Pages.Add(viewModel.PageCount); return viewModel; } public static List Tolist(int offset, int capacity, int SId, string where, string name,string admin) { List UserList = new List(); var query = PalGainEngine.Instance.Resolve().GetUserRequestInfo() .OrderByDescending(p => p.RequestTime).Where(p => p.State == SId); if (admin == "admin") { query= query.OrderBy(p => p.LabCode).ToList(); } UserList = query.Skip(offset * capacity).Take(capacity).Select(p => UserRequestInfoModel.FromEntity(p)).ToList(); if (string.IsNullOrEmpty(where) == false && string.IsNullOrEmpty(name) == false) { if (name == "LabCode") { UserList = query.Where(p => p.State == SId && string.IsNullOrEmpty(p.LabCode) == false && p.LabCode.Contains(where)) .Skip(offset * capacity).Take(capacity).Select(p => UserRequestInfoModel.FromEntity(p)).ToList(); } if (name == "LabLoginName") { UserList = query.Where(p => p.State == SId && string.IsNullOrEmpty(p.LabLoginName) == false && p.LabLoginName.Contains(where)) .Skip(offset * capacity).Take(capacity).Select(p => UserRequestInfoModel.FromEntity(p)).ToList(); } if (name == "CompanyName") { UserList = query.Where(p => p.State == SId && string.IsNullOrEmpty(p.CompanyName) == false && p.CompanyName.Contains(where)) .Skip(offset * capacity).Take(capacity).Select(p => UserRequestInfoModel.FromEntity(p)).ToList(); } if (name == "LabName") { UserList = query.Where(p => p.State == SId && string.IsNullOrEmpty(p.LabName) == false && p.LabName.Contains(where)) .Skip(offset * capacity).Take(capacity).Select(p => UserRequestInfoModel.FromEntity(p)).ToList(); } if (name == "Address") { UserList = query.Where(p => p.State == SId && string.IsNullOrEmpty(p.Address) == false && p.Address.Contains(where)) .Skip(offset * capacity).Take(capacity).Select(p => UserRequestInfoModel.FromEntity(p)).ToList(); } if (name == "Province") { UserList = query.Where(p => p.State == SId && string.IsNullOrEmpty(p.Province) == false && p.Province.Contains(where)) .Skip(offset * capacity).Take(capacity).Select(p => UserRequestInfoModel.FromEntity(p)).ToList(); } } return UserList.ToList(); } } }