프로젝트

일반

사용자정보

통계
| 개정판:

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

이력 | 보기 | 이력해설 | 다운로드 (10.5 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 2aa2a446 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 id2Status, string id2Issues, string avevaStatus, string avevaIssues, 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 2aa2a446 yoush97
                    return rep.GetDocuments(projectGroupID, dateTypes, frDate, toDate, projectCode, personIncharge, jobLevel, documentNo, isToIsDiscussion, isFrReviewStatus, id2Status, id2Issues, avevaStatus, avevaIssues, prodIsResult, clientIsResult, isGateWay, isRegSystem);
41 82705273 yoush97
                }
42
            }
43
            catch (Exception ex)
44
            {
45
                throw ex;
46 5898479a yoush97
            }
47
        }
48 709c1971 yoush97
49 2aa2a446 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 id2Issues, string id2Status, string avevaStatus, string avevaIssues, string prodIsResult, string clientIsResult, string isGateWay, string isRegSystem)
50 fe57f64a yoush97
        {
51 82705273 yoush97
            try
52 fe57f64a yoush97
            {
53 2aa2a446 yoush97
                var (dwgs, totalCnt) = this.GetDocuments(projectGroupID, dateTypes, frDate, toDate, projectCode, personIncharge, jobLevel, documentNo, isToIsDiscussion, isFrReviewStatus, id2Status, id2Issues, avevaStatus, avevaIssues, 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
                                     PersonInCharge = doc.PersonInCharge,
86
                                     IsDeleted = doc.IsDeleted,
87
                                     RegisteredDate = doc.RegisteredDate,
88
                                     ModifiedDate = doc.ModifiedDate,
89
                                     DeletedDate = doc.DeletedDate,
90
                                     ToIsDiscussion = doc.ToIsDiscussion,
91
                                     ToRemarks = doc.ToRemarks,
92
                                     ToCreator = doc.ToCreator,
93
                                     FrReviewStatus = doc.FrReviewStatus,
94
                                     FrRemarks = doc.FrRemarks,
95
                                     FrCreator = doc.FrCreator,
96
                                     ID2StartDate = doc.ID2StartDate,
97
                                     ID2EndDate = dw?.DATETIME == null ? (DateTime?)null : Convert.ToDateTime(dw?.DATETIME),
98
                                     ID2Status = doc.ID2Status,
99
                                     ID2Issues = doc.ID2Issues,
100
                                     AVEVAConvertDate = doc.AVEVAConvertDate,
101
                                     AVEVAReviewDate = doc.AVEVAReviewDate,
102
                                     AVEVAStatus = doc.AVEVAStatus,
103
                                     AVEVAIssues = doc.AVEVAIssues,
104
                                     ReviewFilePath = doc.ReviewFilePath,
105
                                     ReviewFileName = doc.ReviewFileName,
106
                                     ProdReviewer = doc.ProdReviewer,
107
                                     ProdIsResult = doc.ProdIsResult,
108
                                     ProdRemarks = doc.ProdRemarks,
109
                                     ClientReviewer = doc.ClientReviewer,
110
                                     ClientIsResult = doc.ClientIsResult,
111
                                     ClientRemarks = doc.ClientRemarks,
112
                                     DTIsGateWay = doc.DTIsGateWay,
113
                                     DTIsImport = doc.DTIsImport,
114
                                     DTIsRegSystem = doc.DTIsRegSystem,
115
                                     DTRemarks = doc.DTRemarks,
116 e458a996 taeseongkim
                                     Markups = doc.Markups
117 82705273 yoush97
                                 };
118
119 904fbe46 yoush97
                    return (result, totalCnt);
120 fe57f64a yoush97
121 82705273 yoush97
                }
122 904fbe46 yoush97
                return (dwgs, totalCnt);
123 82705273 yoush97
            }
124
            catch (Exception ex)
125
            {
126
                throw ex;
127 fe57f64a yoush97
            }
128
        }
129
130 ff990784 yoush97
        public int ExistsDocument(string projectGroupID, List<string> newDwgNos)
131
        {
132
            try
133
            {
134
                using (DocumentRepository rep = new DocumentRepository(this._MSSQLCONNSTR))
135
                {
136
                    return rep.ExistsDocument(projectGroupID, newDwgNos);
137
                }
138
            }
139
            catch (Exception ex)
140
            {
141
                throw ex;
142
            }
143
        }
144
145 54977253 yoush97
        public bool SetDocumentData(List<Documents> docList, List<Documents> delDocList, string userId)
146 709c1971 yoush97
        {
147 82705273 yoush97
            try
148
            {
149
                using (DocumentRepository rep = new DocumentRepository(this._MSSQLCONNSTR))
150
                {
151
                    return rep.SetDocumentData(docList, delDocList, userId);
152
                }
153
            }
154
            catch (Exception ex)
155 709c1971 yoush97
            {
156 82705273 yoush97
                throw ex;
157 709c1971 yoush97
            }
158
        }
159 978488b0 yoush97
160 4b8d9ad9 yoush97
        public Documents SetID2Worker(Documents doc, string userId)
161
        {
162 82705273 yoush97
            try
163
            {
164
                using (DocumentRepository rep = new DocumentRepository(this._MSSQLCONNSTR))
165
                {
166
                    return rep.SetDocumentDataField(doc, userId);
167
                }
168
            }
169
            catch (Exception ex)
170 4b8d9ad9 yoush97
            {
171 82705273 yoush97
                throw ex;
172 4b8d9ad9 yoush97
            }
173
        }
174
175 978488b0 yoush97
        public Documents SetDocumentDataField(Documents doc, string userId)
176
        {
177 82705273 yoush97
            try
178
            {
179
                using (DocumentRepository rep = new DocumentRepository(this._MSSQLCONNSTR))
180
                {
181
                    return rep.SetDocumentDataField(doc, userId);
182
                }
183
            }
184
            catch (Exception ex)
185 978488b0 yoush97
            {
186 82705273 yoush97
                throw ex;
187 978488b0 yoush97
            }
188
        }
189 fe57f64a yoush97
190
191
        //ID2
192
        public IEnumerable<ID2Drawings> GetID2DrawingsByProject(ID2ProjectInfo id2Info)
193
        {
194 82705273 yoush97
            try
195
            {
196
                using (DocumentRepository rep = new DocumentRepository(this._ID2CONNSTR))
197
                {
198
                    return rep.GetID2DrawingsByProject(id2Info);
199
                }
200
            }
201
            catch (Exception ex)
202 fe57f64a yoush97
            {
203 82705273 yoush97
                throw ex;
204 fe57f64a yoush97
            }
205
        }
206 54977253 yoush97
207 a4a166e2 yoush97
        public bool SetID2Sync(string projectGroupID, List<ID2ProjectInfo> id2Infos, string userId)
208 54977253 yoush97
        {
209
            bool isSuccess = false;
210
211
            try
212
            {
213 a4a166e2 yoush97
                IEnumerable<Documents> docs = this.GetAllDocuments(projectGroupID);
214 54977253 yoush97
                List<ID2Drawings> id2docs = null;
215
216
                if (id2Infos.Any())
217
                {
218
                    id2docs = new List<ID2Drawings>();
219
                    id2Infos.ForEach(x =>
220
                    {
221
                        id2docs.AddRange(new DocumentController(x).GetID2DrawingsByProject(x));
222
                    });
223
                }
224
225
                if (docs != null && id2docs != null && docs.Any() && id2docs.Any())
226
                {
227
                    var result = from doc in docs
228
                                 join id2 in id2docs on new { projCd = doc.RefProjectCode, DocNo = doc.DocumentNo } equals new { projCd = id2.PROJECTNAME, DocNo = id2.DOCNAME }
229
                                 select new Documents()
230
                                 {
231
                                     DocID = doc.DocID,
232
                                     ID2EndDate = id2?.DATETIME == null ? (DateTime?)null : Convert.ToDateTime(id2?.DATETIME)
233
                                 };
234
235
                    if (result.Any())
236
                    {
237
                        using (DocumentRepository rep = new DocumentRepository(this._MSSQLCONNSTR))
238
                        {
239
                            isSuccess = rep.SetDocumentDatasField(result.ToList(), userId);
240
                        }
241
                    }
242
                }
243
            }
244
            catch (Exception ex)
245
            {
246
                throw ex;
247
            }
248
249
            return isSuccess;
250
        }
251 5898479a yoush97
    }
252
}
클립보드 이미지 추가 (최대 크기: 500 MB)