개정판 af9bffc5
convert FileDownloadTest.csproj 추가
Change-Id: I9e9cdef8f0f1c8fd562522007a789307f23635b8
ConvertService/ServiceBase/FileDownloadTest/FileDownloadTest.csproj | ||
---|---|---|
1 |
<?xml version="1.0" encoding="utf-8"?> |
|
2 |
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> |
|
3 |
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" /> |
|
4 |
<PropertyGroup> |
|
5 |
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> |
|
6 |
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> |
|
7 |
<ProjectGuid>{9D72BE39-3471-4267-BD62-36BDA836EC1F}</ProjectGuid> |
|
8 |
<OutputType>Exe</OutputType> |
|
9 |
<RootNamespace>FileDownloadTest</RootNamespace> |
|
10 |
<AssemblyName>FileDownloadTest</AssemblyName> |
|
11 |
<TargetFrameworkVersion>v4.5</TargetFrameworkVersion> |
|
12 |
<FileAlignment>512</FileAlignment> |
|
13 |
<Deterministic>true</Deterministic> |
|
14 |
</PropertyGroup> |
|
15 |
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> |
|
16 |
<PlatformTarget>x64</PlatformTarget> |
|
17 |
<DebugSymbols>true</DebugSymbols> |
|
18 |
<DebugType>full</DebugType> |
|
19 |
<Optimize>false</Optimize> |
|
20 |
<OutputPath>bin\Debug\</OutputPath> |
|
21 |
<DefineConstants>DEBUG;TRACE</DefineConstants> |
|
22 |
<ErrorReport>prompt</ErrorReport> |
|
23 |
<WarningLevel>4</WarningLevel> |
|
24 |
<Prefer32Bit>false</Prefer32Bit> |
|
25 |
</PropertyGroup> |
|
26 |
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> |
|
27 |
<PlatformTarget>AnyCPU</PlatformTarget> |
|
28 |
<DebugType>pdbonly</DebugType> |
|
29 |
<Optimize>true</Optimize> |
|
30 |
<OutputPath>bin\Release\</OutputPath> |
|
31 |
<DefineConstants>TRACE</DefineConstants> |
|
32 |
<ErrorReport>prompt</ErrorReport> |
|
33 |
<WarningLevel>4</WarningLevel> |
|
34 |
</PropertyGroup> |
|
35 |
<ItemGroup> |
|
36 |
<Reference Include="EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL"> |
|
37 |
<HintPath>..\packages\EntityFramework.6.2.0\lib\net45\EntityFramework.dll</HintPath> |
|
38 |
</Reference> |
|
39 |
<Reference Include="EntityFramework.SqlServer, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL"> |
|
40 |
<HintPath>..\packages\EntityFramework.6.2.0\lib\net45\EntityFramework.SqlServer.dll</HintPath> |
|
41 |
</Reference> |
|
42 |
<Reference Include="Markus.EntityModel, Version=0.0.0.0, Culture=neutral, processorArchitecture=MSIL"> |
|
43 |
<HintPath>..\packages\MarkusDatabase.1.7.2\lib\net45\Markus.EntityModel.dll</HintPath> |
|
44 |
</Reference> |
|
45 |
<Reference Include="Markus.LibraryInstaller, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL"> |
|
46 |
<HintPath>..\packages\Markus.LibraryInstaller.1.5.1\lib\net45\Markus.LibraryInstaller.dll</HintPath> |
|
47 |
</Reference> |
|
48 |
<Reference Include="Markus.Message, Version=1.5.3.0, Culture=neutral, processorArchitecture=MSIL"> |
|
49 |
<HintPath>..\packages\Markus.Message.1.5.4\lib\net45\Markus.Message.dll</HintPath> |
|
50 |
</Reference> |
|
51 |
<Reference Include="MarkusPDF, Version=1.0.7145.16256, Culture=neutral, processorArchitecture=AMD64"> |
|
52 |
<HintPath>..\packages\MarkusPDF.1.6.1\lib\net45\MarkusPDF.dll</HintPath> |
|
53 |
</Reference> |
|
54 |
<Reference Include="System" /> |
|
55 |
<Reference Include="System.ComponentModel.DataAnnotations" /> |
|
56 |
<Reference Include="System.Core" /> |
|
57 |
<Reference Include="System.Xml.Linq" /> |
|
58 |
<Reference Include="System.Data.DataSetExtensions" /> |
|
59 |
<Reference Include="Microsoft.CSharp" /> |
|
60 |
<Reference Include="System.Data" /> |
|
61 |
<Reference Include="System.Net.Http" /> |
|
62 |
<Reference Include="System.Xml" /> |
|
63 |
</ItemGroup> |
|
64 |
<ItemGroup> |
|
65 |
<Compile Include="Program.cs" /> |
|
66 |
<Compile Include="Properties\AssemblyInfo.cs" /> |
|
67 |
</ItemGroup> |
|
68 |
<ItemGroup> |
|
69 |
<None Include="App.config" /> |
|
70 |
<None Include="packages.config" /> |
|
71 |
</ItemGroup> |
|
72 |
<ItemGroup> |
|
73 |
<ProjectReference Include="..\IServiceBase\Markus.Service.Interface.csproj"> |
|
74 |
<Project>{4a465fd0-8130-4d6b-a65f-c3cd6cc355a4}</Project> |
|
75 |
<Name>Markus.Service.Interface</Name> |
|
76 |
</ProjectReference> |
|
77 |
<ProjectReference Include="..\Markus.Service.Convert\Markus.Service.Convert.csproj"> |
|
78 |
<Project>{867e065c-3c22-47b1-9c2a-130a78dddd51}</Project> |
|
79 |
<Name>Markus.Service.Convert</Name> |
|
80 |
<EmbedInteropTypes>False</EmbedInteropTypes> |
|
81 |
</ProjectReference> |
|
82 |
<ProjectReference Include="..\Markus.Service.DataBase\Markus.Service.DataBase.csproj"> |
|
83 |
<Project>{400736fb-92c9-4bc0-b447-e8274103d813}</Project> |
|
84 |
<Name>Markus.Service.DataBase</Name> |
|
85 |
</ProjectReference> |
|
86 |
<ProjectReference Include="..\Markus.Service.WcfClient\Markus.Service.WcfClient.csproj"> |
|
87 |
<Project>{691078d3-be0e-4697-bab6-ed3aca842d19}</Project> |
|
88 |
<Name>Markus.Service.WcfClient</Name> |
|
89 |
</ProjectReference> |
|
90 |
</ItemGroup> |
|
91 |
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" /> |
|
92 |
</Project> |
ConvertService/ServiceBase/FileDownloadTest/Program.cs | ||
---|---|---|
1 |
using System; |
|
2 |
using System.Collections.Generic; |
|
3 |
using System.Linq; |
|
4 |
using System.Text; |
|
5 |
using System.Threading.Tasks; |
|
6 |
|
|
7 |
namespace FileDownloadTest |
|
8 |
{ |
|
9 |
class Program |
|
10 |
{ |
|
11 |
static void Main(string[] args) |
|
12 |
{ |
|
13 |
//Markus.Library.Installer.Install(ArchitectureType.x64); |
|
14 |
|
|
15 |
while (true) |
|
16 |
{ |
|
17 |
try |
|
18 |
{ |
|
19 |
|
|
20 |
Markus.Service.Convert.ConvertService convertService = new Markus.Service.Convert.ConvertService(); |
|
21 |
var saveitem = new Markus.Message.SaveItem |
|
22 |
{ |
|
23 |
PdfFilePath = @"http://www.devdoftech.co.kr:5100/Doc_Manager/000000_app/VPCS_DOCLIB/40000053/250page.pdf", |
|
24 |
SavePath = @"D:\TileSorceStorage" |
|
25 |
}; |
|
26 |
|
|
27 |
var task = convertService.DownloadFileAsync(saveitem); |
|
28 |
|
|
29 |
task.Wait(); |
|
30 |
|
|
31 |
if (task.Result) |
|
32 |
{ |
|
33 |
for (int j = 0; j < 3; j++) |
|
34 |
{ |
|
35 |
Markus.MarkusPDF markusPDF = new Markus.MarkusPDF(); |
|
36 |
|
|
37 |
markusPDF.pdfLoad(saveitem.PdfFilePath, -1, 450); |
|
38 |
Console.WriteLine("pdf page : " + markusPDF.PageCount()); |
|
39 |
|
|
40 |
for (int i = 1; i < 20; i++) |
|
41 |
{ |
|
42 |
var msg = markusPDF.SavePage(i, $"D:\\TileSorceStorage\\test\\{i}.png"); |
|
43 |
Console.WriteLine($"loop : {j} page no : {i} {msg.Message} {((Markus.Message.StatusCodeType)msg.StatusCode).ToString()}"); |
|
44 |
|
|
45 |
} |
|
46 |
|
|
47 |
markusPDF.Dispose(); |
|
48 |
// System.Threading.Thread.SpinWait(5); |
|
49 |
} |
|
50 |
} |
|
51 |
} |
|
52 |
catch (Exception ex) |
|
53 |
{ |
|
54 |
System.Diagnostics.Debug.WriteLine(ex.ToString()); |
|
55 |
} |
|
56 |
} |
|
57 |
} |
|
58 |
} |
|
59 |
} |
ConvertService/ServiceBase/FileDownloadTest/Properties/AssemblyInfo.cs | ||
---|---|---|
1 |
using System.Reflection; |
|
2 |
using System.Runtime.CompilerServices; |
|
3 |
using System.Runtime.InteropServices; |
|
4 |
|
|
5 |
// 어셈블리에 대한 일반 정보는 다음 특성 집합을 통해 |
|
6 |
// 제어됩니다. 어셈블리와 관련된 정보를 수정하려면 |
|
7 |
// 이러한 특성 값을 변경하세요. |
|
8 |
[assembly: AssemblyTitle("FileDownloadTest")] |
|
9 |
[assembly: AssemblyDescription("")] |
|
10 |
[assembly: AssemblyConfiguration("")] |
|
11 |
[assembly: AssemblyCompany("")] |
|
12 |
[assembly: AssemblyProduct("FileDownloadTest")] |
|
13 |
[assembly: AssemblyCopyright("Copyright © 2019")] |
|
14 |
[assembly: AssemblyTrademark("")] |
|
15 |
[assembly: AssemblyCulture("")] |
|
16 |
|
|
17 |
// ComVisible을 false로 설정하면 이 어셈블리의 형식이 COM 구성 요소에 |
|
18 |
// 표시되지 않습니다. COM에서 이 어셈블리의 형식에 액세스하려면 |
|
19 |
// 해당 형식에 대해 ComVisible 특성을 true로 설정하세요. |
|
20 |
[assembly: ComVisible(false)] |
|
21 |
|
|
22 |
// 이 프로젝트가 COM에 노출되는 경우 다음 GUID는 typelib의 ID를 나타냅니다. |
|
23 |
[assembly: Guid("9d72be39-3471-4267-bd62-36bda836ec1f")] |
|
24 |
|
|
25 |
// 어셈블리의 버전 정보는 다음 네 가지 값으로 구성됩니다. |
|
26 |
// |
|
27 |
// 주 버전 |
|
28 |
// 부 버전 |
|
29 |
// 빌드 번호 |
|
30 |
// 수정 버전 |
|
31 |
// |
|
32 |
// 모든 값을 지정하거나 아래와 같이 '*'를 사용하여 빌드 번호 및 수정 번호가 자동으로 |
|
33 |
// 지정되도록 할 수 있습니다. |
|
34 |
// [assembly: AssemblyVersion("1.0.*")] |
|
35 |
[assembly: AssemblyVersion("1.0.0.0")] |
|
36 |
[assembly: AssemblyFileVersion("1.0.0.0")] |
ConvertService/ServiceBase/Markus.Service.Convert/ConvertService.cs | ||
---|---|---|
273 | 273 |
/// </summary> |
274 | 274 |
/// <param name="saveItem"></param> |
275 | 275 |
/// <returns></returns> |
276 |
private async Task<bool> DownloadFileAsync(SaveItem saveItem)
|
|
276 |
public async Task<bool> DownloadFileAsync(SaveItem saveItem)
|
|
277 | 277 |
{ |
278 | 278 |
bool result = false; |
279 | 279 |
|
... | ... | |
367 | 367 |
|
368 | 368 |
} |
369 | 369 |
} |
370 |
catch (Exception) |
|
370 |
catch (Exception ex)
|
|
371 | 371 |
{ |
372 | 372 |
result = false; |
373 | 373 |
} |
ConvertService/ServiceBase/Markus.Service.StationController/Data/MenuItem.cs | ||
---|---|---|
1 |
using System; |
|
2 |
using System.Collections.Generic; |
|
3 |
using System.Linq; |
|
4 |
using System.Text; |
|
5 |
using System.Threading.Tasks; |
|
6 |
|
|
7 |
namespace Markus.Service.StationController.Data |
|
8 |
{ |
|
9 |
public class MenuItem :Mvvm.ToolKit.NotifyExpectation |
|
10 |
{ |
|
11 |
public MenuItem() |
|
12 |
{ |
|
13 |
|
|
14 |
} |
|
15 |
|
|
16 |
public MenuItem(string name,object content) |
|
17 |
{ |
|
18 |
Name = name; |
|
19 |
Content = content; |
|
20 |
} |
|
21 |
|
|
22 |
private string _name; |
|
23 |
private object _content; |
|
24 |
private string _description; |
|
25 |
private bool _IsSelected; |
|
26 |
|
|
27 |
public object Content |
|
28 |
{ |
|
29 |
get => _content; |
|
30 |
set |
|
31 |
{ |
|
32 |
_content = value; |
|
33 |
OnPropertyChanged(() => Content); |
|
34 |
} |
|
35 |
} |
|
36 |
|
|
37 |
public string Name |
|
38 |
{ |
|
39 |
get => _name; |
|
40 |
set |
|
41 |
{ |
|
42 |
_name = value; |
|
43 |
OnPropertyChanged(() => Name); |
|
44 |
} |
|
45 |
} |
|
46 |
public bool IsSelected |
|
47 |
{ |
|
48 |
get => _IsSelected; |
|
49 |
set |
|
50 |
{ |
|
51 |
_IsSelected = value; |
|
52 |
OnPropertyChanged(() => IsSelected); |
|
53 |
} |
|
54 |
} |
|
55 |
|
|
56 |
public string Description |
|
57 |
{ |
|
58 |
get => _description; |
|
59 |
set |
|
60 |
{ |
|
61 |
_description = value; |
|
62 |
OnPropertyChanged(() => Description); |
|
63 |
} |
|
64 |
} |
|
65 |
} |
|
66 |
} |
ConvertService/ServiceBase/Markus.Service.StationController/Data/NavigationItem.cs | ||
---|---|---|
1 |
using System; |
|
2 |
using System.Collections.Generic; |
|
3 |
using System.Linq; |
|
4 |
using System.Text; |
|
5 |
using System.Threading.Tasks; |
|
6 |
|
|
7 |
namespace Markus.Service.StationController.Data |
|
8 |
{ |
|
9 |
public class MenuItem :Mvvm.ToolKit.NotifyExpectation |
|
10 |
{ |
|
11 |
public MenuItem() |
|
12 |
{ |
|
13 |
|
|
14 |
} |
|
15 |
|
|
16 |
public MenuItem(string name,object content) |
|
17 |
{ |
|
18 |
Name = name; |
|
19 |
Content = content; |
|
20 |
} |
|
21 |
|
|
22 |
private string _name; |
|
23 |
private object _content; |
|
24 |
private string _description; |
|
25 |
private bool _IsSelected; |
|
26 |
|
|
27 |
public object Content |
|
28 |
{ |
|
29 |
get => _content; |
|
30 |
set |
|
31 |
{ |
|
32 |
_content = value; |
|
33 |
OnPropertyChanged(() => Content); |
|
34 |
} |
|
35 |
} |
|
36 |
|
|
37 |
public string Name |
|
38 |
{ |
|
39 |
get => _name; |
|
40 |
set |
|
41 |
{ |
|
42 |
_name = value; |
|
43 |
OnPropertyChanged(() => Name); |
|
44 |
} |
|
45 |
} |
|
46 |
public bool IsSelected |
|
47 |
{ |
|
48 |
get => _IsSelected; |
|
49 |
set |
|
50 |
{ |
|
51 |
_IsSelected = value; |
|
52 |
OnPropertyChanged(() => IsSelected); |
|
53 |
} |
|
54 |
} |
|
55 |
|
|
56 |
public string Description |
|
57 |
{ |
|
58 |
get => _description; |
|
59 |
set |
|
60 |
{ |
|
61 |
_description = value; |
|
62 |
OnPropertyChanged(() => Description); |
|
63 |
} |
|
64 |
} |
|
65 |
} |
|
66 |
} |
ConvertService/ServiceBase/Markus.Service.StationController/Data/StatusViewItem.cs | ||
---|---|---|
1 |
using System; |
|
2 |
using System.Collections.Generic; |
|
3 |
using System.Linq; |
|
4 |
using System.Text; |
|
5 |
using System.Threading.Tasks; |
|
6 |
|
|
7 |
namespace Markus.Service.StationController.Data |
|
8 |
{ |
|
9 |
public class StatusViewItem : Mvvm.ToolKit.NotifyExpectation |
|
10 |
{ |
|
11 |
private int sortIndex; |
|
12 |
|
|
13 |
private string serviceId; |
|
14 |
private string serviceName; |
|
15 |
private int aliveItems; |
|
16 |
private int complated; |
|
17 |
private int error; |
|
18 |
|
|
19 |
|
|
20 |
public string ServiceId |
|
21 |
{ |
|
22 |
get => serviceId; |
|
23 |
set |
|
24 |
{ |
|
25 |
serviceId = value; |
|
26 |
OnPropertyChanged(() => ServiceId); |
|
27 |
} |
|
28 |
} |
|
29 |
|
|
30 |
public string ServiceName |
|
31 |
{ |
|
32 |
get => serviceName; |
|
33 |
set |
|
34 |
{ |
|
35 |
serviceName = value; |
|
36 |
OnPropertyChanged(() => ServiceName); |
|
37 |
} |
|
38 |
} |
|
39 |
|
|
40 |
public int Complated |
|
41 |
{ |
|
42 |
get => complated; |
|
43 |
set |
|
44 |
{ |
|
45 |
complated = value; |
|
46 |
OnPropertyChanged(() => Complated); |
|
47 |
} |
|
48 |
} |
|
49 |
|
|
50 |
public int Error |
|
51 |
{ |
|
52 |
get => error; |
|
53 |
set |
|
54 |
{ |
|
55 |
error = value; |
|
56 |
OnPropertyChanged(() => Error); |
|
57 |
} |
|
58 |
} |
|
59 |
public int AliveItems |
|
60 |
{ |
|
61 |
get => aliveItems; |
|
62 |
set |
|
63 |
{ |
|
64 |
aliveItems = value; |
|
65 |
OnPropertyChanged(() => AliveItems); |
|
66 |
} |
|
67 |
} |
|
68 |
|
|
69 |
public int SortIndex |
|
70 |
{ |
|
71 |
get => sortIndex; |
|
72 |
set |
|
73 |
{ |
|
74 |
sortIndex = value; |
|
75 |
OnPropertyChanged(() => SortIndex); |
|
76 |
} |
|
77 |
} |
|
78 |
} |
|
79 |
} |
ConvertService/ServiceBase/Markus.Service.StationController/Markus.Service.StationController.csproj | ||
---|---|---|
147 | 147 |
<DependentUpon>TraceDocument.xaml</DependentUpon> |
148 | 148 |
</Compile> |
149 | 149 |
<Compile Include="Controls\TraceTextSource.cs" /> |
150 |
<Compile Include="Data\NavigationItem.cs" /> |
|
150 |
<Compile Include="Data\MenuItem.cs" /> |
|
151 |
<Compile Include="Data\StatusViewItem.cs" /> |
|
151 | 152 |
<Compile Include="Extensions\ConvertItemChangeValue.cs" /> |
152 | 153 |
<Compile Include="Extensions\GetStatusTypeEnums.cs" /> |
153 | 154 |
<Compile Include="Extensions\VisualTreeHelper.cs" /> |
154 | 155 |
<Compile Include="ViewModel\DataBaseByStatusViewModel.cs" /> |
155 | 156 |
<Compile Include="ViewModel\AliveViewModel.cs" /> |
156 | 157 |
<Compile Include="ViewModel\MainViewModel.cs" /> |
158 |
<Compile Include="ViewModel\TotalStatusViewModel.cs" /> |
|
157 | 159 |
<Compile Include="Views\MergeDataView.xaml.cs"> |
158 | 160 |
<DependentUpon>MergeDataView.xaml</DependentUpon> |
159 | 161 |
</Compile> |
... | ... | |
170 | 172 |
<Compile Include="Views\SettingsView.xaml.cs"> |
171 | 173 |
<DependentUpon>SettingsView.xaml</DependentUpon> |
172 | 174 |
</Compile> |
175 |
<Compile Include="Views\TotalStatusView.xaml.cs"> |
|
176 |
<DependentUpon>TotalStatusView.xaml</DependentUpon> |
|
177 |
</Compile> |
|
173 | 178 |
<Page Include="Controls\TraceDocument.xaml"> |
174 | 179 |
<Generator>MSBuild:Compile</Generator> |
175 | 180 |
<SubType>Designer</SubType> |
... | ... | |
218 | 223 |
<SubType>Designer</SubType> |
219 | 224 |
<Generator>MSBuild:Compile</Generator> |
220 | 225 |
</Page> |
226 |
<Page Include="Views\TotalStatusView.xaml"> |
|
227 |
<SubType>Designer</SubType> |
|
228 |
<Generator>MSBuild:Compile</Generator> |
|
229 |
</Page> |
|
221 | 230 |
</ItemGroup> |
222 | 231 |
<ItemGroup> |
223 | 232 |
<Compile Include="Properties\AssemblyInfo.cs"> |
ConvertService/ServiceBase/Markus.Service.StationController/ViewModel/TotalStatusViewModel.cs | ||
---|---|---|
1 |
using Markus.Service.WcfClient.StationServiceTask; |
|
2 |
using System; |
|
3 |
using System.Collections.Generic; |
|
4 |
using System.Collections.ObjectModel; |
|
5 |
using System.ComponentModel; |
|
6 |
using System.Linq; |
|
7 |
using System.Text; |
|
8 |
using System.Threading.Tasks; |
|
9 |
using System.Web; |
|
10 |
|
|
11 |
namespace Markus.Service.StationController.ViewModel |
|
12 |
{ |
|
13 |
public class TotalStatusViewModel : Mvvm.ToolKit.ViewModelBase |
|
14 |
{ |
|
15 |
|
|
16 |
BackgroundWorker backgroundWorker; |
|
17 |
private System.Windows.Documents.FlowDocument connectionLog; |
|
18 |
private bool isLoading; |
|
19 |
|
|
20 |
public ObservableCollection<Data.StatusViewItem> items; |
|
21 |
|
|
22 |
public System.Collections.ObjectModel.ObservableCollection<Data.StatusViewItem> Items |
|
23 |
{ |
|
24 |
get => items; set |
|
25 |
{ |
|
26 |
items = value; |
|
27 |
OnPropertyChanged(() => Items); |
|
28 |
} |
|
29 |
} |
|
30 |
|
|
31 |
public bool IsLoading |
|
32 |
{ |
|
33 |
get => isLoading; set |
|
34 |
{ |
|
35 |
if (isLoading != value) |
|
36 |
{ |
|
37 |
isLoading = value; |
|
38 |
OnPropertyChanged(() => IsLoading); |
|
39 |
} |
|
40 |
} |
|
41 |
} |
|
42 |
|
|
43 |
|
|
44 |
public System.Windows.Documents.FlowDocument ConnectionLog |
|
45 |
{ |
|
46 |
get => connectionLog; |
|
47 |
set |
|
48 |
{ |
|
49 |
if (connectionLog != value) |
|
50 |
{ |
|
51 |
connectionLog = value; |
|
52 |
OnPropertyChanged(() => ConnectionLog); |
|
53 |
} |
|
54 |
} |
|
55 |
} |
|
56 |
|
|
57 |
public TotalStatusViewModel() |
|
58 |
{ |
|
59 |
} |
|
60 |
|
|
61 |
// 진행률에 변화가 있을때 이벤트가 발생 |
|
62 |
private void backgroundWorker_ProgressChanged(object sender, ProgressChangedEventArgs e) |
|
63 |
{ |
|
64 |
} |
|
65 |
|
|
66 |
// 일이 모두 마쳤을때 수행되어야할 코드 |
|
67 |
private void backgroundWorker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e) |
|
68 |
{ |
|
69 |
} |
|
70 |
|
|
71 |
// BackgroundWorker에서 수행할 일을 정의. |
|
72 |
private async void backgroundWorker_DoWork(object sender, DoWorkEventArgs e) |
|
73 |
{ |
|
74 |
while (IsAcitve) |
|
75 |
{ |
|
76 |
System.Threading.Thread.Sleep(new TimeSpan(0, 0, 3)); |
|
77 |
|
|
78 |
if (!IsLoading) |
|
79 |
{ |
|
80 |
IsLoading = true; |
|
81 |
|
|
82 |
try |
|
83 |
{ |
|
84 |
|
|
85 |
List<ConvertItem> newitems = new List<ConvertItem>(); |
|
86 |
|
|
87 |
foreach (var client in App.StationClientList) |
|
88 |
{ |
|
89 |
if (await SimplePingAsync(client.Endpoint.Address.ToString())) |
|
90 |
{ |
|
91 |
try |
|
92 |
{ |
|
93 |
var items = await client.AliveConvertListAsync(); |
|
94 |
newitems.AddRange(items); |
|
95 |
System.Diagnostics.Trace.WriteLine($"{client.Endpoint.Address} ping"); |
|
96 |
|
|
97 |
if (items.Count() == 0) |
|
98 |
{ |
|
99 |
System.Diagnostics.Trace.WriteLine($"{client.Endpoint.Address} Alive Items is zero."); |
|
100 |
} |
|
101 |
} |
|
102 |
catch (Exception ex) |
|
103 |
{ |
|
104 |
System.Diagnostics.Trace.TraceError($"{client.Endpoint.Address} {ex.Message}"); |
|
105 |
} |
|
106 |
} |
|
107 |
else |
|
108 |
{ |
|
109 |
System.Diagnostics.Trace.TraceError($"{client.Endpoint.Address} ping Error"); |
|
110 |
} |
|
111 |
} |
|
112 |
|
|
113 |
} |
|
114 |
catch (Exception ex) |
|
115 |
{ |
|
116 |
} |
|
117 |
|
|
118 |
IsLoading = false; |
|
119 |
} |
|
120 |
|
|
121 |
} |
|
122 |
} |
|
123 |
|
|
124 |
|
|
125 |
private void LogWrite(string log, bool IsError) |
|
126 |
{ |
|
127 |
if (IsError) |
|
128 |
{ |
|
129 |
System.Diagnostics.Trace.Fail(log); |
|
130 |
} |
|
131 |
else |
|
132 |
{ |
|
133 |
System.Diagnostics.Trace.TraceInformation(log); |
|
134 |
} |
|
135 |
} |
|
136 |
|
|
137 |
|
|
138 |
public static async Task<bool> SimplePingAsync(string uri) |
|
139 |
{ |
|
140 |
bool result = false; |
|
141 |
|
|
142 |
try |
|
143 |
{ |
|
144 |
using (System.Net.Http.HttpClient Client = new System.Net.Http.HttpClient()) |
|
145 |
{ |
|
146 |
Client.Timeout = new TimeSpan(0, 5, 0); |
|
147 |
|
|
148 |
var message = await Client.GetAsync(uri); |
|
149 |
|
|
150 |
System.Net.HttpStatusCode StatusCode = message.StatusCode; |
|
151 |
|
|
152 |
switch (StatusCode) |
|
153 |
{ |
|
154 |
|
|
155 |
case System.Net.HttpStatusCode.Accepted: |
|
156 |
case System.Net.HttpStatusCode.OK: |
|
157 |
result = true; |
|
158 |
break; |
|
159 |
} |
|
160 |
} |
|
161 |
} |
|
162 |
catch (Exception ex) |
|
163 |
{ |
|
164 |
result = false; |
|
165 |
} |
|
166 |
|
|
167 |
return result; |
|
168 |
} |
|
169 |
|
|
170 |
public override void Loaded() |
|
171 |
{ |
|
172 |
base.Loaded(); |
|
173 |
|
|
174 |
if (!App.IsDesignMode) |
|
175 |
{ |
|
176 |
backgroundWorker = new BackgroundWorker(); |
|
177 |
backgroundWorker.DoWork += backgroundWorker_DoWork; |
|
178 |
backgroundWorker.RunWorkerCompleted += backgroundWorker_RunWorkerCompleted; |
|
179 |
backgroundWorker.WorkerReportsProgress = false; |
|
180 |
backgroundWorker.ProgressChanged += new ProgressChangedEventHandler(backgroundWorker_ProgressChanged); |
|
181 |
|
|
182 |
backgroundWorker.RunWorkerAsync(); |
|
183 |
} |
|
184 |
} |
|
185 |
|
|
186 |
public override void Closed() |
|
187 |
{ |
|
188 |
if (backgroundWorker != null) |
|
189 |
{ |
|
190 |
backgroundWorker.DoWork -= backgroundWorker_DoWork; |
|
191 |
backgroundWorker.RunWorkerCompleted -= backgroundWorker_RunWorkerCompleted; |
|
192 |
backgroundWorker.WorkerReportsProgress = false; |
|
193 |
backgroundWorker.ProgressChanged -= new ProgressChangedEventHandler(backgroundWorker_ProgressChanged); |
|
194 |
|
|
195 |
backgroundWorker.Dispose(); |
|
196 |
} |
|
197 |
|
|
198 |
base.Closed(); |
|
199 |
} |
|
200 |
} |
|
201 |
} |
ConvertService/ServiceBase/Markus.Service.StationController/Views/TotalStatusView.xaml | ||
---|---|---|
1 |
<UserControl x:Class="Markus.Service.StationController.Views.TotalStatusView" |
|
2 |
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" |
|
3 |
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" |
|
4 |
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" |
|
5 |
xmlns:d="http://schemas.microsoft.com/expression/blend/2008" |
|
6 |
xmlns:local="clr-namespace:Markus.Service.StationController.Views" |
|
7 |
mc:Ignorable="d" |
|
8 |
d:DesignHeight="450" d:DesignWidth="800"> |
|
9 |
<UserControl.Resources> |
|
10 |
<DataTemplate x:Key="StatusViewItem"> |
|
11 |
|
|
12 |
</DataTemplate> |
|
13 |
</UserControl.Resources> |
|
14 |
<Grid> |
|
15 |
<ListBox> |
|
16 |
|
|
17 |
</ListBox> |
|
18 |
</Grid> |
|
19 |
</UserControl> |
ConvertService/ServiceBase/Markus.Service.StationController/Views/TotalStatusView.xaml.cs | ||
---|---|---|
1 |
using System; |
|
2 |
using System.Collections.Generic; |
|
3 |
using System.Linq; |
|
4 |
using System.Text; |
|
5 |
using System.Threading.Tasks; |
|
6 |
using System.Windows; |
|
7 |
using System.Windows.Controls; |
|
8 |
using System.Windows.Data; |
|
9 |
using System.Windows.Documents; |
|
10 |
using System.Windows.Input; |
|
11 |
using System.Windows.Media; |
|
12 |
using System.Windows.Media.Imaging; |
|
13 |
using System.Windows.Navigation; |
|
14 |
using System.Windows.Shapes; |
|
15 |
|
|
16 |
namespace Markus.Service.StationController.Views |
|
17 |
{ |
|
18 |
/// <summary> |
|
19 |
/// TotalStatusView.xaml에 대한 상호 작용 논리 |
|
20 |
/// </summary> |
|
21 |
public partial class TotalStatusView : UserControl |
|
22 |
{ |
|
23 |
public TotalStatusView() |
|
24 |
{ |
|
25 |
InitializeComponent(); |
|
26 |
} |
|
27 |
} |
|
28 |
} |
ConvertService/ServiceBase/ServiceBase.sln | ||
---|---|---|
70 | 70 |
WindowsSdk\Windows SDK Signing Tools-x86_en-us.msi = WindowsSdk\Windows SDK Signing Tools-x86_en-us.msi |
71 | 71 |
EndProjectSection |
72 | 72 |
EndProject |
73 |
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FileDownloadTest", "FileDownloadTest\FileDownloadTest.csproj", "{9D72BE39-3471-4267-BD62-36BDA836EC1F}" |
|
74 |
EndProject |
|
73 | 75 |
Global |
74 | 76 |
GlobalSection(SolutionConfigurationPlatforms) = preSolution |
75 | 77 |
Debug|Any CPU = Debug|Any CPU |
... | ... | |
260 | 262 |
{390E93D0-2A7A-46DA-A9E9-98E7AAB72FBD}.Release|x64.Build.0 = Release |
261 | 263 |
{390E93D0-2A7A-46DA-A9E9-98E7AAB72FBD}.Release|x86.ActiveCfg = Release |
262 | 264 |
{390E93D0-2A7A-46DA-A9E9-98E7AAB72FBD}.Release|x86.Build.0 = Release |
265 |
{9D72BE39-3471-4267-BD62-36BDA836EC1F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU |
|
266 |
{9D72BE39-3471-4267-BD62-36BDA836EC1F}.Debug|Any CPU.Build.0 = Debug|Any CPU |
|
267 |
{9D72BE39-3471-4267-BD62-36BDA836EC1F}.Debug|x64.ActiveCfg = Debug|Any CPU |
|
268 |
{9D72BE39-3471-4267-BD62-36BDA836EC1F}.Debug|x64.Build.0 = Debug|Any CPU |
|
269 |
{9D72BE39-3471-4267-BD62-36BDA836EC1F}.Debug|x86.ActiveCfg = Debug|Any CPU |
|
270 |
{9D72BE39-3471-4267-BD62-36BDA836EC1F}.Debug|x86.Build.0 = Debug|Any CPU |
|
271 |
{9D72BE39-3471-4267-BD62-36BDA836EC1F}.Release|Any CPU.ActiveCfg = Release|Any CPU |
|
272 |
{9D72BE39-3471-4267-BD62-36BDA836EC1F}.Release|Any CPU.Build.0 = Release|Any CPU |
|
273 |
{9D72BE39-3471-4267-BD62-36BDA836EC1F}.Release|x64.ActiveCfg = Release|Any CPU |
|
274 |
{9D72BE39-3471-4267-BD62-36BDA836EC1F}.Release|x64.Build.0 = Release|Any CPU |
|
275 |
{9D72BE39-3471-4267-BD62-36BDA836EC1F}.Release|x86.ActiveCfg = Release|Any CPU |
|
276 |
{9D72BE39-3471-4267-BD62-36BDA836EC1F}.Release|x86.Build.0 = Release|Any CPU |
|
263 | 277 |
EndGlobalSection |
264 | 278 |
GlobalSection(SolutionProperties) = preSolution |
265 | 279 |
HideSolutionNode = FALSE |
내보내기 Unified diff