프로젝트

일반

사용자정보

개정판 504c5aa1

ID504c5aa173f3ae9c25a9815403f1f5d26401df85
상위 3bde451b
하위 be72bfd6

김태성이(가) 약 5년 전에 추가함

page count가 0인 경우 오류로 출력하도록 수정

Change-Id: Iadd016e39e7116d583407a4b59f6766b9516515e

차이점 보기:

ConvertService/ServiceBase/Markus.Service.Convert/ConvertService.cs
219 219

  
220 220
                    gMarkusPDF.pdfLoad(saveitem.PdfFilePath, saveitem.MinimumFontSize, saveitem.UseResolution);
221 221

  
222
                    /// 설정된 MultiThreadMaxPages에 따른 컨버터 분기
223
                    if (gMarkusPDF.PageCount() > ConvertProcessContext.MultiThreadMaxPages)
222
                    if(gMarkusPDF.PageCount() > 0)
224 223
                    {
225
                        // 큰 사이즈의 파일 컨버팅
226
                        result = ConvertBigFileProcess(saveitem);
227
                    }
228
                    else
229
                    {
230
                        /// 작은 사이즈의 컨버팅
231
                        await Task.Factory.StartNew(new Action(() =>
224
                        /// 설정된 MultiThreadMaxPages에 따른 컨버터 분기
225
                        if (gMarkusPDF.PageCount() > ConvertProcessContext.MultiThreadMaxPages)
232 226
                        {
233
                            result = gSaveTask.SaveFile(saveitem);
234
                        }), TaskCreationOptions.LongRunning);
235
                    }
227
                            // 큰 사이즈의 파일 컨버팅
228
                            result = ConvertBigFileProcess(saveitem);
229
                        }
230
                        else
231
                        {
232
                            /// 작은 사이즈의 컨버팅
233
                            await Task.Factory.StartNew(new Action(() =>
234
                            {
235
                                result = gSaveTask.SaveFile(saveitem);
236
                            }), TaskCreationOptions.LongRunning);
237
                        }
236 238

  
237
                    // 파일 체크 후 갯수가 안맞으면 다시 컨버팅한다.
238
                    if (ReConvert < 1 && (result.PageInfoList.Count() != saveitem.TotalPages
239
                                   || Directory.EnumerateFiles(saveitem.SavePath, "*.png").Count() != saveitem.TotalPages
240
                                       || Directory.EnumerateFiles(saveitem.SavePath, "*.jpg").Count() != saveitem.TotalPages))
241
                    {
242
                        result.StatusCode = StatusCodeType.PageError;
243
                        result.Message =  LogHelper.GetStack() + " " +"Page Count Error";
244
                        ReConvert = 1;
239
                        // 파일 체크 후 갯수가 안맞으면 다시 컨버팅한다.
240
                        if (ReConvert < 1 && (result.PageInfoList.Count() != saveitem.TotalPages
241
                                       || Directory.EnumerateFiles(saveitem.SavePath, "*.png").Count() != saveitem.TotalPages
242
                                           || Directory.EnumerateFiles(saveitem.SavePath, "*.jpg").Count() != saveitem.TotalPages))
243
                        {
244
                            result.StatusCode = StatusCodeType.PageError;
245
                            result.Message =  LogHelper.GetStack() + " " +"Page Count Error";
246
                            ReConvert = 1;
245 247

  
246
                        result = ConvertBigFileProcess(saveitem);
247
                    }
248
                            result = ConvertBigFileProcess(saveitem);
249
                        }
248 250

  
249
                    ///  페이지 정보 저장
250
                    if (result.PageInfoList?.Count() > 0)
251
                    {
252
                        bool docSetResult = false;
253 251

  
254
                        using (Markus.Service.DataBase.ConvertDatabase database = new Markus.Service.DataBase.ConvertDatabase(ConvertProcessContext.ConnectionString))
252
                        ///  페이지 정보 저장
253
                        if (result.PageInfoList?.Count() > 0)
255 254
                        {
256
                            List<EntityModel.DOCPAGE> docPageList = new List<EntityModel.DOCPAGE>();
255
                            bool docSetResult = false;
257 256

  
258
                            docPageList = result.PageInfoList.Select(f => new EntityModel.DOCPAGE
257
                            using (Markus.Service.DataBase.ConvertDatabase database = new Markus.Service.DataBase.ConvertDatabase(ConvertProcessContext.ConnectionString))
259 258
                            {
260
                                ID = GuidExtension.shortGuid(),
261
                                PAGE_WIDTH = f.Width.ToString(),
262
                                PAGE_HEIGHT = f.Height.ToString(),
263
                                PAGE_NUMBER = f.PageNo
264
                            }).ToList();
259
                                List<EntityModel.DOCPAGE> docPageList = new List<EntityModel.DOCPAGE>();
265 260

  
266
                            docSetResult = database.SetDocumentInfo(saveitem.Id, result.PageInfoList.Count, docPageList);
267
                        }
261
                                docPageList = result.PageInfoList.Select(f => new EntityModel.DOCPAGE
262
                                {
263
                                    ID = GuidExtension.shortGuid(),
264
                                    PAGE_WIDTH = f.Width.ToString(),
265
                                    PAGE_HEIGHT = f.Height.ToString(),
266
                                    PAGE_NUMBER = f.PageNo
267
                                }).ToList();
268 268

  
269
                        if (docSetResult)
270
                        {
271
                            result.StatusCode = StatusCodeType.Completed;
269
                                docSetResult = database.SetDocumentInfo(saveitem.Id, result.PageInfoList.Count, docPageList);
270
                            }
271

  
272
                            if (docSetResult)
273
                            {
274
                                result.StatusCode = StatusCodeType.Completed;
275
                            }
276
                            else
277
                            {
278
                                result.StatusCode = StatusCodeType.FileError;
279
                                result.Message = LogHelper.GetStack() + " " + $"Doc Set Error. {result.Message}";
280
                            }
272 281
                        }
273 282
                        else
274 283
                        {
275 284
                            result.StatusCode = StatusCodeType.FileError;
276
                            result.Message =  LogHelper.GetStack() + " " + $"Doc Set Error. {result.Message}";
285
                            result.Message = LogHelper.GetStack() + " " + $"Page List Get Error. {result.Message} ";
277 286
                        }
278 287
                    }
279 288
                    else
280 289
                    {
290
                        result.Message = $"File Error Page Count:0 - File path : { saveitem.PdfFilePath}";
281 291
                        result.StatusCode = StatusCodeType.FileError;
282
                        result.Message =  LogHelper.GetStack() + " " +$"Page List Get Error. {result.Message} ";
283 292
                    }
293

  
284 294
                }
285 295
                else
286 296
                {

내보내기 Unified diff

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