프로젝트

일반

사용자정보

개정판 41fa3d98

ID41fa3d98ae87e979aed72513a7731f31a9674c2c
상위 c47f358b
하위 783f535c

김동진이(가) 5년 이상 전에 추가함

issue #1123: docinfo update 수정. ignore true 옵션 추가.

Change-Id: I82f28d36d2485116fc009ec008ccb05ae48cc2ad

차이점 보기:

ConvertService/ServiceBase/ConvertionWebService/Conversion.asmx.cs
101 101
        }
102 102

  
103 103
        [WebMethod]
104
        public string ConvertRunIgnoreComment(string rev_No, string document_No, string document_Name, string group_No, string prj_No, string document_Id, string document_Url, string ignoreComment)
105
        {
106
            string _result = null;
107
            try
108
            {
109
                using (DeepView_Entity deepViewEntity = new DeepView_Entity(ConnectStringBuilder.DeepViewConnectionString().ToString()))
110
                {
111
                    //_result = ConnectStringBuilder.DeepViewConnectionString().ToString();
112
                    //var _RunProjects = deepViewEntity.RUN_PROJECTS.Where(r => r.PROJECT_NO == projNumber && DateTime.Parse(r.RUN_DATETIME)<= DateTime.Now);
113
                    //var _RunProjects = deepViewEntity.RUN_PROJECTS.Where(r => r.PROJECT_NO == projNumber);
114
                    var _RunProjects = deepViewEntity.RUN_PROJECTS.Where(r => r.PROJECT_NO != null);
115

  
116
                    if (_RunProjects.Count() > 0)
117
                    {
118
                        _result = SendKcom(rev_No, document_No, document_Name, group_No, prj_No, document_Id, document_Url,ignoreComment);
119
                    }
120
                    else
121
                    {
122
                        _result = false.ToString();
123
                    }
124
                }
125
            }
126
            catch (Exception ex)
127
            {
128
                _result = ex.Message.ToString();
129
                SendNotice("Project NO : " + prj_No + "\r\n  DocumentUrl : " + document_Url + "\r\n Error" + ex.ToString());
130
            }
131
            return _result;
132
        }
133

  
134
        private string SendKcom(string rev_No, string document_No, string document_Name, string group_No, string prj_No, string document_Id, string document_Url, string ignoreComment)
135
        {
136
            string result = false.ToString();
137

  
138
            if (remObj == null)
139
            {
140
                result = "Window Service Connection Error";
141
            }
142
            else
143
            {
144
                //string _id = GetGuid(0, GuidGenerator.GetUniqueGuid()).ToString();
145
                string _id = shortGuid();
146
                string _doc_id = ((UInt32)document_Id.GetHashCode()).ToString();
147
                
148
                using (DeepView_Entity _entity = new DeepView_Entity(ConnectStringBuilder.DeepViewConnectionString().ToString()))
149
                {
150
                    var doc = _entity.DOCUMENT_ITEM.Where(d => d.ID == document_Id).FirstOrDefault();
151
                    if (doc != null)
152
                    {
153
                        if (bool.Parse(ignoreComment))
154
                        {
155
                            try
156
                            {
157
                                var docinfo = _entity.DOCINFO.Where(x => x.DOCUMENT_ID == doc.DOCUMENT_ID).FirstOrDefault();
158
                                var markupinfos = _entity.MARKUP_INFO.Where(x => x.DOCINFO_ID == docinfo.ID).ToList();
159
                                foreach (var markupinfo in markupinfos)
160
                                {
161
                                    var markupinfoversions = _entity.MARKUP_INFO_VERSION.Where(x => x.MARKUPINFO_ID == markupinfo.ID).ToList();
162
                                    foreach (var markupinfoversion in markupinfoversions)
163
                                    {
164
                                        var markupdatas = _entity.MARKUP_DATA.Where(x => x.MARKUPINFO_VERSION_ID == markupinfoversion.ID).ToList();
165
                                        foreach (var markupdata in markupdatas)
166
                                        {
167
                                            _entity.DeleteObject(markupdata);
168
                                        }
169
                                        _entity.DeleteObject(markupinfoversion);
170
                                    }
171
                                    _entity.DeleteObject(markupinfo);
172
                                }
173
                                _entity.SaveChanges();
174
                            }
175
                            catch (Exception ex)
176
                            {
177
                                result = "deleteobject error:"+ex.ToString();
178
                            }
179
                                                    
180
                        }
181
                        var converterdoc = _entity.CONVERTER_DOC.Where(c => c.DOCUMENT_ID == doc.DOCUMENT_ID).FirstOrDefault();
182
                        _entity.DeleteObject(converterdoc);
183
                        _entity.DeleteObject(doc);
184
                        _entity.SaveChanges();
185
                        document_Url = HttpUtility.UrlDecode(document_Url);
186
                    }
187
                    int cnt = _entity.DOCUMENT_ITEM.ToList().Count;
188
                    if (string.IsNullOrEmpty(group_No))
189
                    {
190
                        group_No = "0";
191
                    }
192
                    if (!prj_No.Equals("150128"))
193
                    {
194
                        //Omsk 는 웹서비스 호출 시 인코딩
195
                        //Omsk 제외는 Markus 에서 인코딩
196
                        document_Url = HttpUtility.UrlEncodeUnicode(document_Url);
197
                    }
198
                    _entity.AddToDOCUMENT_ITEM(new DOCUMENT_ITEM
199
                    {
200
                        ID = document_Id,
201
                        REVISION = rev_No,
202
                        DOCUMENT_NO = document_No,
203
                        DOCUMENT_NAME = document_Name,
204
                        GROUP_NO = group_No,
205
                        ORIGINAL_FILE = document_Url,
206
                        DOCUMENT_ID = _doc_id,
207
                        PROJECT_NO = prj_No,
208
                    });
209
                    _entity.AddToCONVERTER_DOC(new CONVERTER_DOC
210
                    {
211
                        ID = _id,
212
                        CREATE_DATETIME = DateTime.Now,
213
                        DOCUMENT_URL = document_Url,
214
                        PROJECT_NO = prj_No,
215
                        DOCUMENT_ID = _doc_id,
216
                    });
217
                    _entity.SaveChanges();
218
                }
219

  
220
                if (Properties.Settings.Default.MARKUS_V3_PROJECTS.Split(',').Contains(prj_No))
221
                {
222
                    try
223
                    {
224
                        System.Net.WebClient client = new System.Net.WebClient();
225
                        var convertResult = client.DownloadString($"{Properties.Settings.Default.MARKUS_V3_ADDRESS}/Rest/ConvertAdd?ProjectNo={prj_No}&DocumentID={_id}");
226

  
227
                        JObject jObject = JObject.Parse(convertResult, new JsonLoadSettings());
228
                        result = jObject["ConvertAddResult"].ToString();
229
                    }
230
                    catch (Exception ex)
231
                    {
232
                        result = $"Markus V3 Connect Error {ex.Message}";
233
                    }
234
                }
235
                else
236
                {
237
                    var convertResult = remObj.SetConverterPDF(prj_No, _id);
238

  
239
                    if (convertResult.Exception != null)
240
                    {
241
                        result = false.ToString();
242
                    }
243
                    else
244
                    {
245
                        result = true.ToString();
246
                    }
247
                }
248

  
249
            }
250

  
251
            return result;
252
        }
253
        [WebMethod]
104 254
        public string ManualConvert(string rev_No, string document_No, string document_Name, string group_No, string prj_No, string document_Id, string document_Url)
105 255
        {
106 256
            string _result = null;
......
238 388
            return _result;
239 389
        }
240 390
        [WebMethod]
241
        public string UpdateVP(string EnsembleId, string rev_No, string document_No, string document_Name)
391
        public string UpdateVP(string EnsembleId, string rev_No, string document_No, string document_Name, string pdf_url)
242 392
        {
243 393
            string _result = null;
244 394
            try
......
252 402
                        doc.DOCUMENT_NO = document_No;
253 403
                    if (!string.IsNullOrEmpty(document_Name))
254 404
                        doc.DOCUMENT_NAME = document_Name;
405
                    if (!string.IsNullOrEmpty(pdf_url))
406
                    {
407
                        string url = pdf_url;
408
                        if (!doc.PROJECT_NO.Equals("150128"))
409
                        {   
410
                            url = HttpUtility.UrlEncodeUnicode(url);
411
                        }
412
                        doc.ORIGINAL_FILE = url;
413
                    }                        
255 414
                    deepViewEntity.SaveChanges();
256 415
                }
257 416
            }
......
385 544

  
386 545
            return result;
387 546
        }
547
                
388 548
        private string ManualSendKcom(string rev_No, string document_No, string document_Name, string group_No, string prj_No, string document_Id, string document_Url)
389 549
        {
390 550
            if (remObj == null)
ConvertService/ServiceBase/Markus.Service.DataBase/ConvertDatabase.cs
138 138
                string docId = new Guid().CreateUniqueGuid().ToString();
139 139

  
140 140
                var docinfo = entities.DOCINFO.FirstOrDefault(x => x.PROJECT_NO == convertDoc.PROJECT_NO && x.DOCUMENT_ID == convertDoc.DOCUMENT_ID);
141

  
141
                
142 142
                if (docinfo != null)
143 143
                {
144
                    // 기존 코멘트 유지
145
                    docId = docinfo.ID;
144
                    // 기존 Docpage 삭제.
146 145
                    entities.DOCPAGE.RemoveRange(docinfo.DOCPAGE);
147
                    entities.DOCINFO.Remove(docinfo);
146

  
147
                    // 기존 코멘트 유지를 위한 Docinfo update                    
148
                    docinfo.PROJECT_NO = convertDoc.PROJECT_NO;
149
                    docinfo.ORIGINAL_FILE = convertDoc.DOCUMENT_URL;
150
                    docinfo.PAGE_COUNT = totalPage;                    
151
                    docinfo.DOCPAGE = pageinfo;                    
148 152
                    entities.SaveChanges();
153
                    result = true;
149 154
                }
150

  
151
                DOCINFO instace = new DOCINFO
152
                {
153
                    ID = docId,
154
                    PROJECT_NO = convertDoc.PROJECT_NO,
155
                    ORIGINAL_FILE = convertDoc.DOCUMENT_URL,
156
                    DOCUMENT_ID = convertDoc.DOCUMENT_ID,
157
                    PAGE_COUNT = totalPage,
158
                    DOCPAGE = pageinfo
159
                };
160

  
161
                entities.DOCINFO.Add(instace);
162
                var save = entities.SaveChanges();
163

  
164
                if (save == pageinfo.Count() + 1)
155
                else
165 156
                {
166
                    result = true;
157
                    DOCINFO instace = new DOCINFO
158
                    {
159
                        ID = docId,
160
                        PROJECT_NO = convertDoc.PROJECT_NO,
161
                        ORIGINAL_FILE = convertDoc.DOCUMENT_URL,
162
                        DOCUMENT_ID = convertDoc.DOCUMENT_ID,
163
                        PAGE_COUNT = totalPage,
164
                        DOCPAGE = pageinfo
165
                    };
166

  
167
                    entities.DOCINFO.Add(instace);
168
                    var save = entities.SaveChanges();
169

  
170
                    if (save == pageinfo.Count() + 1)
171
                    {
172
                        result = true;
173
                    }
167 174
                }
175

  
176
                
177
                
168 178
            }
169 179

  
170 180
            return result;

내보내기 Unified diff

클립보드 이미지 추가 (최대 크기: 500 MB)