프로젝트

일반

사용자정보

통계
| 개정판:

hytos / ID2.Manager / ID2.Manager.Controller / Controllers / DocumentController.cs @ 3cc84cb6

이력 | 보기 | 이력해설 | 다운로드 (11.1 KB)

1
using System;
2
using System.Collections.Generic;
3
using System.Linq;
4
using System.Text;
5
using System.Threading.Tasks;
6

    
7
using ID2.Manager.Dapper;
8
using ID2.Manager.Data.Models;
9
using ID2.Manager.Dapper.Repository;
10

    
11
namespace ID2.Manager.Controller.Controllers
12
{
13
    public class DocumentController : BaseController
14
    {
15
        public DocumentController() : base() { }
16

    
17
        public DocumentController(ID2ProjectInfo id2Info) : base(id2Info) { }
18

    
19
        public IEnumerable<Documents> GetAllDocuments(string projectGroupID)
20
        {
21
            try
22
            {
23
                using (DocumentRepository rep = new DocumentRepository(this._MSSQLCONNSTR))
24
                {
25
                    return rep.GetAllDocuments(projectGroupID);
26
                }
27
            }
28
            catch (Exception ex)
29
            {
30
                throw ex;
31
            }
32
        }
33

    
34
        public (IEnumerable<Documents> dwgs, int totalCnt) GetDocuments(string projectGroupID, List<string> dateTypes, DateTime? frDate, DateTime? toDate, string projectCode, string personIncharge, string jobLevel, string documentNo, string isToIsDiscussion, string isFrReviewStatus, string isID2Work, string id2Status, string id2Issues, string avevaStatus, string avevaIssues, string prodIsResult, string clientIsResult, string isGateWay, string isRegSystem)
35
        {
36
            try
37
            {
38
                using (DocumentRepository rep = new DocumentRepository(this._MSSQLCONNSTR))
39
                {
40
                    return rep.GetDocuments(projectGroupID, dateTypes, frDate, toDate, projectCode, personIncharge, jobLevel, documentNo, isToIsDiscussion, isFrReviewStatus, isID2Work, id2Status, id2Issues, avevaStatus, avevaIssues, prodIsResult, clientIsResult, isGateWay, isRegSystem);
41
                }
42
            }
43
            catch (Exception ex)
44
            {
45
                throw ex;
46
            }
47
        }
48

    
49
        public (IEnumerable<Documents> dwgs, int totalCnt) GetDocuments(List<ID2ProjectInfo> id2Infos, string projectGroupID, List<string> dateTypes, DateTime? frDate, DateTime? toDate, string projectCode, string personIncharge, string jobLevel, string documentNo, string isToIsDiscussion, string isFrReviewStatus, string isID2Work, string id2Issues, string id2Status, string avevaStatus, string avevaIssues, string prodIsResult, string clientIsResult, string isGateWay, string isRegSystem)
50
        {
51
            try
52
            {
53
                var (dwgs, totalCnt) = this.GetDocuments(projectGroupID, dateTypes, frDate, toDate, projectCode, personIncharge, jobLevel, documentNo, isToIsDiscussion, isFrReviewStatus, isID2Work, id2Status, id2Issues, avevaStatus, avevaIssues, prodIsResult, clientIsResult, isGateWay, isRegSystem);
54

    
55
                IEnumerable<Documents> docs = dwgs;
56
                List<ID2Drawings> id2docs = null;
57

    
58
                if (id2Infos.Any())
59
                {
60
                    id2docs = new List<ID2Drawings>();
61
                    id2Infos.ForEach(x =>
62
                    {
63
                        id2docs.AddRange(new DocumentController(x).GetID2DrawingsByProject(x));
64
                    });
65
                }
66

    
67
                if (docs != null && id2docs != null && docs.Any() && id2docs.Any())
68
                {
69
                    var result = from doc in docs
70
                                 join id2 in id2docs on new { projCd = doc.RefProjectCode, DocNo = doc.DocumentNo } equals new { projCd = id2.PROJECTNAME, DocNo = id2.DOCNAME } into gj
71
                                 from dw in gj.DefaultIfEmpty()
72
                                 select new Documents()
73
                                 {
74
                                     Seq = doc.Seq,
75
                                     DocID = doc.DocID,
76
                                     DocumentNo = doc.DocumentNo,
77
                                     RevisonNo = doc.RevisonNo,
78
                                     RefProjectCode = doc.RefProjectCode,
79
                                     IsLatest = doc.IsLatest,
80
                                     AutoCADFilie = doc.AutoCADFilie,
81
                                     PDFFile = doc.PDFFile,
82
                                     MarkupLink = doc.MarkupLink,
83
                                     AVEVALink = doc.AVEVALink,
84
                                     JobLevel = doc.JobLevel,
85
                                     IsTypical = doc.IsTypical,
86
                                     PersonInCharge = doc.PersonInCharge,
87
                                     IsDeleted = doc.IsDeleted,
88
                                     RegisteredDate = doc.RegisteredDate,
89
                                     ModifiedDate = doc.ModifiedDate,
90
                                     DeletedDate = doc.DeletedDate,
91
                                     ToIsDiscussion = doc.ToIsDiscussion,
92
                                     ToRemarks = doc.ToRemarks,
93
                                     ToCreator = doc.ToCreator,
94
                                     ToCapture = doc.ToCapture,
95
                                     ToIsMarkup = doc.ToIsMarkup,
96
                                     FrReviewStatus = doc.FrReviewStatus,
97
                                     FrRemarks = doc.FrRemarks,
98
                                     FrCreator = doc.FrCreator,
99
                                     FrCapture = doc.FrCapture,
100
                                     FrIsMarkup = doc.FrIsMarkup,
101
                                     IsID2Work = doc.IsID2Work,
102
                                     ID2Connection = doc.ID2Connection,
103
                                     ID2StartDate = doc.ID2StartDate,
104
                                     ID2EndDate = dw?.DATETIME == null ? (DateTime?)null : Convert.ToDateTime(dw?.DATETIME),
105
                                     ID2JobTime = doc.ID2JobTime,
106
                                     ID2Status = doc.ID2Status,
107
                                     ID2Issues = doc.ID2Issues,
108
                                     AVEVAConnection = doc.AVEVAConnection,
109
                                     AVEVAConvertDate = doc.AVEVAConvertDate,
110
                                     AVEVAReviewDate = doc.AVEVAReviewDate,
111
                                     AVEVAStatus = doc.AVEVAStatus,
112
                                     AVEVAIssues = doc.AVEVAIssues,
113
                                     ReviewFilePath = doc.ReviewFilePath,
114
                                     ReviewFileName = doc.ReviewFileName,
115
                                     ProdReviewer = doc.ProdReviewer,
116
                                     ProdIsResult = doc.ProdIsResult,
117
                                     ProdRemarks = doc.ProdRemarks,
118
                                     ClientReviewer = doc.ClientReviewer,
119
                                     ClientIsResult = doc.ClientIsResult,
120
                                     ClientRemarks = doc.ClientRemarks,
121
                                     DTIsGateWay = doc.DTIsGateWay,
122
                                     DTIsImport = doc.DTIsImport,
123
                                     DTIsRegSystem = doc.DTIsRegSystem,
124
                                     DTRemarks = doc.DTRemarks,
125
                                     Markups = doc.Markups
126
                                 };
127

    
128
                    return (result, totalCnt);
129

    
130
                }
131
                return (dwgs, totalCnt);
132
            }
133
            catch (Exception ex)
134
            {
135
                throw ex;
136
            }
137
        }
138

    
139
        public int ExistsDocument(string projectGroupID, List<string> newDwgNos)
140
        {
141
            try
142
            {
143
                using (DocumentRepository rep = new DocumentRepository(this._MSSQLCONNSTR))
144
                {
145
                    return rep.ExistsDocument(projectGroupID, newDwgNos);
146
                }
147
            }
148
            catch (Exception ex)
149
            {
150
                throw ex;
151
            }
152
        }
153

    
154
        public bool SetDocumentData(List<Documents> docList, List<Documents> delDocList, string userId)
155
        {
156
            try
157
            {
158
                using (DocumentRepository rep = new DocumentRepository(this._MSSQLCONNSTR))
159
                {
160
                    return rep.SetDocumentData(docList, delDocList, userId);
161
                }
162
            }
163
            catch (Exception ex)
164
            {
165
                throw ex;
166
            }
167
        }
168

    
169
        public Documents SetID2Worker(Documents doc, string userId)
170
        {
171
            try
172
            {
173
                using (DocumentRepository rep = new DocumentRepository(this._MSSQLCONNSTR))
174
                {
175
                    return rep.SetDocumentDataField(doc, userId);
176
                }
177
            }
178
            catch (Exception ex)
179
            {
180
                throw ex;
181
            }
182
        }
183

    
184
        public Documents SetDocumentDataField(Documents doc, string userId)
185
        {
186
            try
187
            {
188
                using (DocumentRepository rep = new DocumentRepository(this._MSSQLCONNSTR))
189
                {
190
                    return rep.SetDocumentDataField(doc, userId);
191
                }
192
            }
193
            catch (Exception ex)
194
            {
195
                throw ex;
196
            }
197
        }
198

    
199

    
200
        //ID2
201
        public IEnumerable<ID2Drawings> GetID2DrawingsByProject(ID2ProjectInfo id2Info)
202
        {
203
            try
204
            {
205
                using (DocumentRepository rep = new DocumentRepository(this._ID2CONNSTR))
206
                {
207
                    return rep.GetID2DrawingsByProject(id2Info);
208
                }
209
            }
210
            catch (Exception ex)
211
            {
212
                throw ex;
213
            }
214
        }
215

    
216
        public bool SetID2Sync(string projectGroupID, List<ID2ProjectInfo> id2Infos, string userId)
217
        {
218
            bool isSuccess = false;
219

    
220
            try
221
            {
222
                IEnumerable<Documents> docs = this.GetAllDocuments(projectGroupID);
223
                List<ID2Drawings> id2docs = null;
224

    
225
                if (id2Infos.Any())
226
                {
227
                    id2docs = new List<ID2Drawings>();
228
                    id2Infos.ForEach(x =>
229
                    {
230
                        id2docs.AddRange(new DocumentController(x).GetID2DrawingsByProject(x));
231
                    });
232
                }
233

    
234
                if (docs != null && id2docs != null && docs.Any() && id2docs.Any())
235
                {
236
                    var result = from doc in docs
237
                                 join id2 in id2docs on new { projCd = doc.RefProjectCode, DocNo = doc.DocumentNo } equals new { projCd = id2.PROJECTNAME, DocNo = id2.DOCNAME }
238
                                 select new Documents()
239
                                 {
240
                                     DocID = doc.DocID,
241
                                     ID2EndDate = id2?.DATETIME == null ? (DateTime?)null : Convert.ToDateTime(id2?.DATETIME)
242
                                 };
243

    
244
                    if (result.Any())
245
                    {
246
                        using (DocumentRepository rep = new DocumentRepository(this._MSSQLCONNSTR))
247
                        {
248
                            isSuccess = rep.SetDocumentDatasField(result.ToList(), userId);
249
                        }
250
                    }
251
                }
252
            }
253
            catch (Exception ex)
254
            {
255
                throw ex;
256
            }
257

    
258
            return isSuccess;
259
        }
260
    }
261
}
클립보드 이미지 추가 (최대 크기: 500 MB)