songjun
2024-09-04 cc908053e0b5075fbfd27350b6da4b39bca9e550
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
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<AccountService>()
                .GetUserRequestInfoQueryable().FirstOrDefault(p => p.Id == LabId));
            this.RegList = PalGainEngine.Instance.Resolve<QCService>().GetQcDistributionRegisters()
                .Where(p => p.LabId == LabId && ProjectId <= 4).OrderByDescending(p => p.QCDistributionInfo.DistNo).ToList()
                .Select(p => QCDistributionRegisterInfoViewModel.FromEntity(p))
                .ToList();
        }
        public static List<QCDistributionRegisterInfo> GetQCdistrLabs(int qcDistributionId)
        {
            var query = PalGainEngine.Instance.Resolve<QCService>().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<QCService>()
                .GetQcDistributions().FirstOrDefault(p => p.Id == qcDistributionId));
 
            var query = PalGainEngine.Instance.Resolve<QCService>().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));
            } 
            int 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<QCService>()
                .GetQcDistributions().FirstOrDefault(p => p.Id == qcDistributionId));
            this.LabInfo = UserRequestInfoModel.FromEntity(PalGainEngine.Instance.Resolve<AccountService>()
                .GetUserRequestInfoQueryable().FirstOrDefault(p => p.Id == LabId));
            this.RegInfo = QCDistributionRegisterInfoViewModel.FromEntity(PalGainEngine.Instance.Resolve<QCService>()
                .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<QCService>()
                .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 List<QCDistributionRegisterInfoViewModel> 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; }
    }
}