using PalGain.Core; using sbcLabSystem.Data.Domain.Account; using sbcLabSystem.Service.Account; using System; using System.Collections.Generic; using System.Linq; using System.Web; namespace sbcLabSystem.Models.Backstage { public class UserRequestViewModel { 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 UserRequestInfo CurrentUserRequestInfo { get; set; } public List Pages = new List(); public int Id { get; set; } public bool IsSelected { get; set; } public string CompanyName { get; set; } public string LabName { get; set; } public string LabCode { get; set; } public string Province { get; set; } public int ProjectId { get; set; } public bool IsCharged { get; set; } public string SampleNo { get; set; } public bool IsSendEMS { get; set; } public string EMSNo { get; set; } public string PacketContent { get; set; } public string Remark { get; set; } public int QCDistributionRegisterId { get; set; } public static UserRequestViewModel FromEntity(UserRequestInfo entity) { UserRequestViewModel viewModel = new UserRequestViewModel() { IsSelected = false, CompanyName = entity.CompanyName, LabName = entity.LabName, LabCode = entity.LabCode, Province = entity.Province, ProjectId = entity.ProjectId, Id = entity.Id, }; return viewModel; } public static UserRequestInfo ToEntity(UserRequestViewModel viewModel) { UserRequestInfo labInfo = new UserRequestInfo() { CompanyName = viewModel.CompanyName, LabName = viewModel.LabName, LabCode = viewModel.LabCode, Province = viewModel.Province, ProjectId = viewModel.ProjectId, }; if (viewModel.Id > 0) { var temp = PalGainEngine.Instance.Resolve().GetUserRequestInfo().FirstOrDefault(p => p.Id == viewModel.Id); if (temp != null) { labInfo = temp; labInfo.ProjectId = viewModel.ProjectId; } } return labInfo; } public static UserRequestViewModel GetUserRequestViewModel(int PageIndex, int SId, string where, string name) { UserRequestViewModel viewModel = new UserRequestViewModel(); 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 && p.LabCode.Contains(where)).Count(); } if (name == "LabLoginName") { newsCount = PalGainEngine.Instance.Resolve().GetUserRequestInfo().Where(p => p.State == SId && p.LabLoginName.Contains(where)).Count(); } if (name == "CompanyName") { newsCount = PalGainEngine.Instance.Resolve().GetUserRequestInfo().Where(p => p.State == SId && p.CompanyName.Contains(where)).Count(); } if (name == "LabName") { newsCount = PalGainEngine.Instance.Resolve().GetUserRequestInfo().Where(p => p.State == SId && p.LabName.Contains(where)).Count(); } if (name == "Address") { newsCount = PalGainEngine.Instance.Resolve().GetUserRequestInfo().Where(p => p.State == SId && p.Address.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 = UserRequestViewModel.Tolist(offset, capacity, SId, where, name); 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) { List UserList = new List(); UserList = PalGainEngine.Instance.Resolve().GetUserRequestInfo().Where(p => p.State == SId) .Skip(offset * capacity).Take(capacity).ToList(); if (string.IsNullOrEmpty(where) == false && string.IsNullOrEmpty(name) == false) { if (name == "LabCode") { UserList = PalGainEngine.Instance.Resolve().GetUserRequestInfo().Where(p => p.State == SId && p.LabCode.Contains(where)) .Skip(offset * capacity).Take(capacity).ToList(); } if (name == "LabLoginName") { UserList = PalGainEngine.Instance.Resolve().GetUserRequestInfo().Where(p => p.State == SId && p.LabLoginName.Contains(where)) .Skip(offset * capacity).Take(capacity).ToList(); } if (name == "CompanyName") { UserList = PalGainEngine.Instance.Resolve().GetUserRequestInfo().Where(p => p.State == SId && p.CompanyName.Contains(where)) .Skip(offset * capacity).Take(capacity).ToList(); } if (name == "LabName") { UserList = PalGainEngine.Instance.Resolve().GetUserRequestInfo().Where(p => p.State == SId && p.LabName.Contains(where)) .Skip(offset * capacity).Take(capacity).ToList(); } if (name == "Address") { UserList = PalGainEngine.Instance.Resolve().GetUserRequestInfo().Where(p => p.State == SId && p.Address.Contains(where)) .Skip(offset * capacity).Take(capacity).ToList(); } } return UserList.ToList(); } } }