프로젝트

일반

사용자정보

통계
| 브랜치(Branch): | 개정판:

hytos / ID2.Manager / ID2.Manager.Controller / Controllers / DocumentController.cs @ 32b2f84d

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

1 5898479a yoush97
using System;
2
using System.Collections.Generic;
3
using System.Linq;
4
using System.Text;
5
using System.Threading.Tasks;
6
7 fe57f64a yoush97
using ID2.Manager.Dapper;
8 5898479a yoush97
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 91e72bfe yoush97
        public DocumentController() : base() { }
16 fe57f64a yoush97
17
        public DocumentController(ID2ProjectInfo id2Info) : base(id2Info) { }
18
19 a4a166e2 yoush97
        public IEnumerable<Documents> GetAllDocuments(string projectGroupID)
20 54977253 yoush97
        {
21 82705273 yoush97
            try
22 54977253 yoush97
            {
23 82705273 yoush97
                using (DocumentRepository rep = new DocumentRepository(this._MSSQLCONNSTR))
24
                {
25 a4a166e2 yoush97
                    return rep.GetAllDocuments(projectGroupID);
26 82705273 yoush97
                }
27
            }
28
            catch (Exception ex)
29
            {
30
                throw ex;
31 54977253 yoush97
            }
32
        }
33
34 b2ff5ff4 yoush97
        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 avevaStatus, string prodIsResult, string clientIsResult, string isGateWay, string isRegSystem)
35 5898479a yoush97
        {
36 82705273 yoush97
            try
37 5898479a yoush97
            {
38 82705273 yoush97
                using (DocumentRepository rep = new DocumentRepository(this._MSSQLCONNSTR))
39
                {
40 b2ff5ff4 yoush97
                    return rep.GetDocuments(projectGroupID, dateTypes, frDate, toDate, projectCode, personIncharge, jobLevel, documentNo, isToIsDiscussion, isFrReviewStatus, isID2Work, id2Status, avevaStatus, prodIsResult, clientIsResult, isGateWay, isRegSystem);
41 82705273 yoush97
                }
42
            }
43
            catch (Exception ex)
44
            {
45
                throw ex;
46 5898479a yoush97
            }
47
        }
48 709c1971 yoush97
49 b2ff5ff4 yoush97
        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 id2Status, string avevaStatus, string prodIsResult, string clientIsResult, string isGateWay, string isRegSystem)
50 fe57f64a yoush97
        {
51 82705273 yoush97
            try
52 fe57f64a yoush97
            {
53 b2ff5ff4 yoush97
                var (dwgs, totalCnt) = this.GetDocuments(projectGroupID, dateTypes, frDate, toDate, projectCode, personIncharge, jobLevel, documentNo, isToIsDiscussion, isFrReviewStatus, isID2Work, id2Status, avevaStatus, prodIsResult, clientIsResult, isGateWay, isRegSystem);
54 904fbe46 yoush97
55
                IEnumerable<Documents> docs = dwgs;
56 82705273 yoush97
                List<ID2Drawings> id2docs = null;
57
58
                if (id2Infos.Any())
59 fe57f64a yoush97
                {
60 82705273 yoush97
                    id2docs = new List<ID2Drawings>();
61
                    id2Infos.ForEach(x =>
62
                    {
63
                        id2docs.AddRange(new DocumentController(x).GetID2DrawingsByProject(x));
64
                    });
65
                }
66 fe57f64a yoush97
67 82705273 yoush97
                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 e458a996 taeseongkim
                                     Markups = doc.Markups
126 82705273 yoush97
                                 };
127
128 904fbe46 yoush97
                    return (result, totalCnt);
129 fe57f64a yoush97
130 82705273 yoush97
                }
131 904fbe46 yoush97
                return (dwgs, totalCnt);
132 82705273 yoush97
            }
133
            catch (Exception ex)
134
            {
135
                throw ex;
136 fe57f64a yoush97
            }
137
        }
138
139 ff990784 yoush97
        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 54977253 yoush97
        public bool SetDocumentData(List<Documents> docList, List<Documents> delDocList, string userId)
155 709c1971 yoush97
        {
156 82705273 yoush97
            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 709c1971 yoush97
            {
165 82705273 yoush97
                throw ex;
166 709c1971 yoush97
            }
167
        }
168 978488b0 yoush97
169 4b8d9ad9 yoush97
        public Documents SetID2Worker(Documents doc, string userId)
170
        {
171 82705273 yoush97
            try
172
            {
173
                using (DocumentRepository rep = new DocumentRepository(this._MSSQLCONNSTR))
174
                {
175
                    return rep.SetDocumentDataField(doc, userId);
176
                }
177
            }
178
            catch (Exception ex)
179 4b8d9ad9 yoush97
            {
180 82705273 yoush97
                throw ex;
181 4b8d9ad9 yoush97
            }
182
        }
183
184 978488b0 yoush97
        public Documents SetDocumentDataField(Documents doc, string userId)
185
        {
186 82705273 yoush97
            try
187
            {
188
                using (DocumentRepository rep = new DocumentRepository(this._MSSQLCONNSTR))
189
                {
190
                    return rep.SetDocumentDataField(doc, userId);
191
                }
192
            }
193
            catch (Exception ex)
194 978488b0 yoush97
            {
195 82705273 yoush97
                throw ex;
196 978488b0 yoush97
            }
197
        }
198 fe57f64a yoush97
199
200
        //ID2
201
        public IEnumerable<ID2Drawings> GetID2DrawingsByProject(ID2ProjectInfo id2Info)
202
        {
203 82705273 yoush97
            try
204
            {
205
                using (DocumentRepository rep = new DocumentRepository(this._ID2CONNSTR))
206
                {
207
                    return rep.GetID2DrawingsByProject(id2Info);
208
                }
209
            }
210
            catch (Exception ex)
211 fe57f64a yoush97
            {
212 82705273 yoush97
                throw ex;
213 fe57f64a yoush97
            }
214
        }
215 54977253 yoush97
216 a4a166e2 yoush97
        public bool SetID2Sync(string projectGroupID, List<ID2ProjectInfo> id2Infos, string userId)
217 54977253 yoush97
        {
218
            bool isSuccess = false;
219
220
            try
221
            {
222 a4a166e2 yoush97
                IEnumerable<Documents> docs = this.GetAllDocuments(projectGroupID);
223 54977253 yoush97
                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 5898479a yoush97
    }
261
}
클립보드 이미지 추가 (최대 크기: 500 MB)