using PalGain.Core; using sbcLabSystem.Data.Domain.Account; using sbcLabSystem.Data.Domain.Backstage; using sbcLabSystem.Service.Account; using sbcLabSystem.Service.QC; using System; using System.Collections.Generic; using System.Linq; using System.Web; namespace sbcLabSystem.Models.Backstage { public class EmileMassViewModel { public List UserRequestInfoList { get; set; } public Menus Menus { get; set; } public int PageCount { get; set; } public int CurrentPageIndex = 1; public List Pages = new List(); //搜索条件实验室名 public string LabName { get; set; } //搜索条件所在城市 public string Province1 { get; set; } //质品号 public int QCId { get; set; } //项目ID public int ProjectId { get; set; } public List QCDistributionList { get; set; } public static EmileMassViewModel GetEmileMassViewModel(int PageIndex, string QCId, string ProjectId, string LabNames, string Provinces) { EmileMassViewModel viewModel = new EmileMassViewModel(); viewModel.QCDistributionList = PalGainEngine.Instance.Resolve().GetQcDistributions().ToList().Select(p => QCDistributionInfoViewModel.FromEntity(p)).ToList(); int newsCount =0; int offset = PageIndex - 1; int capacity = 5; List UserList = new List(); UserList = PalGainEngine.Instance.Resolve().GetUserRequestInfo() .Select(p => UserRequestInfoModel.FromEntity(p)).ToList(); if (string.IsNullOrEmpty(QCId) == false && QCId != "undefined") { if (int.Parse(QCId) > 0) { viewModel.QCId = int.Parse(QCId); List Userliet2 = new List(); Listlist = PalGainEngine.Instance.Resolve().GetId(int.Parse(QCId)).QCDistributionRegisters; list.ForEach(info => { Userliet2.Add(UserRequestInfoModel.FromEntity(info.LabInfo)); }); UserList = Userliet2; } } if (string.IsNullOrEmpty(ProjectId) == false) { if (int.Parse(ProjectId) > 0) { viewModel.ProjectId = int.Parse(ProjectId); List Userliet2 = new List(); UserList.ForEach(info => { if (info.ProjectId == int.Parse(ProjectId)) { Userliet2.Add(info); } }); UserList = Userliet2; } } if (string.IsNullOrEmpty(LabNames) == false && LabNames!="null") { viewModel.LabName = LabNames; List Userliet2 = new List(); UserList.ForEach(info => { if (string.IsNullOrEmpty(info.LabName) == false) { if (info.LabName.Contains(LabNames)) { Userliet2.Add(info); } } }); UserList = Userliet2; } if (string.IsNullOrEmpty(Provinces) == false && Provinces!="null") { viewModel.Province1 = Provinces; List Userliet2 = new List(); UserList.ForEach(info => { if (string.IsNullOrEmpty(info.Province) == false) { if (info.Province.Contains(Provinces)) { Userliet2.Add(info); } } }); UserList = Userliet2; } newsCount = UserList.Count; viewModel.UserRequestInfoList = UserList.Skip(offset * capacity).Take(capacity).ToList(); viewModel.PageCount = newsCount / capacity; if (newsCount % capacity > 0) { viewModel.PageCount++; } 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 EmileMassViewModel GetEmileMassViewModel(string QCId, string ProjectId, string LabNames, string Provinces) { EmileMassViewModel viewModel = new EmileMassViewModel(); List UserList = new List(); UserList = PalGainEngine.Instance.Resolve().GetUserRequestInfo() .Select(p => UserRequestInfoModel.FromEntity(p)).ToList(); if (string.IsNullOrEmpty(QCId) == false && QCId != "undefined") { if (int.Parse(QCId) > 0) { viewModel.QCId = int.Parse(QCId); List Userliet2 = new List(); List list = PalGainEngine.Instance.Resolve().GetId(int.Parse(QCId)).QCDistributionRegisters; list.ForEach(info => { Userliet2.Add(UserRequestInfoModel.FromEntity(info.LabInfo)); }); UserList = Userliet2; } } if (string.IsNullOrEmpty(ProjectId) == false) { if (int.Parse(ProjectId) > 0) { viewModel.ProjectId = int.Parse(ProjectId); List Userliet2 = new List(); UserList.ForEach(info => { if (info.ProjectId == int.Parse(ProjectId)) { Userliet2.Add(info); } }); UserList = Userliet2; } } if (string.IsNullOrEmpty(LabNames) == false && LabNames != "null") { viewModel.LabName = LabNames; List Userliet2 = new List(); UserList.ForEach(info => { if (string.IsNullOrEmpty(info.LabName) == false) { if (info.LabName.Contains(LabNames)) { Userliet2.Add(info); } } }); UserList = Userliet2; } if (string.IsNullOrEmpty(Provinces) == false && Provinces != "null") { viewModel.Province1 = Provinces; List Userliet2 = new List(); UserList.ForEach(info => { if (string.IsNullOrEmpty(info.Province) == false) { if (info.Province.Contains(Provinces)) { Userliet2.Add(info); } } }); UserList = Userliet2; } viewModel.UserRequestInfoList = UserList; return viewModel; } } }