using System; using System.Collections.Generic; using System.Linq; using System.Web; using PalGain.Core; using BatchService.Framework.Utility; using sbcLabSystem.Service.Account; using sbcLabSystem.Service.QC; using sbcLabSystem.Data.Domain.Backstage; using sbcLabSystem.Data.Domain.Account; namespace sbcLabSystem.Models.Backstage { public class ShowPageViewModel { public ShowPageViewModel(int LabId) { this.LabInfo = UserRequestInfoModel.FromEntity(PalGainEngine.Instance.Resolve() .GetUserRequestInfoQueryable().FirstOrDefault(p => p.Id == LabId)); this.RegList = PalGainEngine.Instance.Resolve().GetQcDistributionRegisters() .Where(p => p.LabId == LabId && ProjectId <= 4).OrderByDescending(p => p.QCDistributionInfo.DistNo).ToList() .Select(p => QCDistributionRegisterInfoViewModel.FromEntity(p)) .ToList(); } public static List GetQCdistrLabs(int qcDistributionId) { var query = PalGainEngine.Instance.Resolve().GetQcDistributionRegisters() .Where(p => p.QCDistributionId == qcDistributionId && p.ProjectId <= 4); var RegList = query.OrderBy(p => p.LabInfo.LabCode) .ToList(); return RegList; } public ShowPageViewModel(int qcDistributionId, int pageIndex, int pageItemCount) { this.DoSearch(qcDistributionId, pageIndex, pageItemCount, "", ""); } public ShowPageViewModel DoSearch(int qcDistributionId, int pageIndex, int pageItemCount, string searchField, string searchValue) { this.QCDistInfo = QCDistributionInfoViewModel.FromEntity(PalGainEngine.Instance.Resolve() .GetQcDistributions().FirstOrDefault(p => p.Id == qcDistributionId)); var query = PalGainEngine.Instance.Resolve().GetQcDistributionRegisters() .Where(p => p.QCDistributionId == qcDistributionId && p.ProjectId <= 4); if (searchField == "LabCode" && !string.IsNullOrEmpty(searchValue)) { query = query.Where(p => p.LabInfo.LabCode == searchValue); } if (searchField == "LabName" && !string.IsNullOrEmpty(searchValue)) { query = query.Where(p => p.LabInfo.CompanyName.Contains(searchValue)); } this.regListCount = query.Count(); this.RegList = query.OrderBy(p => p.LabInfo.LabCode) .Skip((pageIndex - 1) * pageItemCount).Take(pageItemCount).ToList() .Select(p => QCDistributionRegisterInfoViewModel.FromEntity(p)) .ToList(); this.PageNavInfo = new PageNavigationViewModel(pageIndex, regListCount, pageItemCount); return this; } public ShowPageViewModel(int qcDistributionId, int LabId) { this.QCDistInfo = QCDistributionInfoViewModel.FromEntity(PalGainEngine.Instance.Resolve() .GetQcDistributions().FirstOrDefault(p => p.Id == qcDistributionId)); this.LabInfo = UserRequestInfoModel.FromEntity(PalGainEngine.Instance.Resolve() .GetUserRequestInfoQueryable().FirstOrDefault(p => p.Id == LabId)); this.RegInfo = QCDistributionRegisterInfoViewModel.FromEntity(PalGainEngine.Instance.Resolve() .GetQcDistributionRegisters().FirstOrDefault(p => p.QCDistributionId == qcDistributionId && p.LabId == LabId)); this.ProjectId = this.RegInfo.ProjectId; } public ShowPageViewModel() { } public ShowPageViewModel GetStandAnswerInfo(int qcDistributionId) { this.QCDistInfo = QCDistributionInfoViewModel.FromEntity(PalGainEngine.Instance.Resolve() .GetQcDistributions().FirstOrDefault(p => p.Id == qcDistributionId)); this.IsStandAnswerPage = true; this.RegInfo = QCDistributionRegisterInfoViewModel.FromEntity(new QCDistributionRegisterInfo() { AnswerJSON = QCDistInfo.AnswerJSON, QCDistributionId = QCDistInfo.Id, ProjectId = 1, }); this.ProjectId = 1; return this; } public int regListCount { get; set; } public List RegList { get; set; } public QCDistributionInfoViewModel QCDistInfo { get; set; } public UserRequestInfoModel LabInfo { get; set; } public QCDistributionRegisterInfoViewModel RegInfo { get; set; } public StandAnswerInfoViewModel AnswerInfo { get; set; } public int ProjectId { get; set; } public PageNavigationViewModel PageNavInfo { get; set; } public bool IsStandAnswerPage { get; set; } public bool IsAdmin { get; set; } public SelectExcelCell selectList { get; set; } } public class SelectExcelCell { public int QCid { get; set; } public string option1 { get; set; } public string option2 { get; set; } public string option3 { get; set; } public string option4 { get; set; } public string option5 { get; set; } public string option6 { get; set; } public string option7 { get; set; } public string option8 { get; set; } public string option9 { get; set; } public string option10 { get; set; } public string option11 { get; set; } public string option12 { get; set; } } }