프로젝트

일반

사용자정보

통계
| 개정판:

hytos / ID2.Manager / ID2.Manager.Controller / Controllers / DocumentController.cs @ d8bd4799

이력 | 보기 | 이력해설 | 다운로드 (11.9 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 team, string projectCode, string personIncharge, string jobLevel, string documentNo, string isToIsDiscussion, string isFrReviewStatus, 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, team, projectCode, personIncharge, jobLevel, documentNo, isToIsDiscussion, isFrReviewStatus, 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 team, string projectCode, string personIncharge, string jobLevel, string documentNo, string isToIsDiscussion, string isFrReviewStatus, 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, team, projectCode, personIncharge, jobLevel, documentNo, isToIsDiscussion, isFrReviewStatus, 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
                                     Team = doc.Team,
79
                                     RefProjectCode = doc.RefProjectCode,
80
                                     JobLevel = doc.JobLevel,
81
                                     PersonInCharge = doc.PersonInCharge,
82
                                     ToIsDiscussion = doc.ToIsDiscussion,
83
                                     ToRemarks = doc.ToRemarks,
84
                                     ToCreator = doc.ToCreator,
85
                                     FrReviewStatus = doc.FrReviewStatus,
86
                                     FrRemarks = doc.FrRemarks,
87
                                     FrCreator = doc.FrCreator,
88
                                     ID2StartDate = doc.ID2StartDate,
89
                                     ID2EndDate = dw?.DATETIME == null ? (DateTime?)null : Convert.ToDateTime(dw?.DATETIME),
90
                                     ID2Status = doc.ID2Status,
91
                                     ID2Issues = doc.ID2Issues,
92
                                     ReplyModifications = doc.ReplyModifications,
93
                                     ReplyRequester = doc.ReplyRequester,
94
                                     IsConvert = doc.IsConvert,
95
                                     AVEVAPersonInCharge = doc.AVEVAPersonInCharge,
96
                                     AVEVAWorker = doc.AVEVAWorker,
97
                                     AVEVAConvertDate = doc.AVEVAConvertDate,
98
                                     AVEVAReviewDate = doc.AVEVAReviewDate,
99
                                     AVEVAWorkDate = doc.AVEVAWorkDate,
100
                                     AVEVAStatus = doc.AVEVAStatus,
101
                                     AVEVAIssues = doc.AVEVAIssues,
102
                                     ProdReviewer = doc.ProdReviewer,
103
                                     ProdIsResult = doc.ProdIsResult,
104
                                     ProdRemarks = doc.ProdRemarks,
105
                                     ClientReviewer = doc.ClientReviewer,
106
                                     ClientIsResult = doc.ClientIsResult,
107
                                     ClientRemarks = doc.ClientRemarks,
108
                                     DTIsGateWay = doc.DTIsGateWay,
109
                                     DTIsImport = doc.DTIsImport,
110
                                     DTIsRegSystem = doc.DTIsRegSystem,
111
                                     DTRemarks = doc.DTRemarks,
112
                                     Markups = doc.Markups
113
                                 };
114

    
115
                    return (result, totalCnt);
116

    
117
                }
118
                return (dwgs, totalCnt);
119
            }
120
            catch (Exception ex)
121
            {
122
                throw ex;
123
            }
124
        }
125

    
126
        public int ExistsDocument(string projectGroupID, List<string> newDwgNos)
127
        {
128
            try
129
            {
130
                using (DocumentRepository rep = new DocumentRepository(this._MSSQLCONNSTR))
131
                {
132
                    return rep.ExistsDocument(projectGroupID, newDwgNos);
133
                }
134
            }
135
            catch (Exception ex)
136
            {
137
                throw ex;
138
            }
139
        }
140

    
141
        public bool SetDocumentData(string projectGroupID, List<Documents> docList, List<string> delDocList, string userId)
142
        {
143
            try
144
            {
145
                using (DocumentRepository rep = new DocumentRepository(this._MSSQLCONNSTR))
146
                {
147
                    return rep.SetDocumentData(projectGroupID, docList, delDocList, userId);
148
                }
149
            }
150
            catch (Exception ex)
151
            {
152
                throw ex;
153
            }
154
        }
155

    
156
        public Documents SetID2Worker(Documents doc, string userId)
157
        {
158
            try
159
            {
160
                using (DocumentRepository rep = new DocumentRepository(this._MSSQLCONNSTR))
161
                {
162
                    return rep.SetDocumentDataField(doc, userId);
163
                }
164
            }
165
            catch (Exception ex)
166
            {
167
                throw ex;
168
            }
169
        }
170

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

    
186

    
187
        //ID2
188
        public IEnumerable<ID2Drawings> GetID2DrawingsByProject(ID2ProjectInfo id2Info)
189
        {
190
            try
191
            {
192
                using (DocumentRepository rep = new DocumentRepository(this._ID2CONNSTR))
193
                {
194
                    return rep.GetID2DrawingsByProject(id2Info);
195
                }
196
            }
197
            catch (Exception ex)
198
            {
199
                throw ex;
200
            }
201
        }
202

    
203
        public bool SetID2Sync(string projectGroupID, List<ID2ProjectInfo> id2Infos, string userId)
204
        {
205
            bool isSuccess = false;
206

    
207
            try
208
            {
209
                IEnumerable<Documents> docs = this.GetAllDocuments(projectGroupID);
210
                List<ID2Drawings> id2docs = null;
211

    
212
                if (id2Infos.Any())
213
                {
214
                    id2docs = new List<ID2Drawings>();
215
                    id2Infos.ForEach(x =>
216
                    {
217
                        id2docs.AddRange(new DocumentController(x).GetID2DrawingsByProject(x));
218
                    });
219
                }
220

    
221
                if (docs != null && id2docs != null && docs.Any() && id2docs.Any())
222
                {
223
                    var result = from doc in docs
224
                                 join id2 in id2docs on new { projCd = doc.RefProjectCode, DocNo = doc.DocumentNo } equals new { projCd = id2.PROJECTNAME, DocNo = id2.DOCNAME }
225
                                 select new Documents()
226
                                 {
227
                                     DocID = doc.DocID,
228
                                     ID2EndDate = id2?.DATETIME == null ? (DateTime?)null : Convert.ToDateTime(id2?.DATETIME)
229
                                 };
230

    
231
                    if (result.Any())
232
                    {
233
                        using (DocumentRepository rep = new DocumentRepository(this._MSSQLCONNSTR))
234
                        {
235
                            isSuccess = rep.SetDocumentDatasField(result.ToList(), userId);
236
                        }
237
                    }
238
                }
239
            }
240
            catch (Exception ex)
241
            {
242
                throw ex;
243
            }
244

    
245
            return isSuccess;
246
        }
247

    
248
        //Transactions
249
        public int GetTranKey(string userId, string projectID)
250
        {
251
            try
252
            {
253
                using (DocumentRepository rep = new DocumentRepository(this._MSSQLCONNSTR))
254
                {
255
                    return rep.GetTranKey(userId, projectID);
256
                }
257
            }
258
            catch (Exception ex)
259
            {
260
                throw ex;
261
            }
262
        }
263

    
264
        public bool SetTran(int seq, bool isMgt, bool isStart, int itemCount, int markusItemCount)
265
        {
266
            try
267
            {
268
                using (DocumentRepository rep = new DocumentRepository(this._MSSQLCONNSTR))
269
                {
270
                    return rep.SetTran(seq, isMgt, isStart, itemCount, markusItemCount);
271
                }
272
            }
273
            catch (Exception ex)
274
            {
275
                throw ex;
276
            }
277
        }
278

    
279
        public string GetTranData(int seq)
280
        {
281
            try
282
            {
283
                using (DocumentRepository rep = new DocumentRepository(this._MSSQLCONNSTR))
284
                {
285
                    return rep.GetTranData(seq);
286
                }
287
            }
288
            catch (Exception ex)
289
            {
290
                throw ex;
291
            }
292
        }
293

    
294
        public IEnumerable<Documents> GetTrDocuments(int seq)
295
        {
296
            try
297
            {
298
                using (DocumentRepository rep = new DocumentRepository(this._MSSQLCONNSTR))
299
                {
300
                    return rep.GetTrDocuments(seq);
301
                }
302
            }
303
            catch (Exception ex)
304
            {
305
                throw ex;
306
            }
307
        }
308
    }
309
}
클립보드 이미지 추가 (최대 크기: 500 MB)