markus / ConvertService / ServiceBase / ServiceTestApp / MainWindow.xaml.cs @ 2bbea412
이력 | 보기 | 이력해설 | 다운로드 (31.5 KB)
1 | ff4b1e6e | taeseongkim | using Markus.EntityModel; |
---|---|---|---|
2 | using Markus.Service; |
||
3 | using Markus.Service.Extensions; |
||
4 | using Markus.Service.Helper; |
||
5 | using Microsoft.VisualStudio.TestTools.UnitTesting; |
||
6 | using Microsoft.Win32; |
||
7 | using Newtonsoft.Json; |
||
8 | 65fbe3cb | taeseongkim | using Newtonsoft.Json.Linq; |
9 | 53c9637d | taeseongkim | using System; |
10 | using System.Collections.Generic; |
||
11 | ff4b1e6e | taeseongkim | using System.Diagnostics; |
12 | 53c9637d | taeseongkim | using System.IO; |
13 | using System.Linq; |
||
14 | 150747cb | taeseongkim | using System.Net; |
15 | ff4b1e6e | taeseongkim | using System.Net.Http; |
16 | 53c9637d | taeseongkim | using System.ServiceModel; |
17 | using System.Text; |
||
18 | using System.Threading.Tasks; |
||
19 | 60723dc9 | taeseongkim | using System.Web; |
20 | ff4b1e6e | taeseongkim | using System.Web.Script.Serialization; |
21 | 53c9637d | taeseongkim | using System.Windows; |
22 | using System.Windows.Data; |
||
23 | using System.Windows.Forms; |
||
24 | using static Markus.Service.Extensions.Encrypt; |
||
25 | |||
26 | namespace ServiceTestApp |
||
27 | { |
||
28 | /// <summary> |
||
29 | /// MainWindow.xaml에 대한 상호 작용 논리 |
||
30 | /// </summary> |
||
31 | public partial class MainWindow : Window |
||
32 | { |
||
33 | public MainWindow() |
||
34 | { |
||
35 | InitializeComponent(); |
||
36 | |||
37 | a537d79a | taeseongkim | var config = Markus.Service.Helper.ConfigHelper.AppConfig("ServiceStation.ini"); |
38 | 53c9637d | taeseongkim | MarkusDBConnectionString = AESEncrypter.Decrypt(config.GetValue(CONFIG_DEFINE.SERVICE, CONFIG_DEFINE.MARKUS_CONNECTION_STRING)); |
39 | |||
40 | datagrid.ItemsSource = convertItems; |
||
41 | |||
42 | timer.Interval = new TimeSpan(0, 0, 0, 0, 700); |
||
43 | timer.Tick += Timer_Tick; |
||
44 | 06f13e11 | taeseongkim | //timer.Start(); |
45 | 53c9637d | taeseongkim | } |
46 | System.Windows.Threading.DispatcherTimer timer = new System.Windows.Threading.DispatcherTimer(); |
||
47 | private string MarkusDBConnectionString; |
||
48 | |||
49 | private void Timer_0_Tick(object sender, EventArgs e) |
||
50 | { |
||
51 | BasicHttpBinding myBinding = new BasicHttpBinding(); |
||
52 | EndpointAddress myEndpoint = new EndpointAddress(UriHelper.UriCreate("http://localhost:9101/StationService")); |
||
53 | |||
54 | StationService.StationServiceClient client = new StationService.StationServiceClient(myBinding, myEndpoint); |
||
55 | |||
56 | var result = client.AliveConvertList(); |
||
57 | |||
58 | datagrid.ItemsSource = result; |
||
59 | |||
60 | if(result.Count() < 2) |
||
61 | { |
||
62 | foreach (var filename in Directory.EnumerateFiles("D:\\Case")) |
||
63 | { |
||
64 | var additem = client.ConvertMenualAdd("111111", filename, "test"); |
||
65 | |||
66 | if (!string.IsNullOrWhiteSpace(additem)) |
||
67 | { |
||
68 | Log.Text += $"Wcf Station Service call{filename} {result}\n"; |
||
69 | } |
||
70 | else |
||
71 | { |
||
72 | Log.Text += $"Call Error {filename} {result}\n"; |
||
73 | } |
||
74 | } |
||
75 | } |
||
76 | } |
||
77 | |||
78 | private void Timer_Tick(object sender, EventArgs e) |
||
79 | { |
||
80 | timer.Stop(); |
||
81 | |||
82 | using (Markus.Service.DataBase.ConvertDatabase database = new Markus.Service.DataBase.ConvertDatabase(MarkusDBConnectionString)) |
||
83 | { |
||
84 | var data = database.GetConvertItems(Markus.Message.StatusCodeType.Saving); |
||
85 | |||
86 | foreach (var item in data) |
||
87 | { |
||
88 | var getitem = convertItems.Where(f => f.ConvertID == item.ConvertID); |
||
89 | |||
90 | if (getitem.Count() == 0) |
||
91 | { |
||
92 | convertItems.Add(item); |
||
93 | } |
||
94 | else |
||
95 | { |
||
96 | var binditem = getitem.First(); |
||
97 | |||
98 | binditem.ConvertState = item.ConvertState; |
||
99 | binditem.CurrentPageNo = item.CurrentPageNo; |
||
100 | binditem.TotalPage = item.TotalPage; |
||
101 | } |
||
102 | } |
||
103 | |||
104 | var _removeitems = convertItems.Select(f => f.ConvertID).Except(data.Select(x => x.ConvertID)).ToList(); |
||
105 | |||
106 | foreach (var item in _removeitems) |
||
107 | { |
||
108 | var items = convertItems.Where(x => x.ConvertID == item); |
||
109 | |||
110 | if (items.Count() > 0) |
||
111 | { |
||
112 | Markus.Service.Interface.ConvertItem convertItem = items.First(); |
||
113 | convertItems.Remove(convertItem); |
||
114 | } |
||
115 | } |
||
116 | } |
||
117 | |||
118 | var process = Process.GetProcessesByName("Markus.Service.ConvertProcess"); |
||
119 | |||
120 | this.Dispatcher.Invoke(() => |
||
121 | { |
||
122 | CollectionViewSource.GetDefaultView(datagrid.ItemsSource).Refresh(); |
||
123 | |||
124 | if (process.Count() > 0) |
||
125 | { |
||
126 | if (Log.Text.Length > int.MaxValue) |
||
127 | { |
||
128 | Log.Text = ""; |
||
129 | } |
||
130 | |||
131 | Log.Text += "-------------------------------------\n"; |
||
132 | |||
133 | Log.Text += $" Physical memory usage : {process.Sum(f => f.WorkingSet64)}" + "\n"; |
||
134 | Log.Text += $" Base priority : {process.Sum(f => f.BasePriority)}" + "\n"; |
||
135 | //Log.Text += $" Priority class : {process[0].PriorityClass}" + "\n"; |
||
136 | //Log.Text += $" User processor time : {process[0].UserProcessorTime}" + "\n"; |
||
137 | //Log.Text += $" Privileged processor time : {process[0].PrivilegedProcessorTime}" + "\n"; |
||
138 | //Log.Text += $" Total processor time : {process[0].TotalProcessorTime}" + "\n"; |
||
139 | Log.Text += $" Paged system memory size : {process.Sum(f => f.PagedSystemMemorySize64)}" + "\n"; |
||
140 | Log.Text += $" Paged memory size : {process.Sum(f => f.PagedMemorySize64)}" + "\n"; |
||
141 | } |
||
142 | }); |
||
143 | |||
144 | //if (process.Count() < 3) |
||
145 | //{ |
||
146 | // BasicHttpBinding myBinding = new BasicHttpBinding(); |
||
147 | // EndpointAddress myEndpoint = new EndpointAddress(UriHelper.UriCreate("http://localhost:9101/StationService")); |
||
148 | // StationService.StationServiceClient client = new StationService.StationServiceClient(myBinding, myEndpoint); |
||
149 | // foreach (var filename in Directory.EnumerateFiles("D:\\Case")) |
||
150 | // { |
||
151 | // var _id = new Guid().CreateUniqueGuid().ToString(); |
||
152 | |||
153 | // var result = client.ConvertMenualAdd("111111", _id, filename, "test"); |
||
154 | |||
155 | // if (result) |
||
156 | // { |
||
157 | // Log.Text += $"Wcf Station Service call{filename} {result}\n"; |
||
158 | // } |
||
159 | // else |
||
160 | // { |
||
161 | // Log.Text += $"Call Error {filename} {result}\n"; |
||
162 | // } |
||
163 | // } |
||
164 | //} |
||
165 | |||
166 | timer.Start(); |
||
167 | |||
168 | } |
||
169 | |||
170 | private System.Collections.ObjectModel.ObservableCollection<Markus.Service.Interface.ConvertItem> convertItems = new System.Collections.ObjectModel.ObservableCollection<Markus.Service.Interface.ConvertItem>(); |
||
171 | |||
172 | PrivateObject stationObj; |
||
173 | Markus.Service.ServiceStation station = new Markus.Service.ServiceStation(); |
||
174 | |||
175 | private void Button_Click(object sender, RoutedEventArgs e) |
||
176 | { |
||
177 | station.StartService(); |
||
178 | |||
179 | // if (station == null) |
||
180 | // { |
||
181 | // station = new PrivateObject(typeof(Markus.Service.StationService.ServiceStation)); |
||
182 | // } |
||
183 | |||
184 | |||
185 | |||
186 | Log.Text += "Wcf Service start\n"; |
||
187 | } |
||
188 | |||
189 | private async void ServiceCall_Click(object sender, RoutedEventArgs e) |
||
190 | { |
||
191 | ConvertService.ConvertServiceClient client = new ConvertService.ConvertServiceClient(); |
||
192 | var result = await client.ConvertAddAsync(1); |
||
193 | |||
194 | Log.Text += $"Wcf Convert Service call{result}\n"; |
||
195 | } |
||
196 | |||
197 | private async void StationServiceCall_Click(object sender, RoutedEventArgs e) |
||
198 | { |
||
199 | StationService.StationServiceClient client = new StationService.StationServiceClient(); |
||
200 | var result = await client.ConvertAddAsync("test", "11"); |
||
201 | |||
202 | Log.Text += $"Wcf Station Service call{result}\n"; |
||
203 | } |
||
204 | |||
205 | private async void ItemAdd_Click(object sender, RoutedEventArgs e) |
||
206 | { |
||
207 | string ProjectNo = "111111"; |
||
208 | |||
209 | BasicHttpBinding myBinding = new BasicHttpBinding(); |
||
210 | EndpointAddress myEndpoint = new EndpointAddress(UriHelper.UriCreate("http://localhost:9101/StationService")); |
||
211 | StationService.StationServiceClient client = new StationService.StationServiceClient(myBinding, myEndpoint); |
||
212 | foreach (var filename in GetFileList()) |
||
213 | { |
||
214 | var result = await client.ConvertMenualAddAsync("111111", filename, "test"); |
||
215 | |||
216 | if (!string.IsNullOrWhiteSpace(result)) |
||
217 | { |
||
218 | Log.Text += $"Wcf Station Service call{filename} convert ID : {result}\n"; |
||
219 | } |
||
220 | else |
||
221 | { |
||
222 | Log.Text += $"Call Error {filename}\n"; |
||
223 | } |
||
224 | } |
||
225 | |||
226 | #region 데이터베이스 테스트 |
||
227 | /* |
||
228 | using (Markus.Service.DataBase.ConvertDatabase database = new Markus.Service.DataBase.ConvertDatabase(ProjectNo)) |
||
229 | { |
||
230 | foreach (var filename in GetFileList()) |
||
231 | { |
||
232 | var _id = new Guid().CreateUniqueGuid().ToString(); |
||
233 | |||
234 | if (!database.SetConvertDoc(ProjectNo, _id, filename,_id)) |
||
235 | { |
||
236 | System.Windows.MessageBox.Show("저장에 실패!"); |
||
237 | break; |
||
238 | } |
||
239 | } |
||
240 | } |
||
241 | */ |
||
242 | #endregion |
||
243 | } |
||
244 | |||
245 | private IEnumerable<string> GetFileList() |
||
246 | { |
||
247 | IEnumerable<string> result = new string[] { }; |
||
248 | |||
249 | using (FolderBrowserDialog dialog = new FolderBrowserDialog()) |
||
250 | { |
||
251 | dialog.Description = "PDF가 있는 폴더를 선택하세요."; |
||
252 | dialog.ShowNewFolderButton = false; |
||
253 | dialog.RootFolder = Environment.SpecialFolder.MyComputer; |
||
254 | |||
255 | if (dialog.ShowDialog() == System.Windows.Forms.DialogResult.OK) |
||
256 | { |
||
257 | result = Directory.EnumerateFiles(dialog.SelectedPath, "*.pdf", SearchOption.AllDirectories); |
||
258 | } |
||
259 | } |
||
260 | |||
261 | return result; |
||
262 | } |
||
263 | |||
264 | private void ServiceInstall_Click(object sender, RoutedEventArgs e) |
||
265 | { |
||
266 | //Markus.Service.ProjectInstaller projectInstaller = new Markus.Service.ProjectInstaller(); |
||
267 | //Hashtable savedState = new Hashtable(); |
||
268 | //projectInstaller.serviceProcessInstaller.Install(savedState); |
||
269 | |||
270 | //projectInstaller.serviceProcessInstaller.Uninstall(savedState); |
||
271 | |||
272 | |||
273 | IntegratedServiceInstaller integrated = new IntegratedServiceInstaller(); |
||
274 | integrated.Install("ServiceStation", "ServiceStation", "test", System.ServiceProcess.ServiceAccount.LocalService, System.ServiceProcess.ServiceStartMode.Automatic); |
||
275 | |||
276 | } |
||
277 | |||
278 | private void LibInstall_Click(object sender, RoutedEventArgs e) |
||
279 | { |
||
280 | Markus.Library.Installer.Install(); |
||
281 | } |
||
282 | |||
283 | private async void ItemAddFile_Click(object sender, RoutedEventArgs e) |
||
284 | { |
||
285 | System.Windows.Forms.OpenFileDialog dialog = new System.Windows.Forms.OpenFileDialog(); |
||
286 | |||
287 | if (dialog.ShowDialog() == System.Windows.Forms.DialogResult.OK) |
||
288 | { |
||
289 | BasicHttpBinding myBinding = new BasicHttpBinding(); |
||
290 | EndpointAddress myEndpoint = new EndpointAddress(UriHelper.UriCreate("http://localhost:9101/StationService")); |
||
291 | |||
292 | StationService.StationServiceClient client = new StationService.StationServiceClient(myBinding, myEndpoint); |
||
293 | |||
294 | var result = await client.ConvertMenualAddAsync("111111", dialog.FileName, "test"); |
||
295 | |||
296 | Log.Text += $"Wcf Station Service call{dialog.FileName} {result}\n"; |
||
297 | } |
||
298 | } |
||
299 | |||
300 | private async void AliveList_Click(object sender, RoutedEventArgs e) |
||
301 | { |
||
302 | await AliveItemAsync(); |
||
303 | } |
||
304 | private async Task AliveItemAsync() |
||
305 | { |
||
306 | BasicHttpBinding myBinding = new BasicHttpBinding(); |
||
307 | EndpointAddress myEndpoint = new EndpointAddress(UriHelper.UriCreate("http://localhost:9101/StationService")); |
||
308 | |||
309 | StationService.StationServiceClient client = new StationService.StationServiceClient(myBinding, myEndpoint); |
||
310 | var _id = new Guid().CreateUniqueGuid().ToString(); |
||
311 | |||
312 | var result = await client.AliveConvertListAsync(); |
||
313 | |||
314 | datagrid.ItemsSource = result; |
||
315 | } |
||
316 | |||
317 | private async void WaitList_Click(object sender, RoutedEventArgs e) |
||
318 | { |
||
319 | BasicHttpBinding myBinding = new BasicHttpBinding(); |
||
320 | EndpointAddress myEndpoint = new EndpointAddress(UriHelper.UriCreate("http://localhost:9101/StationService")); |
||
321 | |||
322 | StationService.StationServiceClient client = new StationService.StationServiceClient(myBinding, myEndpoint); |
||
323 | var _id = new Guid().CreateUniqueGuid().ToString(); |
||
324 | |||
325 | var result = await client.WaitConvertListAsync(); |
||
326 | |||
327 | datagrid.ItemsSource = result; |
||
328 | } |
||
329 | |||
330 | private void ProcessKill_Click(object sender, RoutedEventArgs e) |
||
331 | { |
||
332 | station.Stopprocess(); |
||
333 | } |
||
334 | |||
335 | private void DeadLockProcessList_Click(object sender, RoutedEventArgs e) |
||
336 | { |
||
337 | station.DeadLockProcessKill(); |
||
338 | } |
||
339 | |||
340 | private async void Button_Click_1(object sender, RoutedEventArgs e) |
||
341 | { |
||
342 | int count = 0; |
||
343 | |||
344 | |||
345 | if(int.TryParse(txtProcessCount.Text,out count)) |
||
346 | { |
||
347 | |||
348 | BasicHttpBinding myBinding = new BasicHttpBinding(); |
||
349 | EndpointAddress myEndpoint = new EndpointAddress(UriHelper.UriCreate("http://localhost:9101/StationService")); |
||
350 | |||
351 | StationService.StationServiceClient client = new StationService.StationServiceClient(myBinding, myEndpoint); |
||
352 | |||
353 | var result = await client.SettingMultiProcessAsync(count); |
||
354 | |||
355 | } |
||
356 | } |
||
357 | |||
358 | private async void RemoteFileList_Click(object sender, RoutedEventArgs e) |
||
359 | { |
||
360 | var uriList = new[] |
||
361 | { |
||
362 | "http://www.devdoftech.co.kr:5100/Doc_Manager/000000_app/VPCS_DOCLIB/40000053/250page.pdf", |
||
363 | "http://www.devdoftech.co.kr:5100/Doc_Manager/000000_app/VPCS_DOCLIB/40000038/250page.pdf", |
||
364 | "http://www.devdoftech.co.kr:5100/Doc_Manager/000000_app/VPCS_DOCLIB/40000027/BigSize.pdf", |
||
365 | "http://www.devdoftech.co.kr:5100/Doc_Manager/000000_app/VPCS_DOCLIB/40000032/BigSize.pdf", |
||
366 | "http://www.devdoftech.co.kr:5100/Doc_Manager/000000_app/VPCS_DOCLIB/40000087/1-5110-ZJ-492-005_C.pdf", |
||
367 | "http://www.devdoftech.co.kr:5100/Doc_Manager/000000_app/VPCS_DOCLIB/40000070/VP-TEST-MARKUS-040.pdf", |
||
368 | "http://www.devdoftech.co.kr:5100/Doc_Manager/000000_app/VPCS_DOCLIB/40000051/250page.pdf", |
||
369 | "http://www.devdoftech.co.kr:5100/Doc_Manager/000000_app/VPCS_DOCLIB/40000039/250page.pdf", |
||
370 | "http://www.devdoftech.co.kr:5100/Doc_Manager/000000_app/VPCS_DOCLIB/40000022/BigSize.pdf", |
||
371 | "http://www.devdoftech.co.kr:5100/Doc_Manager/000000_app/VPCS_DOCLIB/40000023/BigSize.pdf", |
||
372 | "http://www.devdoftech.co.kr:5100/Doc_Manager/000000_app/VPCS_DOCLIB/40000049/250page.pdf", |
||
373 | "http://www.devdoftech.co.kr:5100/Doc_Manager/000000_app/VPCS_DOCLIB/40000050/250page.pdf", |
||
374 | "http://www.devdoftech.co.kr:5100/Doc_Manager/000000_app/VPCS_DOCLIB/40000050/250page.pdf", |
||
375 | "http://www.devdoftech.co.kr:5100/Doc_Manager/000000_app/VPCS_DOCLIB/40000036/250page.pdf" |
||
376 | |||
377 | }; |
||
378 | BasicHttpBinding myBinding = new BasicHttpBinding(); |
||
379 | EndpointAddress myEndpoint = new EndpointAddress(UriHelper.UriCreate("http://localhost:9101/StationService")); |
||
380 | |||
381 | StationService.StationServiceClient client = new StationService.StationServiceClient(myBinding, myEndpoint); |
||
382 | |||
383 | foreach (var item in uriList) |
||
384 | { |
||
385 | var result = await client.ConvertMenualAddAsync("111111", item, "test"); |
||
386 | Log.Text += $"Wcf Station Service call{item} {result}\n"; |
||
387 | } |
||
388 | |||
389 | } |
||
390 | |||
391 | private void Button_Click_2(object sender, RoutedEventArgs e) |
||
392 | { |
||
393 | var pageinfoList = new Markus.Message.PageInfo[] |
||
394 | { |
||
395 | new Markus.Message.PageInfo |
||
396 | { |
||
397 | Width = 111, |
||
398 | Height = 111, |
||
399 | PageNo = 1, |
||
400 | |||
401 | }, |
||
402 | new Markus.Message.PageInfo |
||
403 | { |
||
404 | Width = 111, |
||
405 | Height = 111, |
||
406 | PageNo = 2, |
||
407 | } |
||
408 | |||
409 | }; |
||
410 | |||
411 | using (Markus.Service.DataBase.ConvertDatabase database = new Markus.Service.DataBase.ConvertDatabase(MarkusDBConnectionString)) |
||
412 | { |
||
413 | |||
414 | List<DOCPAGE> docPageList = new List<DOCPAGE>(); |
||
415 | |||
416 | docPageList = pageinfoList.Select(f => new DOCPAGE |
||
417 | { |
||
418 | ID = GuidExtension.shortGuid(), |
||
419 | PAGE_WIDTH = f.Width.ToString(), |
||
420 | PAGE_HEIGHT = f.Height.ToString(), |
||
421 | PAGE_NUMBER = f.PageNo |
||
422 | }).ToList(); |
||
423 | |||
424 | database.SetDocumentInfo("1df16d9a-1ea9-9a32-8a61-aad6ce4a2a49", 2, docPageList); |
||
425 | } |
||
426 | } |
||
427 | |||
428 | private void wcfTest_Click(object sender, RoutedEventArgs e) |
||
429 | { |
||
430 | station.GetApplicationConfig(); |
||
431 | station.StartWcfService(); |
||
432 | } |
||
433 | c433ebde | taeseongkim | private static readonly HttpClient _Client = new HttpClient(); |
434 | private static JavaScriptSerializer _Serializer = new JavaScriptSerializer(); |
||
435 | 53c9637d | taeseongkim | |
436 | private async void WebServiceTest_click(object sender, RoutedEventArgs e) |
||
437 | { |
||
438 | b92f142f | taeseongkim | //string cookie = ""; |
439 | 53c9637d | taeseongkim | |
440 | b92f142f | taeseongkim | //var uri = new Uri("http://localhost:9101/StationService/Rest/GetConvertItem"); // string 을 Uri 로 형변환 |
441 | //var wReq = (System.Net.HttpWebRequest)System.Net.WebRequest.Create(uri); // WebRequest 객체 형성 및 HttpWebRequest 로 형변환 |
||
442 | //wReq.Method = "POST"; // 전송 방법 "GET" or "POST" |
||
443 | //wReq.ContentType = "application/x-www-form-urlencoded; charset=UTF-8"; |
||
444 | //wReq.Proxy = new System.Net.WebProxy("127.0.0.1", 8888); |
||
445 | ////wReq.ServicePoint.Expect100Continue = false; |
||
446 | ////wReq.CookieContainer = new System.Net.CookieContainer(); |
||
447 | ////wReq.CookieContainer.SetCookies(uri, cookie); // 넘겨줄 쿠키가 있을때 CookiContainer 에 저장 |
||
448 | 53c9637d | taeseongkim | |
449 | b92f142f | taeseongkim | ////POST 전송일 경우 |
450 | c433ebde | taeseongkim | |
451 | b92f142f | taeseongkim | //string url = "http://localhost:9101/StationService/Rest/GetConvertItem"; |
452 | //var data = new SEND |
||
453 | //{ |
||
454 | // ProjectNo = "111111", |
||
455 | // DocumentID = "453" |
||
456 | //}; |
||
457 | |||
458 | //var json = _Serializer.Serialize(data); |
||
459 | //var response2 = await Request(HttpMethod.Post, url, json, new Dictionary<string, string>()); |
||
460 | //string responseText = await response2.Content.ReadAsStringAsync(); |
||
461 | 53c9637d | taeseongkim | |
462 | b92f142f | taeseongkim | //Console.WriteLine(responseText); |
463 | |||
464 | 53c9637d | taeseongkim | using (var client = new System.Net.Http.HttpClient()) |
465 | { |
||
466 | b92f142f | taeseongkim | |
467 | 150747cb | taeseongkim | var uri2 = new Uri("http://localhost:9101/StationService/Rest/GetConvertItem"); |
468 | c433ebde | taeseongkim | var data2 = new SEND |
469 | 53c9637d | taeseongkim | { |
470 | ProjectNo = "111111", |
||
471 | DocumentID = "453" |
||
472 | }; |
||
473 | |||
474 | var jsonRequest2 = JsonConvert.SerializeObject(data2); |
||
475 | var stringContent = new System.Net.Http.StringContent(jsonRequest2, Encoding.UTF8, "application/json"); |
||
476 | var response = await client.PostAsync(uri2, stringContent); |
||
477 | |||
478 | if (response.IsSuccessStatusCode) |
||
479 | { |
||
480 | System.Diagnostics.Debug.WriteLine(response.Content.Headers.First()); |
||
481 | System.Diagnostics.Debug.WriteLine(await response.Content.ReadAsStringAsync()); |
||
482 | } |
||
483 | } |
||
484 | c433ebde | taeseongkim | |
485 | 150747cb | taeseongkim | //using (var client = new System.Net.Http.HttpClient()) |
486 | //{ |
||
487 | // var uri2 = new Uri("http://localhost:13009/MarkusService.svc/Rest/GetCommantList"); |
||
488 | |||
489 | // var data2 = new SEND |
||
490 | // { |
||
491 | // ProjectNo = "111111", |
||
492 | // DocumentID = "453" |
||
493 | // }; |
||
494 | |||
495 | // var jsonRequest2 = JsonConvert.SerializeObject(data2); |
||
496 | // var stringContent = new System.Net.Http.StringContent(jsonRequest2, Encoding.UTF8, "application/json"); |
||
497 | // var response = await client.PostAsync(uri2, stringContent); |
||
498 | |||
499 | // if (response.IsSuccessStatusCode) |
||
500 | // { |
||
501 | // System.Diagnostics.Debug.WriteLine(response.Content.Headers.First()); |
||
502 | // System.Diagnostics.Debug.WriteLine(await response.Content.ReadAsStringAsync()); |
||
503 | // } |
||
504 | //} |
||
505 | |||
506 | c433ebde | taeseongkim | //var client2 = new System.Net.WebClient(); |
507 | //client2.Proxy = new System.Net.WebProxy("127.0.0.1", 8888); |
||
508 | //var result = await client2.DownloadStringTaskAsync("http://localhost:9101/StationService/Rest/GetConvertItem?ProjectNo=111111&DocumentID=453"); |
||
509 | 53c9637d | taeseongkim | //System.Diagnostics.Debug.WriteLine(result); |
510 | } |
||
511 | c433ebde | taeseongkim | |
512 | static async Task<System.Net.Http.HttpResponseMessage> Request(HttpMethod pMethod, string pUrl, string pJsonContent, Dictionary<string, string> pHeaders) |
||
513 | { |
||
514 | var httpRequestMessage = new HttpRequestMessage(); |
||
515 | httpRequestMessage.Method = pMethod; |
||
516 | httpRequestMessage.RequestUri = new Uri(pUrl); |
||
517 | foreach (var head in pHeaders) |
||
518 | { |
||
519 | httpRequestMessage.Headers.Add(head.Key, head.Value); |
||
520 | } |
||
521 | switch (pMethod.Method) |
||
522 | { |
||
523 | case "POST": |
||
524 | HttpContent httpContent = new StringContent(pJsonContent, Encoding.UTF8, "application/json"); |
||
525 | httpRequestMessage.Content = httpContent; |
||
526 | break; |
||
527 | |||
528 | } |
||
529 | |||
530 | return await new HttpClient().SendAsync(httpRequestMessage); |
||
531 | } |
||
532 | 06f13e11 | taeseongkim | |
533 | private async void ConvertWebServiceTest_click(object sender, RoutedEventArgs e) |
||
534 | { |
||
535 | using (Markus.Service.DataBase.ConvertDatabase database = new Markus.Service.DataBase.ConvertDatabase(MarkusDBConnectionString)) |
||
536 | { |
||
537 | |||
538 | var items = database.GetConvertItems(Markus.Message.StatusCodeType.Completed).Take(100).ToList(); |
||
539 | |||
540 | var service = new ConvertWebService.ConversionSoapClient(); |
||
541 | |||
542 | int count = 0; |
||
543 | |||
544 | foreach (var item in items) |
||
545 | { |
||
546 | count++; |
||
547 | byte[] bytes = Encoding.UTF8.GetBytes(item.OriginfilePath); |
||
548 | var url = Convert.ToBase64String(bytes); |
||
549 | var result = await service.ConvertRunAsync(count.ToString(), item.UniqueKey, item.UniqueKey + count.ToString(), count.ToString(), "111111", item.UniqueKey, url); |
||
550 | |||
551 | System.Diagnostics.Debug.WriteLine(item.ConvertID + " " + result.ToString()); |
||
552 | } |
||
553 | } |
||
554 | } |
||
555 | 60723dc9 | taeseongkim | |
556 | private async void DownLoadTest_click(object sender, RoutedEventArgs e) |
||
557 | { |
||
558 | 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"); |
||
559 | } |
||
560 | |||
561 | private async Task<bool> DownloadFileAsync(string FileaPath) |
||
562 | { |
||
563 | bool result = false; |
||
564 | |||
565 | try |
||
566 | { |
||
567 | Uri pdfFileUri = null; |
||
568 | |||
569 | //if (saveItem.PdfFilePath.Contains("VPCS_DOCLIB")) |
||
570 | //{ |
||
571 | // FileName = DocUri.Remove(0, DocUri.LastIndexOf("/") + 1); |
||
572 | // ProjectFolderPath = DownloadDir_PDF + "\\" + ConverterItem.PROJECT_NO + "_Tile"; //프로젝트 폴더 |
||
573 | // ItemListPath = ProjectFolderPath + "\\" + (System.Convert.ToInt64(ConverterItem.DOCUMENT_ID) / 100).ToString(); |
||
574 | // ItemPath = ItemListPath + "\\" + ConverterItem.DOCUMENT_ID; |
||
575 | // DownloadFilePath = ItemPath + "\\" + FileName; |
||
576 | //} |
||
577 | //else |
||
578 | //{ |
||
579 | // ProjectFolderPath = DownloadDir_PDF + "\\" + ConverterItem.PROJECT_NO + "_Tile"; //프로젝트 폴더 |
||
580 | // ItemListPath = ProjectFolderPath + "\\" + (System.Convert.ToInt64(ConverterItem.DOCUMENT_ID) / 100).ToString(); |
||
581 | // ItemPath = ItemListPath + "\\" + ConverterItem.DOCUMENT_ID; |
||
582 | // FileName = HttpUtility.ParseQueryString(new Uri(DocUri).Query).Get("fileName"); |
||
583 | // DownloadFilePath = string.IsNullOrWhiteSpace(FileName) ? ItemPath + "\\" + FileName : ItemPath + "\\" + FileName; |
||
584 | |||
585 | //} |
||
586 | |||
587 | FileaPath = HttpUtility.UrlDecode(FileaPath); //PDF 전체 경로 |
||
588 | string FileName = DownloadUri.GetFileName(FileaPath); |
||
589 | |||
590 | string downloadFilePath = System.IO.Path.Combine(@"c:\temp", FileName); |
||
591 | |||
592 | // 드라이브 경로가 포함되었는지 판단. |
||
593 | if (Path.IsPathRooted(FileaPath)) |
||
594 | { |
||
595 | if (File.Exists(FileaPath)) |
||
596 | { |
||
597 | File.Copy(FileaPath, downloadFilePath, true); |
||
598 | } |
||
599 | else |
||
600 | { |
||
601 | throw new Exception("File Not Found. Please, check the file path."); |
||
602 | } |
||
603 | } |
||
604 | else if (Uri.TryCreate(FileaPath, UriKind.RelativeOrAbsolute, out pdfFileUri)) |
||
605 | { |
||
606 | try |
||
607 | { |
||
608 | using (System.Net.WebClient webClient = new System.Net.WebClient()) |
||
609 | { |
||
610 | webClient.UseDefaultCredentials = true;//.Headers.Add("Authorization: BASIC SGVsbG8="); //가상의 인증 |
||
611 | |||
612 | //if (!System.IO.Directory.Exists(ConvertProcessContext.TempDirectory)) |
||
613 | //{ |
||
614 | // System.IO.Directory.CreateDirectory(ConvertProcessContext.TempDirectory); |
||
615 | //} |
||
616 | |||
617 | await webClient.DownloadFileTaskAsync(pdfFileUri, downloadFilePath); |
||
618 | } |
||
619 | } |
||
620 | catch (Exception) |
||
621 | { |
||
622 | throw new Exception("File Download Error. Please, check the file path."); |
||
623 | } |
||
624 | } |
||
625 | else |
||
626 | { |
||
627 | throw new Exception("Please, check the file path."); |
||
628 | } |
||
629 | |||
630 | if (File.Exists(downloadFilePath)) |
||
631 | { |
||
632 | var file = File.Open(downloadFilePath, FileMode.Open); |
||
633 | |||
634 | if (file.Length == 0) |
||
635 | { |
||
636 | throw new Exception("File Size 0. Please, check the file path."); |
||
637 | } |
||
638 | |||
639 | file.Close(); |
||
640 | file.Dispose(); |
||
641 | |||
642 | FileaPath = downloadFilePath; |
||
643 | result = true; |
||
644 | |||
645 | } |
||
646 | } |
||
647 | catch (Exception EX) |
||
648 | { |
||
649 | System.Diagnostics.Debug.WriteLine(EX.ToString()); |
||
650 | result = false; |
||
651 | } |
||
652 | |||
653 | return result; |
||
654 | } |
||
655 | |||
656 | 65fbe3cb | taeseongkim | private void ServiceCallTest_click(object sender, RoutedEventArgs e) |
657 | { |
||
658 | using (Markus.Service.DataBase.ConvertDatabase database = new Markus.Service.DataBase.ConvertDatabase(MarkusDBConnectionString)) |
||
659 | { |
||
660 | |||
661 | var items = database.GetConvertItems(Markus.Message.StatusCodeType.Completed).Take(100).ToList(); |
||
662 | |||
663 | int count = 0; |
||
664 | |||
665 | foreach (var item in items) |
||
666 | { |
||
667 | database.SetCleanUpItem(item.ConvertID, 0); |
||
668 | |||
669 | System.Net.WebClient client = new System.Net.WebClient(); |
||
670 | var convertResult = client.DownloadString($"http://192.168.0.129:9101/StationService/Rest/ConvertAdd?ProjectNo={item.ProjectNumber}&DocumentID={item.ConvertID}"); |
||
671 | |||
672 | JObject jObject = JObject.Parse(convertResult, new JsonLoadSettings()); |
||
673 | var result = jObject["ConvertAddResult"].ToString(); |
||
674 | System.Diagnostics.Debug.WriteLine(item.ConvertID + " " + result.ToString()); |
||
675 | } |
||
676 | } |
||
677 | } |
||
678 | f363a40e | taeseongkim | |
679 | private void ConfingSectionTest_click(object sender, RoutedEventArgs e) |
||
680 | { |
||
681 | var config = Markus.Service.Helper.ConfigHelper.AppConfig("Plugin.ini"); |
||
682 | |||
683 | Dictionary<string, object> parameters = new Dictionary<string, object>(); |
||
684 | |||
685 | var sections = config.Sections.Where(x => x.SectionName == "PemssDocumentInfo").FirstOrDefault(); |
||
686 | |||
687 | foreach (var item in sections.Keys) |
||
688 | { |
||
689 | parameters.Add(item.Name,item.Content); |
||
690 | } |
||
691 | } |
||
692 | |||
693 | private void PemssPluginTest_click(object sender, RoutedEventArgs e) |
||
694 | { |
||
695 | |||
696 | } |
||
697 | 53c9637d | taeseongkim | } |
698 | |||
699 | class IntegratedServiceInstaller |
||
700 | { |
||
701 | public void Install(String ServiceName, String DisplayName, String Description, |
||
702 | System.ServiceProcess.ServiceAccount Account, |
||
703 | System.ServiceProcess.ServiceStartMode StartMode) |
||
704 | { |
||
705 | System.ServiceProcess.ServiceProcessInstaller ProcessInstaller = new System.ServiceProcess.ServiceProcessInstaller(); |
||
706 | ProcessInstaller.Account = Account; |
||
707 | |||
708 | System.ServiceProcess.ServiceInstaller SINST = new System.ServiceProcess.ServiceInstaller(); |
||
709 | |||
710 | System.Configuration.Install.InstallContext Context = new System.Configuration.Install.InstallContext(); |
||
711 | string processPath = Process.GetCurrentProcess().MainModule.FileName; |
||
712 | if (processPath != null && processPath.Length > 0) |
||
713 | { |
||
714 | System.IO.FileInfo fi = new System.IO.FileInfo(processPath); |
||
715 | //Context = new System.Configuration.Install.InstallContext(); |
||
716 | //Context.Parameters.Add("assemblyPath", fi.FullName); |
||
717 | //Context.Parameters.Add("startParameters", "Test"); |
||
718 | |||
719 | String path = String.Format("/assemblypath={0}", fi.FullName); |
||
720 | String[] cmdline = { path }; |
||
721 | Context = new System.Configuration.Install.InstallContext("", cmdline); |
||
722 | } |
||
723 | |||
724 | SINST.Context = Context; |
||
725 | SINST.DisplayName = DisplayName; |
||
726 | SINST.Description = Description; |
||
727 | SINST.ServiceName = ServiceName; |
||
728 | SINST.StartType = StartMode; |
||
729 | SINST.Parent = ProcessInstaller; |
||
730 | |||
731 | // http://bytes.com/forum/thread527221.html |
||
732 | // SINST.ServicesDependedOn = new String[] {}; |
||
733 | |||
734 | System.Collections.Specialized.ListDictionary state = new System.Collections.Specialized.ListDictionary(); |
||
735 | SINST.Install(state); |
||
736 | |||
737 | // http://www.dotnet247.com/247reference/msgs/43/219565.aspx |
||
738 | using (RegistryKey oKey = Registry.LocalMachine.OpenSubKey(String.Format(@"SYSTEM\CurrentControlSet\Services\{0}", SINST.ServiceName), true)) |
||
739 | { |
||
740 | try |
||
741 | { |
||
742 | Object sValue = oKey.GetValue("ImagePath"); |
||
743 | oKey.SetValue("ImagePath", sValue); |
||
744 | } |
||
745 | catch (Exception Ex) |
||
746 | { |
||
747 | // System.Console.WriteLine(Ex.Message); |
||
748 | } |
||
749 | } |
||
750 | |||
751 | } |
||
752 | public void Uninstall(String ServiceName) |
||
753 | { |
||
754 | System.ServiceProcess.ServiceInstaller SINST = new System.ServiceProcess.ServiceInstaller(); |
||
755 | |||
756 | System.Configuration.Install.InstallContext Context = new System.Configuration.Install.InstallContext("c:\\install.log", null); |
||
757 | SINST.Context = Context; |
||
758 | SINST.ServiceName = ServiceName; |
||
759 | SINST.Uninstall(null); |
||
760 | } |
||
761 | } |
||
762 | c433ebde | taeseongkim | |
763 | public class SEND |
||
764 | { |
||
765 | public string ProjectNo { get; set; } |
||
766 | public string DocumentID{ get; set; } |
||
767 | } |
||
768 | 53c9637d | taeseongkim | } |