프로젝트

일반

사용자정보

통계
| 개정판:

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

이력 | 보기 | 이력해설 | 다운로드 (10.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 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
                                     ToIsMarkup = doc.ToIsMarkup,
95
                                     FrReviewStatus = doc.FrReviewStatus,
96
                                     FrRemarks = doc.FrRemarks,
97
                                     FrCreator = doc.FrCreator,
98
                                     FrIsMarkup = doc.FrIsMarkup,
99
                                     IsID2Work = doc.IsID2Work,
100
                                     ID2Connection = doc.ID2Connection,
101
                                     ID2StartDate = doc.ID2StartDate,
102
                                     ID2EndDate = dw?.DATETIME == null ? (DateTime?)null : Convert.ToDateTime(dw?.DATETIME),
103
                                     ID2Status = doc.ID2Status,
104
                                     ID2Issues = doc.ID2Issues,
105
                                     AVEVAConnection = doc.AVEVAConnection,
106
                                     AVEVAConvertDate = doc.AVEVAConvertDate,
107
                                     AVEVAReviewDate = doc.AVEVAReviewDate,
108
                                     AVEVAStatus = doc.AVEVAStatus,
109
                                     AVEVAIssues = doc.AVEVAIssues,
110
                                     ReviewFilePath = doc.ReviewFilePath,
111
                                     ReviewFileName = doc.ReviewFileName,
112
                                     ProdReviewer = doc.ProdReviewer,
113
                                     ProdIsResult = doc.ProdIsResult,
114
                                     ProdRemarks = doc.ProdRemarks,
115
                                     ClientReviewer = doc.ClientReviewer,
116
                                     ClientIsResult = doc.ClientIsResult,
117
                                     ClientRemarks = doc.ClientRemarks,
118
                                     DTIsGateWay = doc.DTIsGateWay,
119
                                     DTIsImport = doc.DTIsImport,
120
                                     DTIsRegSystem = doc.DTIsRegSystem,
121
                                     DTRemarks = doc.DTRemarks,
122
                                     Markups = doc.Markups
123
                                 };
124

    
125
                    return (result, totalCnt);
126

    
127
                }
128
                return (dwgs, totalCnt);
129
            }
130
            catch (Exception ex)
131
            {
132
                throw ex;
133
            }
134
        }
135

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

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

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

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

    
196

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

    
213
        public bool SetID2Sync(string projectGroupID, List<ID2ProjectInfo> id2Infos, string userId)
214
        {
215
            bool isSuccess = false;
216

    
217
            try
218
            {
219
                IEnumerable<Documents> docs = this.GetAllDocuments(projectGroupID);
220
                List<ID2Drawings> id2docs = null;
221

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

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

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

    
255
            return isSuccess;
256
        }
257
    }
258
}
클립보드 이미지 추가 (최대 크기: 500 MB)