프로젝트

일반

사용자정보

통계
| 개정판:

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

이력 | 보기 | 이력해설 | 다운로드 (10.3 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()
20
        {
21
            try
22
            {
23
                using (DocumentRepository rep = new DocumentRepository(this._MSSQLCONNSTR))
24
                {
25
                    return rep.GetAllDocuments();
26
                }
27
            }
28
            catch (Exception ex)
29
            {
30
                throw ex;
31
            }
32
        }
33

    
34
        public (IEnumerable<Documents> dwgs, int totalCnt) GetDocuments(string projectCode, string personIncharge, string jobLevel, string documentNo, string isToIsDiscussion, string isFrReviewStatus, string isID2Work, string id2Status, string avevaStatus, string prodIsResult, string clientIsResult)
35
        {
36
            try
37
            {
38
                using (DocumentRepository rep = new DocumentRepository(this._MSSQLCONNSTR))
39
                {
40
                    return rep.GetDocuments(projectCode, personIncharge, jobLevel, documentNo, isToIsDiscussion, isFrReviewStatus, isID2Work, id2Status, avevaStatus, prodIsResult, clientIsResult);
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 projectCode, string personIncharge, string jobLevel, string documentNo, string isToIsDiscussion, string isFrReviewStatus, string isID2Work, string id2Status, string avevaStatus, string prodIsResult, string clientIsResult)
50
        {
51
            try
52
            {
53
                var (dwgs, totalCnt) = this.GetDocuments(projectCode, personIncharge, jobLevel, documentNo, isToIsDiscussion, isFrReviewStatus, isID2Work, id2Status, avevaStatus, prodIsResult, clientIsResult);
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
                                     DocFilePath = doc.DocFilePath,
85
                                     DocFileName = doc.DocFileName,
86
                                     JobLevel = doc.JobLevel,
87
                                     IsTypical = doc.IsTypical,
88
                                     PersonInCharge = doc.PersonInCharge,
89
                                     IsDeleted = doc.IsDeleted,
90
                                     RegisteredDate = doc.RegisteredDate,
91
                                     ModifiedDate = doc.ModifiedDate,
92
                                     DeletedDate = doc.DeletedDate,
93
                                     ToIsDiscussion = doc.ToIsDiscussion,
94
                                     ToRemarks = doc.ToRemarks,
95
                                     ToCreator = doc.ToCreator,
96
                                     ToCapture = doc.ToCapture,
97
                                     ToIsMarkup = doc.ToIsMarkup,
98
                                     FrReviewStatus = doc.FrReviewStatus,
99
                                     FrRemarks = doc.FrRemarks,
100
                                     FrCreator = doc.FrCreator,
101
                                     FrCapture = doc.FrCapture,
102
                                     FrIsMarkup = doc.FrIsMarkup,
103
                                     IsID2Work = doc.IsID2Work,
104
                                     ID2Connection = doc.ID2Connection,
105
                                     ID2StartDate = doc.ID2StartDate,
106
                                     ID2EndDate = dw?.DATETIME == null ? (DateTime?)null : Convert.ToDateTime(dw?.DATETIME),
107
                                     ID2JobTime = doc.ID2JobTime,
108
                                     ID2Status = doc.ID2Status,
109
                                     ID2Issues = doc.ID2Issues,
110
                                     AVEVAConnection = doc.AVEVAConnection,
111
                                     AVEVAConvertDate = doc.AVEVAConvertDate,
112
                                     AVEVAReviewDate = doc.AVEVAReviewDate,
113
                                     AVEVAStatus = doc.AVEVAStatus,
114
                                     AVEVAIssues = doc.AVEVAIssues,
115
                                     ReviewFilePath = doc.ReviewFilePath,
116
                                     ReviewFileName = doc.ReviewFileName,
117
                                     ProdReviewer = doc.ProdReviewer,
118
                                     ProdIsResult = doc.ProdIsResult,
119
                                     ProdRemarks = doc.ProdRemarks,
120
                                     ClientReviewer = doc.ClientReviewer,
121
                                     ClientIsResult = doc.ClientIsResult,
122
                                     ClientRemarks = doc.ClientRemarks,
123
                                     DTIsGateWay = doc.DTIsGateWay,
124
                                     DTIsImport = doc.DTIsImport,
125
                                     DTIsRegSystem = doc.DTIsRegSystem,
126
                                     DTRemarks = doc.DTRemarks,
127
                                     Markups = doc.Markups
128
                                 };
129

    
130
                    return (result, totalCnt);
131

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

    
141
        public bool SetDocumentData(List<Documents> docList, List<Documents> delDocList, string userId)
142
        {
143
            try
144
            {
145
                using (DocumentRepository rep = new DocumentRepository(this._MSSQLCONNSTR))
146
                {
147
                    return rep.SetDocumentData(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(List<ID2ProjectInfo> id2Infos, string userId)
204
        {
205
            bool isSuccess = false;
206

    
207
            try
208
            {
209
                IEnumerable<Documents> docs = this.GetAllDocuments();
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
}
클립보드 이미지 추가 (최대 크기: 500 MB)