프로젝트

일반

사용자정보

개정판 60723dc9

ID60723dc91d5c30c2d25604b9ba4f4363e190603e
상위 31e0b8c1
하위 dca80511, 1ae729e4

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

convert 오류 수정

Change-Id: Idcebecb02f64515cc20b61054669368e2f677013

차이점 보기:

ConvertService/ServiceBase/ConnectionStringBuild/Properties/AssemblyInfo.cs
51 51
// 모든 값을 지정하거나 아래와 같이 '*'를 사용하여 빌드 번호 및 수정 번호가 자동으로
52 52
// 지정되도록 할 수 있습니다.
53 53
// [assembly: AssemblyVersion("1.0.*")]
54
[assembly: AssemblyVersion("2.0.1.0")]
55
[assembly: AssemblyFileVersion("2.0.1.0")]
54
[assembly: AssemblyVersion("2.5.2.0")]
55
[assembly: AssemblyFileVersion("2.5.2.0")]
ConvertService/ServiceBase/ConvertionWebService/Properties/AssemblyInfo.cs
31 31
//
32 32
// You can specify all the values or you can default the Revision and Build Numbers 
33 33
// by using the '*' as shown below:
34
[assembly: AssemblyVersion("2.0.1.0")]
35
[assembly: AssemblyFileVersion("2.0.1.0")]
34
[assembly: AssemblyVersion("2.5.2.0")]
35
[assembly: AssemblyFileVersion("2.5.2.0")]
36 36
[assembly: log4net.Config.XmlConfigurator(ConfigFile = "Log.config", Watch = true)]
ConvertService/ServiceBase/IServiceBase/Properties/AssemblyInfo.cs
32 32
// 모든 값을 지정하거나 아래와 같이 '*'를 사용하여 빌드 번호 및 수정 번호를
33 33
// 기본값으로 할 수 있습니다.
34 34
// [assembly: AssemblyVersion("1.0.*")]
35
[assembly: AssemblyVersion("2.0.1.0")]
36
[assembly: AssemblyFileVersion("2.0.1.0")]
35
[assembly: AssemblyVersion("2.5.2.0")]
36
[assembly: AssemblyFileVersion("2.5.2.0")]
ConvertService/ServiceBase/Markus.Service.Convert/ConvertService.cs
184 184
                        return result;
185 185
                    }
186 186

  
187
                    System.Threading.Thread.Sleep(500);
188

  
187
                    System.Threading.Thread.SpinWait(10);
189 188
                }
190 189

  
191 190
                System.IO.Directory.CreateDirectory(saveitem.SavePath);
......
300 299
                //}
301 300

  
302 301
                saveItem.PdfFilePath = HttpUtility.UrlDecode(saveItem.PdfFilePath); //PDF 전체 경로
303
                string FileName = DownloadUri.GetFileName(saveItem.PdfFilePath);
304 302

  
305
                string downloadFilePath = System.IO.Path.Combine(saveItem.SavePath, FileName);
303

  
304
                string FileName = "";
305
                string downloadFilePath = "";
306 306

  
307 307
                // 드라이브 경로가 포함되었는지 판단.
308 308
                if (Path.IsPathRooted(saveItem.PdfFilePath))
309 309
                {
310
                    if (File.Exists(saveItem.PdfFilePath))
310
                    FileInfo file = new FileInfo(saveItem.PdfFilePath);
311

  
312
                    if (file.Exists)
311 313
                    {
312
                        File.Copy(saveItem.PdfFilePath, downloadFilePath, true);
314
                        FileName = file.Name;
315
                        downloadFilePath = System.IO.Path.Combine(saveItem.SavePath, FileName);
316
                        file.CopyTo(downloadFilePath, true);
313 317
                    }
314 318
                    else
315 319
                    {
......
320 324
                {
321 325
                    try
322 326
                    {
327
                        FileName = DownloadUri.GetFileName(saveItem.PdfFilePath);
328
                        downloadFilePath = System.IO.Path.Combine(saveItem.SavePath, FileName);
329

  
323 330
                        using (System.Net.WebClient webClient = new System.Net.WebClient())
324 331
                        {
325 332
                            webClient.UseDefaultCredentials = true;//.Headers.Add("Authorization: BASIC SGVsbG8="); //가상의 인증
......
399 406
                        Console.WriteLine($"physical memory : {Environment.WorkingSet}");
400 407

  
401 408
                        gMarkusPDF.Dispose();
402
                        GC.Collect();
403
                        GC.WaitForPendingFinalizers();
404
                        GC.Collect();
409

  
410
                        System.Threading.Thread.SpinWait(5);
405 411

  
406 412
                        gMarkusPDF = new MarkusPDF();
407 413
                        gMarkusPDF.pdfLoad(saveitem.PdfFilePath, saveitem.MinimumFontSize, saveitem.UseResolution);
408 414
                    }
415
                    System.Threading.Thread.SpinWait(2);
409 416
                }
410 417

  
411 418
                result.StatusCode = StatusCodeType.Completed;
ConvertService/ServiceBase/Markus.Service.Convert/Properties/AssemblyInfo.cs
32 32
// 모든 값을 지정하거나 아래와 같이 '*'를 사용하여 빌드 번호 및 수정 번호를
33 33
// 기본값으로 할 수 있습니다.
34 34
// [assembly: AssemblyVersion("1.0.*")]
35
[assembly: AssemblyVersion("2.0.1.0")]
36
[assembly: AssemblyFileVersion("2.0.1.0")]
35
[assembly: AssemblyVersion("2.5.2.0")]
36
[assembly: AssemblyFileVersion("2.5.2.0")]
37 37
[assembly: log4net.Config.XmlConfigurator(ConfigFile = "Log.config", Watch = true)]
ConvertService/ServiceBase/Markus.Service.ConvertProcess/Program.cs
54 54
            finally
55 55
            {
56 56
                convert?.Dispose();
57
                GC.Collect();
58
                GC.WaitForPendingFinalizers();
59
                GC.Collect();
60

  
57 61
                Application.Exit();
58 62
            }
59 63
        }
ConvertService/ServiceBase/Markus.Service.ConvertProcess/Properties/AssemblyInfo.cs
32 32
// 모든 값을 지정하거나 아래와 같이 '*'를 사용하여 빌드 번호 및 수정 번호가 자동으로
33 33
// 지정되도록 할 수 있습니다.
34 34
// [assembly: AssemblyVersion("1.0.*")]
35
[assembly: AssemblyVersion("2.0.1.0")]
36
[assembly: AssemblyFileVersion("2.0.1.0")]
35
[assembly: AssemblyVersion("2.5.2.0")]
36
[assembly: AssemblyFileVersion("2.5.2.0")]
37 37
[assembly: log4net.Config.XmlConfigurator(ConfigFile = "Log.config", Watch = true)]
ConvertService/ServiceBase/Markus.Service.DataBase/ConvertDatabase.cs
251 251
            var convertWaitingItems = entities.CONVERTER_DOC.OrderBy(x => x.CREATE_DATETIME).Where(
252 252
                                        x =>
253 253
                                        projectList.Contains(x.PROJECT_NO) &&
254
                                         (x.STATUS > (int)StatusCodeType.None && x.STATUS < (int)StatusCodeType.Completed));
254
                                         (x.STATUS > (int)StatusCodeType.None && x.STATUS < (int)StatusCodeType.Completed) && x.RECONVERTER < 2);
255 255

  
256 256
            return convertWaitingItems.ToList();
257 257
        }
......
341 341
        {
342 342
            List<Interface.ConvertItem> convertItems = new List<Interface.ConvertItem>();
343 343

  
344
            var items = entities.CONVERTER_DOC.Where(x => x.STATUS == (int)statusCodeType && where(x)).Take(takeCount).ToList(); //.Where(x => x.PROJECT_NO == gProjectNo);
344

  
345
            var items = entities.CONVERTER_DOC.Where(x => x.STATUS == (int)statusCodeType).Take(takeCount).ToList(); //.Where(x => x.PROJECT_NO == gProjectNo);
345 346

  
346 347
            if (items.Count() > 0)
347 348
            {
ConvertService/ServiceBase/Markus.Service.DataBase/Properties/AssemblyInfo.cs
32 32
// 모든 값을 지정하거나 아래와 같이 '*'를 사용하여 빌드 번호 및 수정 번호를
33 33
// 기본값으로 할 수 있습니다.
34 34
// [assembly: AssemblyVersion("1.0.*")]
35
[assembly: AssemblyVersion("2.0.1.0")]
36
[assembly: AssemblyFileVersion("2.0.1.0")]
35
[assembly: AssemblyVersion("2.5.2.0")]
36
[assembly: AssemblyFileVersion("2.5.2.0")]
ConvertService/ServiceBase/Markus.Service.Extensions/Properties/AssemblyInfo.cs
32 32
// 모든 값을 지정하거나 아래와 같이 '*'를 사용하여 빌드 번호 및 수정 번호를
33 33
// 기본값으로 할 수 있습니다.
34 34
// [assembly: AssemblyVersion("1.0.*")]
35
[assembly: AssemblyVersion("2.0.1.0")]
36
[assembly: AssemblyFileVersion("2.0.1.0")]
35
[assembly: AssemblyVersion("2.5.2.0")]
36
[assembly: AssemblyFileVersion("2.5.2.0")]
ConvertService/ServiceBase/Markus.Service.Monitor/Properties/AssemblyInfo.cs
32 32
// 모든 값을 지정하거나 아래와 같이 '*'를 사용하여 빌드 번호 및 수정 번호가 자동으로
33 33
// 지정되도록 할 수 있습니다.
34 34
// [assembly: AssemblyVersion("1.0.*")]
35
[assembly: AssemblyVersion("2.0.1.0")]
36
[assembly: AssemblyFileVersion("2.0.1.0")]
35
[assembly: AssemblyVersion("2.5.2.0")]
36
[assembly: AssemblyFileVersion("2.5.2.0")]
ConvertService/ServiceBase/Markus.Service.Station/ApplicationDefine.cs
16 16
        public const string SERVICE_ID = "SERVICE_ID";
17 17
        public const string SERVICE_LIST = "SERVICE_LIST";
18 18

  
19
        public const string CONVERT_SERVICE_PROCESS = "CONVERT_SERVICE_PROCESS";
20 19
        public const string CREATE_WINDOW = "WINDOW";
21 20

  
22 21
        public const string MARKUS_CONNECTION_STRING = "MarkusDataBaseConnectionString";
ConvertService/ServiceBase/Markus.Service.Station/Properties/AssemblyInfo.cs
32 32
// 모든 값을 지정하거나 아래와 같이 '*'를 사용하여 빌드 번호 및 수정 번호가 자동으로
33 33
// 지정되도록 할 수 있습니다.
34 34
// [assembly: AssemblyVersion("1.0.*")]
35
[assembly: AssemblyVersion("2.0.1.0")]
36
[assembly: AssemblyFileVersion("2.0.1.0")]
35
[assembly: AssemblyVersion("2.5.2.0")]
36
[assembly: AssemblyFileVersion("2.5.2.0")]
37 37
[assembly: log4net.Config.XmlConfigurator(ConfigFile = "Log.config", Watch = true)]
ConvertService/ServiceBase/Markus.Service.Station/ServiceStation.cs
1 1
using log4net;
2
using Markus.EntityModel;
2 3
using Markus.Service.Extensions;
3 4
using Markus.Service.Helper;
4 5
using Markus.Service.IWcfService;
......
26 27
    {
27 28
        protected ILog logger = LogManager.GetLogger(typeof(ServiceStation));
28 29
        protected ServiceHost gWcfServiceHost;
30
        private SERVICE_PROPERTIES ServiceProperty;
29 31

  
30 32
        private static System.Timers.Timer timer;
31 33
        
32
        private int MultiProcessCount = 1;
33 34
        private string ServiceID;
34 35
        private List<SubStationServiceItem> StationServiceList;
35 36
        private List<string> StationServiceIDList;
36
        private Service.WcfClient.StationServiceAsync.StationServiceClient StationClient;
37
        private Service.WcfClient.StationServiceTask.StationServiceClient StationClient;
37 38
        private bool IsStation;
38 39

  
39 40
        private Uri gServiceHostAddress;
......
109 110
                        {
110 111
                            BasicHttpBinding myBinding = new BasicHttpBinding();
111 112
                            EndpointAddress myEndpoint = new EndpointAddress(UriHelper.UriCreate(address));
112
                            StationClient = new WcfClient.StationServiceAsync.StationServiceClient(myBinding, myEndpoint);
113
                            StationClient = new WcfClient.StationServiceTask.StationServiceClient(myBinding, myEndpoint);
113 114
                        }
114 115
                    }
115
                    
116
                    MultiProcessCount = System.Convert.ToInt16(config.GetValue(CONFIG_DEFINE.SERVICE, CONFIG_DEFINE.CONVERT_SERVICE_PROCESS,"5"));
117 116

  
118 117
                    CreateProcessWindow = System.Convert.ToBoolean(config.GetValue(CONFIG_DEFINE.SERVICE, CONFIG_DEFINE.CREATE_WINDOW, "false"));
119 118

  
......
148 147
                    {
149 148
                        gServiceHostAddress = UriHelper.UriCreate($"http://localhost:{port}/{endpointName}");
150 149
                    }
150

  
151
                    using (Markus.Service.DataBase.ConvertDatabase db = new Markus.Service.DataBase.ConvertDatabase(MarkusDBConnectionString))
152
                    {
153
                        ServiceProperty = db.GetServiceProperties(ServiceID);
154
                    }
151 155
                }
152 156
            }
153 157
            catch (Exception ex)
......
171 175
        private void Timer_Elapsed(object sender, ElapsedEventArgs e)
172 176
        {
173 177
     
174
            System.Diagnostics.Debug.WriteLine("timer : " + e.SignalTime);
178
            System.Diagnostics.Debug.WriteLine("timer : " + e?.SignalTime);
175 179
            try
176 180
            {
177 181
                if (!IsReleaseItems)
......
179 183
                    ReleaseItems();
180 184
                }
181 185

  
182
                logger.Info("StationService Info");
186
                if ((DateTime.Now - logTime) >= new TimeSpan(0, 5, 0))
187
                {
188
                    logTime = DateTime.Now;
189
                    logger.Info("StationService Alive Check");
190
                }
183 191
            }
184 192
            catch (Exception ex)
185 193
            {
......
205 213

  
206 214
                if (IsStation)
207 215
                {
208
                    if (IsDataBaseWaitingList(1))
209
                    {
216
                    //if (IsDataBaseWaitingList(1))
217
                    //{
210 218
                        System.Diagnostics.Debug.WriteLine("ReleaseItems start");
211
                        ReflashSubService();
219
                        ReflashSubServiceAsync();
212 220
                        CleanUpDataBaseItems();
213 221
                        setDataBaseWaitingList();
214 222
                        System.Diagnostics.Debug.WriteLine("ReleaseItems end");
215
                    }
223
                    //}
216 224
                }
217 225
            }
218 226
            catch (Exception ex)
......
240 248
            int processCount = Environment.ProcessorCount;
241 249
            int AffinityScope = 1;
242 250

  
243
            if (processCount > MultiProcessCount)
251
            if (processCount > ServiceProperty.PROCESS_COUNT)
244 252
            {
245
                AffinityScope = processCount / MultiProcessCount;
253
                AffinityScope = processCount / ServiceProperty.PROCESS_COUNT;
246 254
            }
247 255

  
248 256
            for (int i = 0; i < processCount - AffinityScope; i += AffinityScope)
......
268 276
                this.GetApplicationConfig();
269 277
                logger.Info("Read Config");
270 278

  
271
                ProcessorAffinityInit();
279
                if (ServiceProperty != null)
280
                {
281
                    ProcessorAffinityInit();
282
                }
283
                else
284
                {
285
                    throw new Exception("StartService Error. ServiceProperty is Null");
286
                }
272 287

  
273 288
            }
274 289
            catch (Exception e)
275 290
            {
276
                throw new Exception("Stop StartService Error. ", e);
291
                throw new Exception("StartService Error. ", e);
277 292
            }
293

  
278 294
            try
279 295
            {
280 296
                // MarkusPDF.dll에서 pThread lib 사용을 위해 Insatll
......
341 357

  
342 358

  
343 359
            logger.Info("Start ServiceStation");
344
            
345
            timer = new System.Timers.Timer(new TimeSpan(0,0,0,10).TotalMilliseconds);
346
            timer.Elapsed += Timer_Elapsed;
347
            timer.AutoReset = true;
348
            timer.Start();
349

  
360
            var autoEvent = new System.Threading.AutoResetEvent(false);
361

  
362
            stateTimer = new System.Threading.Timer(new System.Threading.TimerCallback(TimerCallBack), null, 0, 10000);
363
            //timer = new System.Timers.Timer(new TimeSpan(0, 0, 0, 10).TotalMilliseconds);
364
            //timer.Elapsed += Timer_Elapsed;
365
            //timer.AutoReset = true;
366
            //timer.Start();
367
            //Timer_Elapsed(null, null);
350 368
            return true;
351 369
        }
352 370

  
371
        System.Threading.Timer stateTimer;
372
        DateTime logTime;
373

  
374
        private void TimerCallBack(object state)
375
        {
376
            System.Threading.AutoResetEvent autoEvent = (System.Threading.AutoResetEvent)state;
377
            //stateTimer.Change(-1, -1);
378
            try
379
            {
380
                if (!IsReleaseItems)
381
                {
382
                    ReleaseItems();
383
                }
384

  
385
                if ((DateTime.Now - logTime) >= new TimeSpan(0, 5, 0))
386
                {
387
                    logTime = DateTime.Now;
388
                    logger.Info("StationService Alive Check");
389
                }
390

  
391
            }
392
            catch (Exception ex)
393
            {
394
                logger.Error("Timer Error ", ex);
395
            }
396
            System.Threading.Thread.SpinWait(100000);
397
            stateTimer.Change(0, 10000);
398
        }
399

  
353 400
        public void SetServiceList(List<string> serviceList)
354 401
        {
355 402
            StationServiceList = new List<SubStationServiceItem>();
ConvertService/ServiceBase/Markus.Service.Station/ServiceStation.ini
1 1
[SERVICE]
2
CONVERT_SERVICE_PROCESS = 15
3 2
WINDOW = true
4 3
IS_STATAION = true
5 4

  
6
STATAION_ADDRESS = http://192.168.0.99:9101/StationService
5
STATAION_ADDRESS = http://192.168.0.83:9101/StationService
7 6

  
8 7
SERVICE_ID = 0AC6FD8E-5060-4B0F-9E6B-A7380B9FCF7B
9

  
10 8
# 구분자는 ','
11
SERVICE_LIST = 03A98B3B-ECCD-4972-B658-43C7571965DA,0AC6FD8E-5060-4B0F-9E6B-A7380B9FCF7B
9
SERVICE_LIST = 0AC6FD8E-5060-4B0F-9E6B-A7380B9FCF7B,03A98B3B-ECCD-4972-B658-43C7571965DA
12 10

  
13 11
# DAELIM
14 12
#MarkusDataBaseConnectionString = yRW0I8OJY/boJcR9rTFeH229g456BwO8BaXQbW8h6iCR10JRc5tOl2BDWa1595q0bvW9uD5HsHn9ke4oK3yaw2OYHh8pgYKdhW48xeAl49510h1DPv8uSbqcWdwZ2AjernORxxaEAUqHZb5DFlndcWuid82ZwP/EGxGNhaaCG+KVogeHwI5FZZKrmUTWe3159qk11Q4XswrHeLy8HQn5Qg==
15 13

  
14
# local test
15
MarkusDataBaseConnectionString = AkxeK6rlR/pvDogtyJST7sHEFe9zDPwVf8W7ulsvVrFnqBcpEKFhacEE4OpBvuJYrkkubP91v40LyQ6mReCd3pXhTAPs5gL4W6eRhG6GszFyxlv0fncEZ+aacRQNNIzTlQCenZdTJdt2ylaRyCRYXb9HZCIeZKcuDef2pn1ny3dp90lB2vv15bn5UIaqIZA8bLSbBTXt8Ft4Xttl4In5Ow==
16

  
16 17
# remote test MARKUS_V3
17
MarkusDataBaseConnectionString = YNP/egPgsKY5wO/j9T7VgkiSClJH7p9hANqnTbQFNYaOnS1f9eeZS5UzPwsGuI3syNfjUnBbiLk37BjsNNWzZevN8Jbd9EzwE9l5g8upXhNqX9eF2brizRZ4ud+GK/35HvqSjvIaz5ggszA3dHT2b+r9279mJXo42QzRBNbUcBgnl2njNNSB7EfckQ5Hwd7eatvWuf3ESIUv4KTqGU5V6A==
18
#MarkusDataBaseConnectionString = YNP/egPgsKY5wO/j9T7VgkiSClJH7p9hANqnTbQFNYaOnS1f9eeZS5UzPwsGuI3syNfjUnBbiLk37BjsNNWzZevN8Jbd9EzwE9l5g8upXhNqX9eF2brizRZ4ud+GK/35HvqSjvIaz5ggszA3dHT2b+r9279mJXo42QzRBNbUcBgnl2njNNSB7EfckQ5Hwd7eatvWuf3ESIUv4KTqGU5V6A==
18 19

  
19 20
DownloadTempFolder = C:\CONVERT_SERVICE_TEMP
20 21
MULTI_TRHEAD_MAX_PAGE = 150
......
37 38

  
38 39

  
39 40
# 구분자는 콤마
40
FITER_PROCECT = 000000,130351,150052,150128,150472,170062,170098,170108,180087,180105,180108,180116,180146,180183,180220,180229
41
FITER_PROCECT = 111111,000000,130351,150052,150128,150472,170062,170098,170108,180087,180105,180108,180116,180146,180183,180220,180229
41 42

  
42 43
[WCF_ENDPOINT]
43 44
STATION_PORT =	9101
ConvertService/ServiceBase/Markus.Service.Station/StationService/ServiceStationTask.cs
169 169
            return result;
170 170
        }
171 171

  
172
        private async void ReflashSubService()
172
        private async void ReflashSubServiceAsync()
173 173
        {
174 174
            foreach (var subservice in StationServiceList)
175 175
            {
......
218 218

  
219 219
                    if (station != null)
220 220
                    {
221
                        System.Diagnostics.Debug.WriteLine($"{station.Properties.SERVICE_ADDRESS}  {station.Properties.PROCESS_COUNT}/{station.AliveCount}");
222
                        var result = await station.Service.ConvertAddAsync(ProjectNo, ConvertID);
223
                        
224
                        if(result.ToLower() == true.ToString().ToLower())
221
                        if (station.Properties.PROCESS_COUNT - station.AliveCount > 0)
225 222
                        {
226
                            station.AliveCount++;
223
                            System.Diagnostics.Debug.WriteLine($"{station.Properties.SERVICE_ADDRESS}  {station.Properties.PROCESS_COUNT}/{station.AliveCount}");
224
                            var result = await station.Service.ConvertAddAsync(ProjectNo, ConvertID);
225

  
226
                            if (!result.IsNullOrEmpty())
227
                            {
228
                                if (result.ToLower() == true.ToString().ToLower())
229
                                {
230
                                    station.AliveCount++;
231
                                }
232
                            }
233
                            else
234
                            {
235
                                System.Diagnostics.Debug.WriteLine("result : Nulll;");
236
                            }
237

  
238
                            logger.Info($"PassConvertItem - Service ID : {station.Properties.ID} ConvertID : {ConvertID}");
227 239
                        }
228

  
229
                        logger.Info($"PassConvertItem - Service ID : {station.Properties.ID} ConvertID : {ConvertID}");
230 240
                    }
231 241
                }
232 242
            }
......
254 264
                {
255 265
                    var argumentList = processList.Select(f => f.Arguments().CommandLine).SelectMany(f => f);
256 266

  
257
                    for (int i = AliveConvertQueue.Count - 1; i >= 0; --i)
267
                    List<ConvertItem> convertItems = AliveConvertQueue;
268

  
269
                    try
258 270
                    {
259
                        if (argumentList.Count(x => x == AliveConvertQueue[i].ConvertID) == 0)
271
                        for (int i = convertItems.Count - 1; i >= 0; --i)
260 272
                        {
261
                            AliveConvertQueue.RemoveAt(i);
273
                            if (argumentList.Count(x => x == convertItems[i].ConvertID) == 0)
274
                            {
275
                                AliveConvertQueue.RemoveAt(i);
276
                            }
262 277
                        }
263 278
                    }
279
                    catch (Exception ex)
280
                    {
281
                        System.Diagnostics.Debug.WriteLine(ex);
282
                    }
264 283
                }
265 284
            }
266 285
        }
267 286

  
268 287
        /// <summary>
269
        /// 데이터베이스에서 멈춰있거나 
288
        /// AliveConvertQueue와 db를 비교하여 AliveConvertQueue에 없는 데이터를 초기화 하여 다시 컨버팅
270 289
        /// </summary>
271 290
        private async void CleanUpDataBaseItems()
272 291
        {
......
276 295

  
277 296
                List< WcfClient.StationServiceTask.ConvertItem> aliveItems = new List<WcfClient.StationServiceTask.ConvertItem>();
278 297

  
279
                foreach (var item in StationServiceList.Where(x=>x.IsOnline))
298
                try
280 299
                {
281
                    try
300
                    foreach (var item in StationServiceList.Where(x => x.IsOnline))
282 301
                    {
283 302
                        var serviceItems = await item.Service.AliveConvertListAsync();
284 303
                        aliveItems.AddRange(serviceItems);
285 304
                    }
286
                    catch (Exception)
305

  
306
                    foreach (var item in items)
287 307
                    {
308
                        if (aliveItems.Count(x => x.ConvertID == item.ID) == 0)
309
                        {
310
                            database.SetCleanUpItem(item.ID);
311
                        }
288 312
                    }
289 313
                }
290

  
291
                foreach (var item in items)
314
                catch (Exception ex)
292 315
                {
293
                    if(aliveItems.Count(x=>x.ConvertID == item.ID) == 0)
294
                    {
295
                        database.SetCleanUpItem(item.ID);
296
                    }
316
                    System.Diagnostics.Debug.WriteLine(ex.ToString());
297 317
                }
298 318
            }
299 319
        }
......
345 365
            }
346 366
        }
347 367

  
348
        private void ConvertFinish(ConvertItem convertitem)
368
        private async void ConvertFinish(ConvertItem convertitem)
349 369
        {
350 370
            try
351 371
            {
......
369 389
                {
370 390
                    if (StationClient != null)
371 391
                    {
372
                        StationClient.ReleaseConvertItems();
392
                       await  StationClient.ReleaseConvertItemsAsync();
373 393
                    }
374 394
                }
375 395
                //if (ServiceStation.AliveConvertQueue.Count() < MultiProcessCount)
ConvertService/ServiceBase/Markus.Service.Station/StationService/ServiceStationWCF.cs
144 144
                    {
145 145
                        if (AliveConvertQueue.Count(c => c.UniqueKey == convertItem.UniqueKey) == 0)
146 146
                        {
147
                            if (ServiceStation.AliveConvertQueue.Count() < MultiProcessCount)
147
                            if (ServiceStation.AliveConvertQueue.Count() < ServiceProperty.PROCESS_COUNT)
148 148
                            {
149 149
                                convertItem.ServiceID = this.ServiceID;
150 150
                                ConvertProcessStart(convertItem);
......
269 269
        }
270 270

  
271 271
        /// <summary>
272
        /// 동시 작업 프로세스 갯수 변경
273
        /// </summary>
274
        /// <param name="Value"></param>
275
        /// <returns></returns>
276
        public bool SettingMultiProcess(int Value)
277
        {
278
            bool result = false;
279

  
280
            try
281
            {
282
                MultiProcessCount = Value;
283

  
284
                var config = ConfigHelper.AppConfig(configFileName);
285

  
286
                config.SetValue(CONFIG_DEFINE.SERVICE, CONFIG_DEFINE.CONVERT_SERVICE_PROCESS, Value.ToString());
287
                config.Save(configFileName);
288

  
289
                result = true;
290
            }
291
            catch (Exception ex)
292
            {
293
                logger.Error("SettingMultiProcess Error ", ex);
294
            }
295

  
296
            return result;
297
        }
298

  
299
        /// <summary>
300 272
        /// WCF 시작
301 273
        /// </summary>
302 274
        /// <returns></returns>
......
347 319
        public bool ReleaseConvertItems()
348 320
        {
349 321
            System.Diagnostics.Debug.WriteLine("Call ReleaseConvertItems");
350
            setDataBaseWaitingList();
322
            if (!IsReleaseItems)
323
            {
324
                ReleaseItems();
325
            }
326

  
351 327
            System.Diagnostics.Debug.WriteLine("end ReleaseConvertItems");
352 328
            return true;
353 329
        }
ConvertService/ServiceBase/Markus.Service.StationController/Behaviors/StatusTypeSet.cs
1
using Markus.Message;
2
using System;
3
using System.Collections.Generic;
4
using System.Linq;
5
using System.Text;
6
using System.Threading.Tasks;
7
using System.Windows;
8
using System.Windows.Controls;
9

  
10
namespace Markus.Service.StationController.Behaviors
11
{
12
    public  class StatusTypeSet : FrameworkElement
13
    {
14
        public static List<StatusCodeType> GetStatusTypes(DependencyObject obj)
15
        {
16
            return (List<StatusCodeType>)obj.GetValue(StatusTypesProperty);
17
        }
18

  
19
        public static void SetStatusTypes(DependencyObject obj, List<StatusCodeType> value)
20
        {
21
            obj.SetValue(StatusTypesProperty, value);
22

  
23
            if(obj is UserControl)
24
            {
25
                if ((obj as UserControl).DataContext is ViewModel.DataBaseByStatusViewModel)
26
                {
27
                    ((obj as UserControl).DataContext as ViewModel.DataBaseByStatusViewModel).StatusType = value;
28
                }
29
            }
30
        }
31

  
32
        public static readonly DependencyProperty StatusTypesProperty = DependencyProperty.RegisterAttached("StatusTypes", typeof(List<StatusCodeType>), typeof(StatusTypeSet)
33
                                                                        , new FrameworkPropertyMetadata(new List<StatusCodeType> { StatusCodeType.None}, new PropertyChangedCallback(StatusTypePropertyChanged))
34
                                                                        { });
35

  
36
        private static void StatusTypePropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
37
        {
38
            
39
        }
40

  
41
        public List<StatusCodeType> StatusTypes
42
        {
43
            get { return (List<StatusCodeType>)GetValue(StatusTypesProperty); }
44
            set { SetValue(StatusTypesProperty, value); }
45
        }
46
    }
47
}
ConvertService/ServiceBase/Markus.Service.StationController/Extensions/GetStatusTypeEnums.cs
1
using Markus.Message;
2
using System;
3
using System.Collections.Generic;
4
using System.Linq;
5
using System.Text;
6
using System.Threading.Tasks;
7

  
8
namespace Markus.Service.StationController.Extensions
9
{
10
    public static class StatusTypeEnums
11
    {
12
        public static string Get()
13
        {
14
            var stringBuilder = new StringBuilder();
15
            foreach (string colorEnum in Enum.GetNames(typeof(StatusCodeType)))
16
            {
17
                stringBuilder.Append(colorEnum + "|");
18
            }
19
            return stringBuilder.ToString();
20
        }
21
    }
22
}
ConvertService/ServiceBase/Markus.Service.StationController/Markus.Service.StationController.csproj
92 92
    <Reference Include="System.Drawing" />
93 93
    <Reference Include="System.Runtime.Serialization" />
94 94
    <Reference Include="System.ServiceModel" />
95
    <Reference Include="System.Web" />
95 96
    <Reference Include="System.Windows.Forms" />
96 97
    <Reference Include="System.Windows.Interactivity, Version=4.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
97 98
      <HintPath>..\packages\Expression.Blend.Sdk.WPF.1.0.1\lib\net45\System.Windows.Interactivity.dll</HintPath>
......
137 138
    </ApplicationDefinition>
138 139
    <Compile Include="AppInit.cs" />
139 140
    <Compile Include="AppDefine.cs" />
141
    <Compile Include="Behaviors\StatusTypeSet.cs" />
140 142
    <Compile Include="Data\NavigationItem.cs" />
141 143
    <Compile Include="Extensions\ConvertItemChangeValue.cs" />
144
    <Compile Include="Extensions\GetStatusTypeEnums.cs" />
142 145
    <Compile Include="ViewModel\DataBaseByStatusViewModel.cs" />
143 146
    <Compile Include="ViewModel\AliveViewModel.cs" />
144 147
    <Compile Include="ViewModel\MainViewModel.cs" />
......
279 282
      <Install>false</Install>
280 283
    </BootstrapperPackage>
281 284
  </ItemGroup>
282
  <ItemGroup />
285
  <ItemGroup>
286
    <Folder Include="Converters\" />
287
  </ItemGroup>
283 288
  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
284 289
  <PropertyGroup>
285 290
    <PostBuildEvent>mkdir $(TargetDir)Bin
ConvertService/ServiceBase/Markus.Service.StationController/StationController.ini
1 1
[SERVICE]
2
SERVICE_ADDRESS = http://192.168.0.83:9101/StationService,http://192.168.0.68:9101/StationService
2
SERVICE_ADDRESS = http://172.20.120.142:9991/StationService,http://172.20.120.143:9991/StationService
3
#,http://192.168.0.68:9101/StationService
4
#http://172.20.120.142:9991/StationService
5

  
6
# remote test daelim
7
#MarkusDataBaseConnectionString = yRW0I8OJY/boJcR9rTFeH229g456BwO8BaXQbW8h6iCR10JRc5tOl2BDWa1595q0bvW9uD5HsHn9ke4oK3yaw2OYHh8pgYKdhW48xeAl49510h1DPv8uSbqcWdwZ2AjernORxxaEAUqHZb5DFlndcWuid82ZwP/EGxGNhaaCG+KVogeHwI5FZZKrmUTWe3159qk11Q4XswrHeLy8HQn5Qg==
8

  
3 9

  
4 10
# remote test MARKUS_V3
5 11
MarkusDataBaseConnectionString = YNP/egPgsKY5wO/j9T7VgkiSClJH7p9hANqnTbQFNYaOnS1f9eeZS5UzPwsGuI3syNfjUnBbiLk37BjsNNWzZevN8Jbd9EzwE9l5g8upXhNqX9eF2brizRZ4ud+GK/35HvqSjvIaz5ggszA3dHT2b+r9279mJXo42QzRBNbUcBgnl2njNNSB7EfckQ5Hwd7eatvWuf3ESIUv4KTqGU5V6A==
ConvertService/ServiceBase/Markus.Service.StationController/ViewModel/AliveViewModel.cs
8 8
using Markus.Service.Extensions;
9 9
using Markus.Service.Helper;
10 10
using Markus.Service.StationController.Extensions;
11
using System.Web;
11 12

  
12 13
namespace Markus.Service.StationController.ViewModel
13 14
{
......
58 59
        {
59 60
            while (IsAcitve)
60 61
            {
61
                System.Threading.Thread.Sleep(1000);
62
                System.Threading.Thread.Sleep(5000);
62 63

  
63 64
                try
64 65
                {
......
68 69

  
69 70
                    foreach (var client in App.StationClientList)
70 71
                    {
71
                        if (SimplePing(client.Endpoint.Address.ToString()))
72
                        //if (SimplePing(client.Endpoint.Address.ToString()))
73
                        //{
74
                        try
72 75
                        {
73 76
                            var items = await client.AliveConvertListAsync();
74 77
                            newitems.AddRange(items);
75 78
                        }
79
                        catch (Exception ex)
80
                        {
81
                            System.Diagnostics.Debug.WriteLine(ex.ToString());
82
                        }
83
                        
84
                        //}
85
                    }
86

  
87
                    foreach (var item in newitems)
88
                    {
89
                        item.OriginfilePath = HttpUtility.UrlDecode(item.OriginfilePath);
76 90
                    }
77 91

  
78 92
                    if (AliveItems == null)
ConvertService/ServiceBase/Markus.Service.StationController/ViewModel/DataBaseByStatusViewModel.cs
19 19
        private System.Collections.ObjectModel.ObservableCollection<ConvertItem> items;
20 20
        private ConvertItem selectItem;
21 21

  
22
        private StatusCodeType statusType;
22
        private List<StatusCodeType> statusType;
23 23
        private bool isLoading;
24 24

  
25 25
        public System.Collections.ObjectModel.ObservableCollection<ConvertItem> Items
......
41 41
        }
42 42

  
43 43

  
44
        public StatusCodeType StatusType
44
        public List<StatusCodeType> StatusType
45 45
        {
46 46
            get => statusType; set
47 47
            {
......
93 93

  
94 94
                    using (Markus.Service.DataBase.ConvertDatabase database = new Markus.Service.DataBase.ConvertDatabase(App.MarkusDataBaseConnecitonString))
95 95
                    {
96
                        newitems = database.GetConvertItems(StatusType, x=>x.CREATE_DATETIME > DateTime.Today,10).ToList();
96
                        foreach (var status in statusType)
97
                        {
98
                            newitems.AddRange(database.GetConvertItems(status, x => x.TOTAL_PAGE > 100, 10));
99
                        }
97 100
                    }
98 101

  
99 102
                    if (Items == null)
ConvertService/ServiceBase/Markus.Service.StationController/Views/DataBaseByStatusView.xaml
10 10
              xmlns:vm="clr-namespace:Markus.Service.StationController.ViewModel"
11 11
             d:DesignHeight="450" d:DesignWidth="800">
12 12
    <UserControl.DataContext>
13
        <vm:DataBaseByStatusViewModel StatusType="Completed"/>
13
        <vm:DataBaseByStatusViewModel/>
14 14
    </UserControl.DataContext>
15 15
    <i:Interaction.Triggers>
16 16
        <i:EventTrigger  EventName="Loaded">
ConvertService/ServiceBase/Markus.Service.StationController/Views/DataBaseByStatusView.xaml.cs
25 25
        {
26 26
            InitializeComponent();
27 27
        }
28

  
29
        public static readonly DependencyProperty StatusTypeProperty = DependencyProperty.Register("StatusTypes", typeof(IList<string>), typeof(DataBaseByStatusView)
30
                                                                        ,new FrameworkPropertyMetadata(){ BindsTwoWayByDefault=true });
31

  
32
        public IList<StatusCodeType> StatusType
33
        {
34
            get { return (IList<StatusCodeType>)GetValue(StatusTypeProperty); }
35
            set { SetValue(StatusTypeProperty, value); }
36
        }
37 28
    }
38 29
}
ConvertService/ServiceBase/Markus.Service.StationController/Views/MergeDataView.xaml
7 7
             xmlns:markus="clr-namespace:Markus.Message;assembly=Markus.Message"
8 8
             xmlns:telerik="http://schemas.telerik.com/2008/xaml/presentation"
9 9
             xmlns:local="clr-namespace:Markus.Service.StationController.ViewModel"
10
             xmlns:Behaviors="clr-namespace:Markus.Service.StationController.Behaviors"
10 11
             mc:Ignorable="d" 
11 12
             d:DesignHeight="450" d:DesignWidth="800">
12
    <UserControl.Resources>
13
    </UserControl.Resources>
14 13
    <Grid>
15 14
        <Grid.RowDefinitions>
16 15
            <RowDefinition Height="3.5*"/>
......
21 20
                <Views:AliveView />
22 21
        </GroupBox>
23 22
        <GroupBox  Header="Error Items" Grid.Row="1" Margin="3" BorderThickness="0">
24
            <Views:DataBaseByStatusView/>
23
            <Views:DataBaseByStatusView>
24
                <Behaviors:StatusTypeSet.StatusTypes>
25
                    <markus:StatusCodeType>Error</markus:StatusCodeType>
26
                </Behaviors:StatusTypeSet.StatusTypes>
27
            </Views:DataBaseByStatusView>
25 28
        </GroupBox>
26 29
        <GroupBox Header="Completed Items"  Grid.Row="2" Margin="3" BorderThickness="0">
27
            <Views:DataBaseByStatusView/>
30
            <Views:DataBaseByStatusView>
31
                    <Behaviors:StatusTypeSet.StatusTypes>
32
                        <markus:StatusCodeType>Error</markus:StatusCodeType>
33
                    </Behaviors:StatusTypeSet.StatusTypes>
34
            </Views:DataBaseByStatusView>
28 35
        </GroupBox>
29 36
        
30 37
    </Grid>
ConvertService/ServiceBase/Markus.Service.WcfService/IStationService.cs
27 27
        Item GetConvertItem(string ProjectNo, string DocumentID);
28 28

  
29 29
        [OperationContract]
30
        bool SettingMultiProcess(int Value);
31

  
32
        [OperationContract]
33 30
        bool ConvertProcessState(string ConvertID, int status, int CurrentPage, int TotalPage, string Error);
34 31

  
35 32
        [OperationContract]
ConvertService/ServiceBase/Markus.Service.WcfService/Properties/AssemblyInfo.cs
32 32
// 모든 값을 지정하거나 아래와 같이 '*'를 사용하여 빌드 번호 및 수정 번호가 자동으로 
33 33
// 지정되도록 할 수 있습니다.
34 34
// [assembly: AssemblyVersion("1.0.*")]
35
[assembly: AssemblyVersion("2.0.1.0")]
36
[assembly: AssemblyFileVersion("2.0.1.0")]
35
[assembly: AssemblyVersion("2.5.2.0")]
36
[assembly: AssemblyFileVersion("2.5.2.0")]
ConvertService/ServiceBase/Markus.Service.WcfService/StationService.cs
12 12
{
13 13

  
14 14
    [AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
15
    [ServiceBehavior(InstanceContextMode = InstanceContextMode.Single, IncludeExceptionDetailInFaults = true)]
15
    [ServiceBehavior(InstanceContextMode = InstanceContextMode.Single, IncludeExceptionDetailInFaults = false)]
16 16
    public class StationService : IStationService
17 17
    {
18 18
        public List<ConvertItem> AliveConvertList()
ConvertService/ServiceBase/Old_lib/App.Config
1
<?xml version="1.0" encoding="utf-8"?>
2
<configuration>
3
  <configSections>
4
    <sectionGroup name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
5
      <section name="DeepViewDataModel.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
6
    </sectionGroup>
7
    <!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 -->
8
    <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=4.4.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
9
  </configSections>
10
  <connectionStrings>
11
    <!--<add name="DaelimCI_Entities" connectionString="metadata=res://*/DataModel.ModelDaelimCI.csdl|res://*/DataModel.ModelDaelimCI.ssdl|res://*/DataModel.ModelDaelimCI.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=ESB-DB;initial catalog=DaelimCI_AN;persist security info=True;user id=ProjectPortalDBConn;password=ProjectPortalDBConn;multipleactiveresultsets=True;App=EntityFramework&quot;" providerName="System.Data.EntityClient" />
12
    <add name="DaelimWFEntities" connectionString="metadata=res://*/DataModel.ModelDealimWF.csdl|res://*/DataModel.ModelDealimWF.ssdl|res://*/DataModel.ModelDealimWF.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=ESB-DB;initial catalog=DaelimWF;persist security info=True;user id=ProjectPortalDBConn;password=ProjectPortalDBConn;multipleactiveresultsets=True;App=EntityFramework&quot;" providerName="System.Data.EntityClient" />
13
    <add name="CI_Entities" connectionString="metadata=res://*/DataModel.ModelCI.csdl|res://*/DataModel.ModelCI.ssdl|res://*/DataModel.ModelCI.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=ESB-DB;initial catalog=DaelimCI_SSBR;persist security info=True;user id=ProjectPortalDBConn;password=ProjectPortalDBConn;multipleactiveresultsets=True;App=EntityFramework&quot;" providerName="System.Data.EntityClient" />
14
    <add name="DeepViewEntities" connectionString="metadata=res://*/DataModel.ModelDeepView.csdl|res://*/DataModel.ModelDeepView.ssdl|res://*/DataModel.ModelDeepView.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=ESB-DB;initial catalog=DeepView;persist security info=True;user id=ProjectPortalDBConn;password=ProjectPortalDBConn;multipleactiveresultsets=True;App=EntityFramework&quot;" providerName="System.Data.EntityClient" />
15
    <add name="Model_DeepView" connectionString="metadata=res://*/DataModel.Model_DeepBiew.csdl|res://*/DataModel.Model_DeepBiew.ssdl|res://*/DataModel.Model_DeepBiew.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=honeyhead.net;initial catalog=DeepView;persist security info=True;user id=honeyhead;password=dof1073#;MultipleActiveResultSets=True;App=EntityFramework&quot;" providerName="System.Data.EntityClient" />
16
    <add name="DeepView_Entities" connectionString="metadata=res://*/DataModel.DeepView_Entities.csdl|res://*/DataModel.DeepView_Entities.ssdl|res://*/DataModel.DeepView_Entities.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=honeyhead.net;initial catalog=DeepView;persist security info=True;user id=honeyhead;password=dof1073#;MultipleActiveResultSets=True;App=EntityFramework&quot;" providerName="System.Data.EntityClient" />
17
    <add name="DeepViewEntities1" connectionString="metadata=res://*/DataModel.DeepView_Entities.csdl|res://*/DataModel.DeepView_Entities.ssdl|res://*/DataModel.DeepView_Entities.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=honeyhead.net;initial catalog=DeepView;persist security info=True;user id=honeyhead;password=dof1073#;MultipleActiveResultSets=True;App=EntityFramework&quot;" providerName="System.Data.EntityClient" />-->
18
    <!--<add name="DeepView_Entitiy" connectionString="metadata=res://*/DataModel.DeepView_Entities.csdl|res://*/DataModel.DeepView_Entities.ssdl|res://*/DataModel.DeepView_Entities.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=honeyhead.net;initial catalog=DeepView;persist security info=True;user id=honeyhead;password=dof1073#;MultipleActiveResultSets=True;App=EntityFramework&quot;" providerName="System.Data.EntityClient" /></connectionStrings>-->
19
    <!--<add name="DeepView_Entity" connectionString="metadata=res://*/DataModel.DeepView_Entity.csdl|res://*/DataModel.DeepView_Entity.ssdl|res://*/DataModel.DeepView_Entity.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=honeyhead.net,7777;initial catalog=DeepView;user id=honeyhead;password=dof1073#;MultipleActiveResultSets=True;App=EntityFramework&quot;" providerName="System.Data.EntityClient" />-->
20
    <!--<add name="DeepView_Entity" connectionString="metadata=res://*/DataModel.DeepView_Entity.csdl|res://*/DataModel.DeepView_Entity.ssdl|res://*/DataModel.DeepView_Entity.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=honeyhead.net,7777;initial catalog=DeepView;user id=honeyhead;password=dof1073#;multipleactiveresultsets=True;application name=EntityFramework&quot;" providerName="System.Data.EntityClient" /></connectionStrings>--><add name="DeepView_Entity" connectionString="metadata=res://*/DataModel.DeepView_Entity.csdl|res://*/DataModel.DeepView_Entity.ssdl|res://*/DataModel.DeepView_Entity.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=honeyhead.net,7777;initial catalog=markus;user id=companyguest;MultipleActiveResultSets=True;App=EntityFramework&quot;" providerName="System.Data.EntityClient" /></connectionStrings>
21
  
22
  <!--<userSettings>
23
    <DeepViewDataModel.Properties.Settings>
24
      <setting name="ProjectCIConnectionString" serializeAs="String">
25
        <value>data source=ESB-DB;Initial Catalog={0};uid=ProjectPortalDBConn;password=ProjectPortalDBConn</value>
26
      </setting>
27
      <setting name="ConverterDaelimCIConnectionString" serializeAs="String">
28
        <value>data source=ESB-DB;Initial Catalog={0};uid=ProjectPortalDBConn;password=ProjectPortalDBConn</value>
29
      </setting>
30
      <setting name="ConverterProjectCIConnectionString" serializeAs="String">
31
        <value>data source=ESB-DB;Initial Catalog={0};uid=ProjectPortalDBConn;password=ProjectPortalDBConn</value>
32
      </setting>
33
    </DeepViewDataModel.Properties.Settings>
34
  </userSettings>-->
35
  <applicationSettings>
36
    <DeepViewDataModel.Properties.Settings>
37
      <setting name="ConverterConnectionString" serializeAs="String">
38
        <value>data source=.\SQLEXPRESS;initial catalog=Markus;persist security info=True;user id=ConvertService;Password=ConvertService;MultipleActiveResultSets=True;</value>
39
      </setting>
40
    </DeepViewDataModel.Properties.Settings>
41
  </applicationSettings>
42
  <entityFramework>
43
    <defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework">
44
      <parameters>
45
        <parameter value="v13.0" />
46
      </parameters>
47
    </defaultConnectionFactory>
48
  </entityFramework>
49
</configuration>
ConvertService/ServiceBase/Old_lib/DeepViewDataModel.dll.config
1
<?xml version="1.0" encoding="utf-8"?>
2
<configuration>
3
  <configSections>
4
    <sectionGroup name="userSettings" type="System.Configuration.UserSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
5
      <section name="DeepViewDataModel.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false" />
6
    </sectionGroup>
7
    <sectionGroup name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
8
      <section name="DeepViewDataModel.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
9
    </sectionGroup>
10
  </configSections>
11
  <connectionStrings>
12
    <!--<add name="DaelimCI_Entities" connectionString="metadata=res://*/DataModel.ModelDaelimCI.csdl|res://*/DataModel.ModelDaelimCI.ssdl|res://*/DataModel.ModelDaelimCI.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=ESB-DB;initial catalog=DaelimCI_AN;persist security info=True;user id=ProjectPortalDBConn;password=ProjectPortalDBConn;multipleactiveresultsets=True;App=EntityFramework&quot;" providerName="System.Data.EntityClient" />
13
    <add name="DaelimWFEntities" connectionString="metadata=res://*/DataModel.ModelDealimWF.csdl|res://*/DataModel.ModelDealimWF.ssdl|res://*/DataModel.ModelDealimWF.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=ESB-DB;initial catalog=DaelimWF;persist security info=True;user id=ProjectPortalDBConn;password=ProjectPortalDBConn;multipleactiveresultsets=True;App=EntityFramework&quot;" providerName="System.Data.EntityClient" />
14
    <add name="CI_Entities" connectionString="metadata=res://*/DataModel.ModelCI.csdl|res://*/DataModel.ModelCI.ssdl|res://*/DataModel.ModelCI.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=ESB-DB;initial catalog=DaelimCI_SSBR;persist security info=True;user id=ProjectPortalDBConn;password=ProjectPortalDBConn;multipleactiveresultsets=True;App=EntityFramework&quot;" providerName="System.Data.EntityClient" />-->
15
    <!--<add name="DeepViewEntities" connectionString="metadata=res://*/DataModel.ModelDeepView.csdl|res://*/DataModel.ModelDeepView.ssdl|res://*/DataModel.ModelDeepView.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=ESB-DB;initial catalog=DeepView;persist security info=True;user id=ProjectPortalDBConn;password=ProjectPortalDBConn;multipleactiveresultsets=True;App=EntityFramework&quot;" providerName="System.Data.EntityClient" />-->
16
    <!--<add name="DeepView_Entity" connectionString="metadata=res://*/DataModel.ModelDeepView.csdl|res://*/DataModel.ModelDeepView.ssdl|res://*/DataModel.ModelDeepView.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=ESB-DB;initial catalog=DeepView;persist security info=True;user id=ProjectPortalDBConn;password=ProjectPortalDBConn;multipleactiveresultsets=True;App=EntityFramework&quot;" providerName="System.Data.EntityClient" />-->
17
    <!--<add name="DeepView_Entity" connectionString="metadata=res://*/DataModel.DeepView_Entity.csdl|res://*/DataModel.DeepView_Entity.ssdl|res://*/DataModel.DeepView_Entity.msl;provider=System.Data.SqlClient;provider=System.Data.SqlClient;provider connection string=&quot;data source=honeyhead.net,7777;initial catalog=DeepView;persist security info=True;user id=honeyhead;password=dof1073#;multipleactiveresultsets=True;App=EntityFramework&quot;" providerName="System.Data.EntityClient" />-->
18
    <add name="DeepView_Entity" connectionString="metadata=res://*/DataModel.DeepView_Entity.csdl|res://*/DataModel.DeepView_Entity.ssdl|res://*/DataModel.DeepView_Entity.msl;provider=System.Data.SqlClient;provider=System.Data.SqlClient;provider connection string=&quot;data source=cloud.devdoftech.co.kr,7777;initial catalog=markus;persist security info=True;user id=doftech;password=dof1073#;multipleactiveresultsets=True;App=EntityFramework&quot;" providerName="System.Data.EntityClient" />
19
    
20
  </connectionStrings
21
  >
22
  <!--<userSettings>
23
    <DeepViewDataModel.Properties.Settings>
24
      <setting name="ProjectCIConnectionString" serializeAs="String">
25
        <value>data source=ESB-DB;Initial Catalog={0};uid=ProjectPortalDBConn;password=ProjectPortalDBConn</value>
26
      </setting>
27
      <setting name="ConverterDaelimCIConnectionString" serializeAs="String">
28
        <value>data source=ESB-DB;Initial Catalog={0};uid=ProjectPortalDBConn;password=ProjectPortalDBConn</value>
29
      </setting>
30
      <setting name="ConverterProjectCIConnectionString" serializeAs="String">
31
        <value>data source=ESB-DB;Initial Catalog={0};uid=ProjectPortalDBConn;password=ProjectPortalDBConn</value>
32
      </setting>
33
    </DeepViewDataModel.Properties.Settings>
34
  </userSettings>-->
35
  <applicationSettings>
36
    <DeepViewDataModel.Properties.Settings>
37
      <!--<setting name="DaelimCIConnectionString" serializeAs="String">
38
        <value>data source=ESB-DB;Initial Catalog={0};uid=ProjectPortalDBConn;password=ProjectPortalDBConn</value>
39
      </setting>-->
40
      <setting name="ConverterConnectionString" serializeAs="String">
41
        <value>data source=.\SQLEXPRESS;initial catalog=Markus;persist security info=True;user id=ConvertService;Password=ConvertService;MultipleActiveResultSets=True;</value>
42
      </setting>
43
    </DeepViewDataModel.Properties.Settings>
44
  </applicationSettings>
45
</configuration>
ConvertService/ServiceBase/ServiceTestApp/MainWindow.xaml
57 57
                    <RowDefinition Height="Auto"/>
58 58
                    <RowDefinition Height="Auto"/>
59 59
                    <RowDefinition Height="Auto"/>
60
                    <RowDefinition Height="Auto"/>
60 61
                </Grid.RowDefinitions>
61 62
                <StackPanel Orientation="Horizontal">
62 63
                    <TextBlock Text="Process Count : " VerticalAlignment="Center"/>
......
66 67
                <Button Grid.Row="1" Content="Doc Info Delete Test" Click="Button_Click_2"/>
67 68
                <Button Grid.Row="2" Content="Web Service Test" Click="WebServiceTest_click"/>
68 69
                <Button Grid.Row="3" Content="Convert Web Service Test" Click="ConvertWebServiceTest_click"/>
70
                <Button Grid.Row="4" Content="FileDownload Test" Click="DownLoadTest_click"/>
69 71
            </Grid>
70 72
        </Grid>
71 73
    </Grid>
ConvertService/ServiceBase/ServiceTestApp/MainWindow.xaml.cs
14 14
using System.ServiceModel;
15 15
using System.Text;
16 16
using System.Threading.Tasks;
17
using System.Web;
17 18
using System.Web.Script.Serialization;
18 19
using System.Windows;
19 20
using System.Windows.Data;
......
550 551
                }
551 552
            }
552 553
        }
554

  
555
        private async void DownLoadTest_click(object sender, RoutedEventArgs e)
556
        {
557
            await DownloadFileAsync("http://172.20.110.75:8880/ifweb/external/DLMFileDownload.jsp?objectId=33808.61925.45058.48300&format=Original PDF&fileName=MARKUS_20190731_0001_A.pdf");
558
        }
559

  
560
        private async Task<bool> DownloadFileAsync(string FileaPath)
561
        {
562
            bool result = false;
563

  
564
            try
565
            {
566
                Uri pdfFileUri = null;
567

  
568
                //if (saveItem.PdfFilePath.Contains("VPCS_DOCLIB"))
569
                //{
570
                //    FileName = DocUri.Remove(0, DocUri.LastIndexOf("/") + 1);
571
                //    ProjectFolderPath = DownloadDir_PDF + "\\" + ConverterItem.PROJECT_NO + "_Tile"; //프로젝트 폴더
572
                //    ItemListPath = ProjectFolderPath + "\\" + (System.Convert.ToInt64(ConverterItem.DOCUMENT_ID) / 100).ToString();
573
                //    ItemPath = ItemListPath + "\\" + ConverterItem.DOCUMENT_ID;
574
                //    DownloadFilePath = ItemPath + "\\" + FileName;
575
                //}
576
                //else
577
                //{
578
                //    ProjectFolderPath = DownloadDir_PDF + "\\" + ConverterItem.PROJECT_NO + "_Tile"; //프로젝트 폴더
579
                //    ItemListPath = ProjectFolderPath + "\\" + (System.Convert.ToInt64(ConverterItem.DOCUMENT_ID) / 100).ToString();
580
                //    ItemPath = ItemListPath + "\\" + ConverterItem.DOCUMENT_ID;
581
                //    FileName = HttpUtility.ParseQueryString(new Uri(DocUri).Query).Get("fileName");
582
                //    DownloadFilePath = string.IsNullOrWhiteSpace(FileName) ? ItemPath + "\\" + FileName : ItemPath + "\\" + FileName;
583

  
584
                //}
585

  
586
                FileaPath = HttpUtility.UrlDecode(FileaPath); //PDF 전체 경로
587
                string FileName = DownloadUri.GetFileName(FileaPath);
588

  
589
                string downloadFilePath = System.IO.Path.Combine(@"c:\temp", FileName);
590

  
591
                // 드라이브 경로가 포함되었는지 판단.
592
                if (Path.IsPathRooted(FileaPath))
593
                {
594
                    if (File.Exists(FileaPath))
595
                    {
596
                        File.Copy(FileaPath, downloadFilePath, true);
597
                    }
598
                    else
599
                    {
600
                        throw new Exception("File Not Found. Please, check the file path.");
601
                    }
602
                }
603
                else if (Uri.TryCreate(FileaPath, UriKind.RelativeOrAbsolute, out pdfFileUri))
604
                {
605
                    try
606
                    {
607
                        using (System.Net.WebClient webClient = new System.Net.WebClient())
608
                        {
609
                            webClient.UseDefaultCredentials = true;//.Headers.Add("Authorization: BASIC SGVsbG8="); //가상의 인증
610

  
611
                            //if (!System.IO.Directory.Exists(ConvertProcessContext.TempDirectory))
612
                            //{
613
                            //    System.IO.Directory.CreateDirectory(ConvertProcessContext.TempDirectory);
614
                            //}
615

  
616
                            await webClient.DownloadFileTaskAsync(pdfFileUri, downloadFilePath);
617
                        }
618
                    }
619
                    catch (Exception)
620
                    {
621
                        throw new Exception("File Download Error. Please, check the file path.");
622
                    }
623
                }
624
                else
625
                {
626
                    throw new Exception("Please, check the file path.");
627
                }
628

  
629
                if (File.Exists(downloadFilePath))
630
                {
631
                    var file = File.Open(downloadFilePath, FileMode.Open);
632

  
633
                    if (file.Length == 0)
634
                    {
635
                        throw new Exception("File Size 0. Please, check the file path.");
636
                    }
637

  
638
                    file.Close();
639
                    file.Dispose();
640

  
641
                    FileaPath = downloadFilePath;
642
                    result = true;
643

  
644
                }
645
            }
646
            catch (Exception EX)
647
            {
648
                System.Diagnostics.Debug.WriteLine(EX.ToString());
649
                result = false;
650
            }
651

  
652
            return result;
653
        }
654

  
553 655
    }
554 656

  
555 657
    class IntegratedServiceInstaller
ConvertService/ServiceBase/ServiceTestApp/Properties/AssemblyInfo.cs
51 51
// 모든 값을 지정하거나 아래와 같이 '*'를 사용하여 빌드 번호 및 수정 번호가 자동으로
52 52
// 지정되도록 할 수 있습니다.
53 53
// [assembly: AssemblyVersion("1.0.*")]
54
[assembly: AssemblyVersion("2.0.1.0")]
55
[assembly: AssemblyFileVersion("2.0.1.0")]
54
[assembly: AssemblyVersion("2.5.2.0")]
55
[assembly: AssemblyFileVersion("2.5.2.0")]
ConvertService/ServiceBase/ServiceUnitTest/Properties/AssemblyInfo.cs
16 16
[assembly: Guid("6545946b-b453-4cfa-8126-c6ba71acb689")]
17 17

  
18 18
// [assembly: AssemblyVersion("1.0.*")]
19
[assembly: AssemblyVersion("2.0.1.0")]
20
[assembly: AssemblyFileVersion("2.0.1.0")]
19
[assembly: AssemblyVersion("2.5.2.0")]
20
[assembly: AssemblyFileVersion("2.5.2.0")]
ConvertService/ServiceBase/WcfCheck/Properties/AssemblyInfo.cs
32 32
// 모든 값을 지정하거나 아래와 같이 '*'를 사용하여 빌드 번호 및 수정 번호가 자동으로
33 33
// 지정되도록 할 수 있습니다.
34 34
// [assembly: AssemblyVersion("1.0.*")]
35
[assembly: AssemblyVersion("2.0.1.0")]
36
[assembly: AssemblyFileVersion("2.0.1.0")]
35
[assembly: AssemblyVersion("2.5.2.0")]
36
[assembly: AssemblyFileVersion("2.5.2.0")]

내보내기 Unified diff

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