프로젝트

일반

사용자정보

개정판 5c387707

ID5c38770748300d8db2b347c77ad1e925fe887d96
상위 d6526b0c
하위 8f148d28

semi 이(가) 4년 이상 전에 추가함

service controller 경로 변경

Change-Id: I27880424bc7d34df698d104c852bc2a6909fcb8f

차이점 보기:

.gitignore
3 3
/KCOM/bin/x64/Debug/Bytescout.PDFExtractor.OCRExtension.dll
4 4
*.dll
5 5
*.cache
6
*.config
7 6
*.suo
8 7
*.ide
9 8
/KCOM/bin
ConvertService/ServiceBase/ServiceController.sln
1

2
Microsoft Visual Studio Solution File, Format Version 12.00
3
# Visual Studio 15
4
VisualStudioVersion = 15.0.28307.572
5
MinimumVisualStudioVersion = 10.0.40219.1
6
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Markus.Service.StationController", "Markus.Service.StationController\Markus.Service.StationController.csproj", "{9D993D6E-3A7B-470E-B5AD-D2CF89633F1C}"
7
	ProjectSection(ProjectDependencies) = postProject
8
		{B06C0A20-BC30-4A3E-8D74-E0E2FF55510F} = {B06C0A20-BC30-4A3E-8D74-E0E2FF55510F}
9
	EndProjectSection
10
EndProject
11
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Markus.Service.Extensions", "Markus.Service.Extensions\Markus.Service.Extensions.csproj", "{5F983789-3E8F-4F9A-A601-138C3A83CA5F}"
12
EndProject
13
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Markus.Mvvm.ToolKit", "Markus.Mvvm.ToolKit\Markus.Mvvm.ToolKit.csproj", "{9EFE95D6-9985-422A-A76F-285C8CF73617}"
14
EndProject
15
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Markus.Service.WcfClient", "Markus.Service.WcfClient\Markus.Service.WcfClient.csproj", "{691078D3-BE0E-4697-BAB6-ED3ACA842D19}"
16
	ProjectSection(ProjectDependencies) = postProject
17
		{B06C0A20-BC30-4A3E-8D74-E0E2FF55510F} = {B06C0A20-BC30-4A3E-8D74-E0E2FF55510F}
18
	EndProjectSection
19
EndProject
20
Project("{00D1A9C2-B5F0-4AF3-8072-F6C62B433612}") = "StationControllerSQL", "StationControllerSQL\StationControllerSQL.sqlproj", "{58C58DDF-311D-4108-A12B-1090C39E718B}"
21
EndProject
22
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StationControllerService", "StationControllerService\StationControllerService.csproj", "{B06C0A20-BC30-4A3E-8D74-E0E2FF55510F}"
23
EndProject
24
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Markus.ConvertProcessTest", "Markus.ConvertProcessTest\Markus.ConvertProcessTest.csproj", "{9D5B0CA0-329D-40AF-BA0D-B727080C19EB}"
25
EndProject
26
Global
27
	GlobalSection(SolutionConfigurationPlatforms) = preSolution
28
		AppVeyor|Any CPU = AppVeyor|Any CPU
29
		AppVeyor|x64 = AppVeyor|x64
30
		AppVeyor|x86 = AppVeyor|x86
31
		Debug|Any CPU = Debug|Any CPU
32
		Debug|x64 = Debug|x64
33
		Debug|x86 = Debug|x86
34
		Release|Any CPU = Release|Any CPU
35
		Release|x64 = Release|x64
36
		Release|x86 = Release|x86
37
	EndGlobalSection
38
	GlobalSection(ProjectConfigurationPlatforms) = postSolution
39
		{9D993D6E-3A7B-470E-B5AD-D2CF89633F1C}.AppVeyor|Any CPU.ActiveCfg = Release|Any CPU
40
		{9D993D6E-3A7B-470E-B5AD-D2CF89633F1C}.AppVeyor|Any CPU.Build.0 = Release|Any CPU
41
		{9D993D6E-3A7B-470E-B5AD-D2CF89633F1C}.AppVeyor|x64.ActiveCfg = Release|Any CPU
42
		{9D993D6E-3A7B-470E-B5AD-D2CF89633F1C}.AppVeyor|x64.Build.0 = Release|Any CPU
43
		{9D993D6E-3A7B-470E-B5AD-D2CF89633F1C}.AppVeyor|x86.ActiveCfg = Release|Any CPU
44
		{9D993D6E-3A7B-470E-B5AD-D2CF89633F1C}.AppVeyor|x86.Build.0 = Release|Any CPU
45
		{9D993D6E-3A7B-470E-B5AD-D2CF89633F1C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
46
		{9D993D6E-3A7B-470E-B5AD-D2CF89633F1C}.Debug|Any CPU.Build.0 = Debug|Any CPU
47
		{9D993D6E-3A7B-470E-B5AD-D2CF89633F1C}.Debug|x64.ActiveCfg = Debug|Any CPU
48
		{9D993D6E-3A7B-470E-B5AD-D2CF89633F1C}.Debug|x64.Build.0 = Debug|Any CPU
49
		{9D993D6E-3A7B-470E-B5AD-D2CF89633F1C}.Debug|x86.ActiveCfg = Debug|Any CPU
50
		{9D993D6E-3A7B-470E-B5AD-D2CF89633F1C}.Debug|x86.Build.0 = Debug|Any CPU
51
		{9D993D6E-3A7B-470E-B5AD-D2CF89633F1C}.Release|Any CPU.ActiveCfg = Release|Any CPU
52
		{9D993D6E-3A7B-470E-B5AD-D2CF89633F1C}.Release|Any CPU.Build.0 = Release|Any CPU
53
		{9D993D6E-3A7B-470E-B5AD-D2CF89633F1C}.Release|x64.ActiveCfg = Release|Any CPU
54
		{9D993D6E-3A7B-470E-B5AD-D2CF89633F1C}.Release|x64.Build.0 = Release|Any CPU
55
		{9D993D6E-3A7B-470E-B5AD-D2CF89633F1C}.Release|x86.ActiveCfg = Release|Any CPU
56
		{9D993D6E-3A7B-470E-B5AD-D2CF89633F1C}.Release|x86.Build.0 = Release|Any CPU
57
		{5F983789-3E8F-4F9A-A601-138C3A83CA5F}.AppVeyor|Any CPU.ActiveCfg = Release|Any CPU
58
		{5F983789-3E8F-4F9A-A601-138C3A83CA5F}.AppVeyor|Any CPU.Build.0 = Release|Any CPU
59
		{5F983789-3E8F-4F9A-A601-138C3A83CA5F}.AppVeyor|x64.ActiveCfg = Release|x64
60
		{5F983789-3E8F-4F9A-A601-138C3A83CA5F}.AppVeyor|x64.Build.0 = Release|x64
61
		{5F983789-3E8F-4F9A-A601-138C3A83CA5F}.AppVeyor|x86.ActiveCfg = Release|Any CPU
62
		{5F983789-3E8F-4F9A-A601-138C3A83CA5F}.AppVeyor|x86.Build.0 = Release|Any CPU
63
		{5F983789-3E8F-4F9A-A601-138C3A83CA5F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
64
		{5F983789-3E8F-4F9A-A601-138C3A83CA5F}.Debug|Any CPU.Build.0 = Debug|Any CPU
65
		{5F983789-3E8F-4F9A-A601-138C3A83CA5F}.Debug|x64.ActiveCfg = Debug|x64
66
		{5F983789-3E8F-4F9A-A601-138C3A83CA5F}.Debug|x64.Build.0 = Debug|x64
67
		{5F983789-3E8F-4F9A-A601-138C3A83CA5F}.Debug|x86.ActiveCfg = Debug|Any CPU
68
		{5F983789-3E8F-4F9A-A601-138C3A83CA5F}.Debug|x86.Build.0 = Debug|Any CPU
69
		{5F983789-3E8F-4F9A-A601-138C3A83CA5F}.Release|Any CPU.ActiveCfg = Release|Any CPU
70
		{5F983789-3E8F-4F9A-A601-138C3A83CA5F}.Release|Any CPU.Build.0 = Release|Any CPU
71
		{5F983789-3E8F-4F9A-A601-138C3A83CA5F}.Release|x64.ActiveCfg = Release|x64
72
		{5F983789-3E8F-4F9A-A601-138C3A83CA5F}.Release|x64.Build.0 = Release|x64
73
		{5F983789-3E8F-4F9A-A601-138C3A83CA5F}.Release|x86.ActiveCfg = Release|Any CPU
74
		{5F983789-3E8F-4F9A-A601-138C3A83CA5F}.Release|x86.Build.0 = Release|Any CPU
75
		{9EFE95D6-9985-422A-A76F-285C8CF73617}.AppVeyor|Any CPU.ActiveCfg = Release|Any CPU
76
		{9EFE95D6-9985-422A-A76F-285C8CF73617}.AppVeyor|Any CPU.Build.0 = Release|Any CPU
77
		{9EFE95D6-9985-422A-A76F-285C8CF73617}.AppVeyor|x64.ActiveCfg = Release|Any CPU
78
		{9EFE95D6-9985-422A-A76F-285C8CF73617}.AppVeyor|x64.Build.0 = Release|Any CPU
79
		{9EFE95D6-9985-422A-A76F-285C8CF73617}.AppVeyor|x86.ActiveCfg = Release|Any CPU
80
		{9EFE95D6-9985-422A-A76F-285C8CF73617}.AppVeyor|x86.Build.0 = Release|Any CPU
81
		{9EFE95D6-9985-422A-A76F-285C8CF73617}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
82
		{9EFE95D6-9985-422A-A76F-285C8CF73617}.Debug|Any CPU.Build.0 = Debug|Any CPU
83
		{9EFE95D6-9985-422A-A76F-285C8CF73617}.Debug|x64.ActiveCfg = Debug|Any CPU
84
		{9EFE95D6-9985-422A-A76F-285C8CF73617}.Debug|x64.Build.0 = Debug|Any CPU
85
		{9EFE95D6-9985-422A-A76F-285C8CF73617}.Debug|x86.ActiveCfg = Debug|Any CPU
86
		{9EFE95D6-9985-422A-A76F-285C8CF73617}.Debug|x86.Build.0 = Debug|Any CPU
87
		{9EFE95D6-9985-422A-A76F-285C8CF73617}.Release|Any CPU.ActiveCfg = Release|Any CPU
88
		{9EFE95D6-9985-422A-A76F-285C8CF73617}.Release|Any CPU.Build.0 = Release|Any CPU
89
		{9EFE95D6-9985-422A-A76F-285C8CF73617}.Release|x64.ActiveCfg = Release|Any CPU
90
		{9EFE95D6-9985-422A-A76F-285C8CF73617}.Release|x64.Build.0 = Release|Any CPU
91
		{9EFE95D6-9985-422A-A76F-285C8CF73617}.Release|x86.ActiveCfg = Release|Any CPU
92
		{9EFE95D6-9985-422A-A76F-285C8CF73617}.Release|x86.Build.0 = Release|Any CPU
93
		{691078D3-BE0E-4697-BAB6-ED3ACA842D19}.AppVeyor|Any CPU.ActiveCfg = Release|Any CPU
94
		{691078D3-BE0E-4697-BAB6-ED3ACA842D19}.AppVeyor|Any CPU.Build.0 = Release|Any CPU
95
		{691078D3-BE0E-4697-BAB6-ED3ACA842D19}.AppVeyor|x64.ActiveCfg = Release|Any CPU
96
		{691078D3-BE0E-4697-BAB6-ED3ACA842D19}.AppVeyor|x64.Build.0 = Release|Any CPU
97
		{691078D3-BE0E-4697-BAB6-ED3ACA842D19}.AppVeyor|x86.ActiveCfg = Release|Any CPU
98
		{691078D3-BE0E-4697-BAB6-ED3ACA842D19}.AppVeyor|x86.Build.0 = Release|Any CPU
99
		{691078D3-BE0E-4697-BAB6-ED3ACA842D19}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
100
		{691078D3-BE0E-4697-BAB6-ED3ACA842D19}.Debug|Any CPU.Build.0 = Debug|Any CPU
101
		{691078D3-BE0E-4697-BAB6-ED3ACA842D19}.Debug|x64.ActiveCfg = Debug|Any CPU
102
		{691078D3-BE0E-4697-BAB6-ED3ACA842D19}.Debug|x64.Build.0 = Debug|Any CPU
103
		{691078D3-BE0E-4697-BAB6-ED3ACA842D19}.Debug|x86.ActiveCfg = Debug|Any CPU
104
		{691078D3-BE0E-4697-BAB6-ED3ACA842D19}.Debug|x86.Build.0 = Debug|Any CPU
105
		{691078D3-BE0E-4697-BAB6-ED3ACA842D19}.Release|Any CPU.ActiveCfg = Release|Any CPU
106
		{691078D3-BE0E-4697-BAB6-ED3ACA842D19}.Release|Any CPU.Build.0 = Release|Any CPU
107
		{691078D3-BE0E-4697-BAB6-ED3ACA842D19}.Release|x64.ActiveCfg = Release|Any CPU
108
		{691078D3-BE0E-4697-BAB6-ED3ACA842D19}.Release|x64.Build.0 = Release|Any CPU
109
		{691078D3-BE0E-4697-BAB6-ED3ACA842D19}.Release|x86.ActiveCfg = Release|Any CPU
110
		{691078D3-BE0E-4697-BAB6-ED3ACA842D19}.Release|x86.Build.0 = Release|Any CPU
111
		{58C58DDF-311D-4108-A12B-1090C39E718B}.AppVeyor|Any CPU.ActiveCfg = Debug|Any CPU
112
		{58C58DDF-311D-4108-A12B-1090C39E718B}.AppVeyor|Any CPU.Build.0 = Debug|Any CPU
113
		{58C58DDF-311D-4108-A12B-1090C39E718B}.AppVeyor|Any CPU.Deploy.0 = Debug|Any CPU
114
		{58C58DDF-311D-4108-A12B-1090C39E718B}.AppVeyor|x64.ActiveCfg = Debug|Any CPU
115
		{58C58DDF-311D-4108-A12B-1090C39E718B}.AppVeyor|x64.Build.0 = Debug|Any CPU
116
		{58C58DDF-311D-4108-A12B-1090C39E718B}.AppVeyor|x64.Deploy.0 = Debug|Any CPU
117
		{58C58DDF-311D-4108-A12B-1090C39E718B}.AppVeyor|x86.ActiveCfg = Debug|Any CPU
118
		{58C58DDF-311D-4108-A12B-1090C39E718B}.AppVeyor|x86.Build.0 = Debug|Any CPU
119
		{58C58DDF-311D-4108-A12B-1090C39E718B}.AppVeyor|x86.Deploy.0 = Debug|Any CPU
120
		{58C58DDF-311D-4108-A12B-1090C39E718B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
121
		{58C58DDF-311D-4108-A12B-1090C39E718B}.Debug|Any CPU.Build.0 = Debug|Any CPU
122
		{58C58DDF-311D-4108-A12B-1090C39E718B}.Debug|Any CPU.Deploy.0 = Debug|Any CPU
123
		{58C58DDF-311D-4108-A12B-1090C39E718B}.Debug|x64.ActiveCfg = Debug|Any CPU
124
		{58C58DDF-311D-4108-A12B-1090C39E718B}.Debug|x64.Build.0 = Debug|Any CPU
125
		{58C58DDF-311D-4108-A12B-1090C39E718B}.Debug|x64.Deploy.0 = Debug|Any CPU
126
		{58C58DDF-311D-4108-A12B-1090C39E718B}.Debug|x86.ActiveCfg = Debug|Any CPU
127
		{58C58DDF-311D-4108-A12B-1090C39E718B}.Debug|x86.Build.0 = Debug|Any CPU
128
		{58C58DDF-311D-4108-A12B-1090C39E718B}.Debug|x86.Deploy.0 = Debug|Any CPU
129
		{58C58DDF-311D-4108-A12B-1090C39E718B}.Release|Any CPU.ActiveCfg = Release|Any CPU
130
		{58C58DDF-311D-4108-A12B-1090C39E718B}.Release|Any CPU.Build.0 = Release|Any CPU
131
		{58C58DDF-311D-4108-A12B-1090C39E718B}.Release|Any CPU.Deploy.0 = Release|Any CPU
132
		{58C58DDF-311D-4108-A12B-1090C39E718B}.Release|x64.ActiveCfg = Release|Any CPU
133
		{58C58DDF-311D-4108-A12B-1090C39E718B}.Release|x64.Build.0 = Release|Any CPU
134
		{58C58DDF-311D-4108-A12B-1090C39E718B}.Release|x64.Deploy.0 = Release|Any CPU
135
		{58C58DDF-311D-4108-A12B-1090C39E718B}.Release|x86.ActiveCfg = Release|Any CPU
136
		{58C58DDF-311D-4108-A12B-1090C39E718B}.Release|x86.Build.0 = Release|Any CPU
137
		{58C58DDF-311D-4108-A12B-1090C39E718B}.Release|x86.Deploy.0 = Release|Any CPU
138
		{B06C0A20-BC30-4A3E-8D74-E0E2FF55510F}.AppVeyor|Any CPU.ActiveCfg = Release|Any CPU
139
		{B06C0A20-BC30-4A3E-8D74-E0E2FF55510F}.AppVeyor|Any CPU.Build.0 = Release|Any CPU
140
		{B06C0A20-BC30-4A3E-8D74-E0E2FF55510F}.AppVeyor|x64.ActiveCfg = Release|Any CPU
141
		{B06C0A20-BC30-4A3E-8D74-E0E2FF55510F}.AppVeyor|x64.Build.0 = Release|Any CPU
142
		{B06C0A20-BC30-4A3E-8D74-E0E2FF55510F}.AppVeyor|x86.ActiveCfg = Release|Any CPU
143
		{B06C0A20-BC30-4A3E-8D74-E0E2FF55510F}.AppVeyor|x86.Build.0 = Release|Any CPU
144
		{B06C0A20-BC30-4A3E-8D74-E0E2FF55510F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
145
		{B06C0A20-BC30-4A3E-8D74-E0E2FF55510F}.Debug|Any CPU.Build.0 = Debug|Any CPU
146
		{B06C0A20-BC30-4A3E-8D74-E0E2FF55510F}.Debug|x64.ActiveCfg = Debug|Any CPU
147
		{B06C0A20-BC30-4A3E-8D74-E0E2FF55510F}.Debug|x64.Build.0 = Debug|Any CPU
148
		{B06C0A20-BC30-4A3E-8D74-E0E2FF55510F}.Debug|x86.ActiveCfg = Debug|Any CPU
149
		{B06C0A20-BC30-4A3E-8D74-E0E2FF55510F}.Debug|x86.Build.0 = Debug|Any CPU
150
		{B06C0A20-BC30-4A3E-8D74-E0E2FF55510F}.Release|Any CPU.ActiveCfg = Release|Any CPU
151
		{B06C0A20-BC30-4A3E-8D74-E0E2FF55510F}.Release|Any CPU.Build.0 = Release|Any CPU
152
		{B06C0A20-BC30-4A3E-8D74-E0E2FF55510F}.Release|x64.ActiveCfg = Release|Any CPU
153
		{B06C0A20-BC30-4A3E-8D74-E0E2FF55510F}.Release|x64.Build.0 = Release|Any CPU
154
		{B06C0A20-BC30-4A3E-8D74-E0E2FF55510F}.Release|x86.ActiveCfg = Release|Any CPU
155
		{B06C0A20-BC30-4A3E-8D74-E0E2FF55510F}.Release|x86.Build.0 = Release|Any CPU
156
		{9D5B0CA0-329D-40AF-BA0D-B727080C19EB}.AppVeyor|Any CPU.ActiveCfg = Release|Any CPU
157
		{9D5B0CA0-329D-40AF-BA0D-B727080C19EB}.AppVeyor|Any CPU.Build.0 = Release|Any CPU
158
		{9D5B0CA0-329D-40AF-BA0D-B727080C19EB}.AppVeyor|x64.ActiveCfg = Release|Any CPU
159
		{9D5B0CA0-329D-40AF-BA0D-B727080C19EB}.AppVeyor|x64.Build.0 = Release|Any CPU
160
		{9D5B0CA0-329D-40AF-BA0D-B727080C19EB}.AppVeyor|x86.ActiveCfg = Release|Any CPU
161
		{9D5B0CA0-329D-40AF-BA0D-B727080C19EB}.AppVeyor|x86.Build.0 = Release|Any CPU
162
		{9D5B0CA0-329D-40AF-BA0D-B727080C19EB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
163
		{9D5B0CA0-329D-40AF-BA0D-B727080C19EB}.Debug|Any CPU.Build.0 = Debug|Any CPU
164
		{9D5B0CA0-329D-40AF-BA0D-B727080C19EB}.Debug|x64.ActiveCfg = Debug|Any CPU
165
		{9D5B0CA0-329D-40AF-BA0D-B727080C19EB}.Debug|x64.Build.0 = Debug|Any CPU
166
		{9D5B0CA0-329D-40AF-BA0D-B727080C19EB}.Debug|x86.ActiveCfg = Debug|Any CPU
167
		{9D5B0CA0-329D-40AF-BA0D-B727080C19EB}.Debug|x86.Build.0 = Debug|Any CPU
168
		{9D5B0CA0-329D-40AF-BA0D-B727080C19EB}.Release|Any CPU.ActiveCfg = Release|Any CPU
169
		{9D5B0CA0-329D-40AF-BA0D-B727080C19EB}.Release|Any CPU.Build.0 = Release|Any CPU
170
		{9D5B0CA0-329D-40AF-BA0D-B727080C19EB}.Release|x64.ActiveCfg = Release|Any CPU
171
		{9D5B0CA0-329D-40AF-BA0D-B727080C19EB}.Release|x64.Build.0 = Release|Any CPU
172
		{9D5B0CA0-329D-40AF-BA0D-B727080C19EB}.Release|x86.ActiveCfg = Release|Any CPU
173
		{9D5B0CA0-329D-40AF-BA0D-B727080C19EB}.Release|x86.Build.0 = Release|Any CPU
174
	EndGlobalSection
175
	GlobalSection(SolutionProperties) = preSolution
176
		HideSolutionNode = FALSE
177
	EndGlobalSection
178
	GlobalSection(ExtensibilityGlobals) = postSolution
179
		SolutionGuid = {CA1BB1E8-1969-4435-A889-37F359B6EAAE}
180
	EndGlobalSection
181
	GlobalSection(Performance) = preSolution
182
		HasPerformanceSessions = true
183
	EndGlobalSection
184
	GlobalSection(Performance) = preSolution
185
		HasPerformanceSessions = true
186
	EndGlobalSection
187
EndGlobal
ConvertService/ServiceController/Markus.ConvertProcessTest/App.config
1
<?xml version="1.0" encoding="utf-8" ?>
2
<configuration>
3
    <startup> 
4
        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.2" />
5
    </startup>
6
</configuration>
ConvertService/ServiceController/Markus.ConvertProcessTest/Markus.ConvertProcessTest.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>{9D5B0CA0-329D-40AF-BA0D-B727080C19EB}</ProjectGuid>
8
    <OutputType>Exe</OutputType>
9
    <RootNamespace>Markus.Service.ConvertProcess</RootNamespace>
10
    <AssemblyName>Markus.Service.ConvertProcess</AssemblyName>
11
    <TargetFrameworkVersion>v4.6.2</TargetFrameworkVersion>
12
    <FileAlignment>512</FileAlignment>
13
    <AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
14
    <Deterministic>true</Deterministic>
15
  </PropertyGroup>
16
  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
17
    <PlatformTarget>AnyCPU</PlatformTarget>
18
    <DebugSymbols>true</DebugSymbols>
19
    <DebugType>full</DebugType>
20
    <Optimize>false</Optimize>
21
    <OutputPath>bin\Debug\</OutputPath>
22
    <DefineConstants>DEBUG;TRACE</DefineConstants>
23
    <ErrorReport>prompt</ErrorReport>
24
    <WarningLevel>4</WarningLevel>
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="System" />
37
    <Reference Include="System.Core" />
38
    <Reference Include="System.Xml.Linq" />
39
    <Reference Include="System.Data.DataSetExtensions" />
40
    <Reference Include="Microsoft.CSharp" />
41
    <Reference Include="System.Data" />
42
    <Reference Include="System.Net.Http" />
43
    <Reference Include="System.Xml" />
44
  </ItemGroup>
45
  <ItemGroup>
46
    <Compile Include="Program.cs" />
47
    <Compile Include="Properties\AssemblyInfo.cs" />
48
  </ItemGroup>
49
  <ItemGroup>
50
    <None Include="App.config">
51
      <SubType>Designer</SubType>
52
    </None>
53
  </ItemGroup>
54
  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
55
</Project>
ConvertService/ServiceController/Markus.ConvertProcessTest/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 Markus.ConvertProcessTest
8
{
9
    class Program
10
    {
11
        static void Main(string[] args)
12
        {
13
            while (true)
14
            {
15
                System.Threading.Thread.Sleep(10000);
16
            }
17
        }
18
    }
19
}
ConvertService/ServiceController/Markus.ConvertProcessTest/Properties/AssemblyInfo.cs
1
using System.Reflection;
2
using System.Runtime.CompilerServices;
3
using System.Runtime.InteropServices;
4

  
5
// 어셈블리에 대한 일반 정보는 다음 특성 집합을 통해 
6
// 제어됩니다. 어셈블리와 관련된 정보를 수정하려면
7
// 이러한 특성 값을 변경하세요.
8
[assembly: AssemblyTitle("Markus.ConvertProcessTest")]
9
[assembly: AssemblyDescription("")]
10
[assembly: AssemblyConfiguration("")]
11
[assembly: AssemblyCompany("")]
12
[assembly: AssemblyProduct("Markus.ConvertProcessTest")]
13
[assembly: AssemblyCopyright("Copyright ©  2020")]
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("9d5b0ca0-329d-40af-ba0d-b727080c19eb")]
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/ServiceController/Markus.Mvvm.ToolKit/AsyncCommand/AsyncCommand.cs
1
using System;
2
using System.Threading.Tasks;
3
using System.Windows.Input;
4

  
5
namespace Markus.Mvvm.ToolKit
6
{
7
    public class AsyncCommand : IAsyncCommand
8
    {
9
        public event EventHandler CanExecuteChanged;
10

  
11
        private bool _isExecuting;
12
        private readonly Func<Task> _execute;
13
        private readonly Func<bool> _canExecute;
14
        private readonly IErrorHandler _errorHandler;
15

  
16
        public AsyncCommand(
17
            Func<Task> execute,
18
            Func<bool> canExecute = null,
19
            IErrorHandler errorHandler = null)
20
        {
21
            _execute = execute;
22
            _canExecute = canExecute;
23
            _errorHandler = errorHandler;
24
        }
25

  
26
        public bool CanExecute()
27
        {
28
            return !_isExecuting && (_canExecute?.Invoke() ?? true);
29
        }
30

  
31
        public async Task ExecuteAsync()
32
        {
33
            if (CanExecute())
34
            {
35
                try
36
                {
37
                    _isExecuting = true;
38
                    await _execute();
39
                }
40
                finally
41
                {
42
                    _isExecuting = false;
43
                }
44
            }
45

  
46
            RaiseCanExecuteChanged();
47
        }
48

  
49
        public void RaiseCanExecuteChanged()
50
        {
51
            CanExecuteChanged?.Invoke(this, EventArgs.Empty);
52
        }
53

  
54
        #region Explicit implementations
55
        bool ICommand.CanExecute(object parameter)
56
        {
57
            return CanExecute();
58
        }
59

  
60
        void ICommand.Execute(object parameter)
61
        {
62
            ExecuteAsync().FireAndForgetSafeAsync(_errorHandler);
63
        }
64
#endregion
65
    }
66

  
67
	public class AsyncCommand<T> : IAsyncCommand<T>
68
    {
69
        public event EventHandler CanExecuteChanged;
70

  
71
        private bool _isExecuting;
72
        private readonly Func<T, Task> _execute;
73
        private readonly Func<T, bool> _canExecute;
74
        private readonly IErrorHandler _errorHandler;
75

  
76
        public AsyncCommand(Func<T, Task> execute, Func<T, bool> canExecute = null, IErrorHandler errorHandler = null)
77
        {
78
            _execute = execute;
79
            _canExecute = canExecute;
80
            _errorHandler = errorHandler;
81
        }
82

  
83
        public bool CanExecute(T parameter)
84
        {
85
            return !_isExecuting && (_canExecute?.Invoke(parameter) ?? true);
86
        }
87

  
88
        public async Task ExecuteAsync(T parameter)
89
        {
90
            if (CanExecute(parameter))
91
            {
92
                try
93
                {
94
                    _isExecuting = true;
95
                    await _execute(parameter);
96
                }
97
                finally
98
                {
99
                    _isExecuting = false;
100
                }
101
            }
102

  
103
            RaiseCanExecuteChanged();
104
        }
105

  
106
        public void RaiseCanExecuteChanged()
107
        {
108
            CanExecuteChanged?.Invoke(this, EventArgs.Empty);
109
        }
110

  
111
#region Explicit implementations
112
        bool ICommand.CanExecute(object parameter)
113
        {
114
            return CanExecute((T)parameter);
115
        }
116

  
117
        void ICommand.Execute(object parameter)
118
        {
119
            ExecuteAsync((T)parameter).FireAndForgetSafeAsync(_errorHandler);
120
        }
121
#endregion
122
    }
123

  
124
}
ConvertService/ServiceController/Markus.Mvvm.ToolKit/AsyncCommand/IAsyncCommand.cs
1
using System.Threading.Tasks;
2
using System.Windows.Input;
3

  
4
namespace Markus.Mvvm.ToolKit
5
{
6
    public interface IAsyncCommand : ICommand
7
    {
8
        Task ExecuteAsync();
9
        bool CanExecute();
10
    }
11

  
12
	public interface IAsyncCommand<T> : ICommand
13
    {
14
        Task ExecuteAsync(T parameter);
15
        bool CanExecute(T parameter);
16
    }
17

  
18
}
ConvertService/ServiceController/Markus.Mvvm.ToolKit/AsyncCommand/IErrorHandler.cs
1
using System;
2

  
3
namespace Markus.Mvvm.ToolKit
4
{
5
    public interface IErrorHandler
6
    {
7
        void HandleError(Exception ex);
8
    }
9
}
ConvertService/ServiceController/Markus.Mvvm.ToolKit/Markus.Mvvm.ToolKit.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 Condition="$([System.Text.RegularExpressions.Regex]::IsMatch('$(TargetFramework)', '^net\d'))">
5
    <DefineConstants>NETFRAMEWORK</DefineConstants>
6
  </PropertyGroup>
7
  <PropertyGroup Condition="$([System.Text.RegularExpressions.Regex]::IsMatch('$(TargetFramework)', '^netstandard\d'))">
8
    <DefineConstants>NETSTANDARD</DefineConstants>
9
  </PropertyGroup>
10
  <PropertyGroup Condition="$([System.Text.RegularExpressions.Regex]::IsMatch('$(TargetFramework)', '^netcoreapp\d'))">
11
    <DefineConstants>NETCORE</DefineConstants>
12
  </PropertyGroup>
13
  <PropertyGroup>
14
    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
15
    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
16
    <ProjectGuid>{9EFE95D6-9985-422A-A76F-285C8CF73617}</ProjectGuid>
17
    <OutputType>Library</OutputType>
18
    <AppDesignerFolder>Properties</AppDesignerFolder>
19
    <RootNamespace>Markus.Mvvm.ToolKit</RootNamespace>
20
    <AssemblyName>Markus.Mvvm.ToolKit</AssemblyName>
21
    <TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
22
    <FileAlignment>512</FileAlignment>
23
    <Deterministic>true</Deterministic>
24
  </PropertyGroup>
25
  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
26
    <DebugSymbols>true</DebugSymbols>
27
    <DebugType>full</DebugType>
28
    <Optimize>false</Optimize>
29
    <OutputPath>bin\Debug\</OutputPath>
30
    <DefineConstants>TRACE;DEBUG</DefineConstants>
31
    <ErrorReport>prompt</ErrorReport>
32
    <WarningLevel>4</WarningLevel>
33
    <PlatformTarget>x64</PlatformTarget>
34
  </PropertyGroup>
35
  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
36
    <DebugType>pdbonly</DebugType>
37
    <Optimize>true</Optimize>
38
    <OutputPath>bin\Release\</OutputPath>
39
    <DefineConstants>TRACE</DefineConstants>
40
    <ErrorReport>prompt</ErrorReport>
41
    <WarningLevel>4</WarningLevel>
42
  </PropertyGroup>
43
  <ItemGroup>
44
    <Reference Include="PresentationCore" />
45
    <Reference Include="PresentationFramework" />
46
    <Reference Include="System" />
47
    <Reference Include="System.Core" />
48
    <Reference Include="System.Xaml" />
49
    <Reference Include="System.Xml.Linq" />
50
    <Reference Include="System.Data.DataSetExtensions" />
51
    <Reference Include="Microsoft.CSharp" />
52
    <Reference Include="System.Data" />
53
    <Reference Include="System.Net.Http" />
54
    <Reference Include="System.Xml" />
55
    <Reference Include="WindowsBase" />
56
  </ItemGroup>
57
  <ItemGroup>
58
    <Compile Include="AsyncCommand\AsyncCommand.cs" />
59
    <Compile Include="RelayCommand\EventRaiser.cs" />
60
    <Compile Include="RelayCommand\RelayCommand.cs" />
61
    <Compile Include="AsyncCommand\IAsyncCommand.cs" />
62
    <Compile Include="AsyncCommand\IErrorHandler.cs" />
63
    <Compile Include="Notification.cs" />
64
    <Compile Include="Properties\AssemblyInfo.cs" />
65
    <Compile Include="TaskUtilities.cs" />
66
    <Compile Include="ViewModelBase.cs" />
67
  </ItemGroup>
68
  <ItemGroup>
69
    <Page Include="Themes\Generic.xaml">
70
      <Generator>MSBuild:Compile</Generator>
71
      <SubType>Designer</SubType>
72
    </Page>
73
  </ItemGroup>
74
  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
75
</Project>
ConvertService/ServiceController/Markus.Mvvm.ToolKit/Notification.cs
1
using System;
2
using System.ComponentModel;
3
using System.Linq.Expressions;
4

  
5
namespace Markus.Mvvm.ToolKit
6
{
7
    public class NotifyExpectation : INotifyPropertyChanged
8
    {
9
        public event PropertyChangedEventHandler PropertyChanged;
10
        protected virtual void OnPropertyChanged(Expression<Func<object>> propertyExpression)
11
        {
12
            PropertyChangedEventHandler handler = PropertyChanged;
13
            if (handler != null) handler(this, new PropertyChangedEventArgs(GetPropertyName(propertyExpression)));
14
        }
15

  
16
        private string GetPropertyName(Expression<Func<object>> propertyExpression)
17
        {
18
            var unaryExpression = propertyExpression.Body as UnaryExpression;
19
            var memberExpression = unaryExpression == null ? (MemberExpression)propertyExpression.Body : (MemberExpression)unaryExpression.Operand;
20
            var propertyName = memberExpression.Member.Name;
21
            return propertyName;
22
        }
23
    }
24
}
ConvertService/ServiceController/Markus.Mvvm.ToolKit/Properties/AssemblyInfo.cs
1
using System.Reflection;
2
using System.Runtime.CompilerServices;
3
using System.Runtime.InteropServices;
4
using System.Windows;
5

  
6
// 어셈블리에 대한 일반 정보는 다음 특성 집합을 통해 
7
// 제어됩니다. 어셈블리와 관련된 정보를 수정하려면
8
// 이러한 특성 값을 변경하세요.
9
[assembly: AssemblyTitle("Markus.Mvvm.ToolKit")]
10
[assembly: AssemblyDescription("")]
11
[assembly: AssemblyConfiguration("")]
12
[assembly: AssemblyCompany("")]
13
[assembly: AssemblyProduct("Markus.Mvvm.ToolKit")]
14
[assembly: AssemblyCopyright("Copyright ©  2019")]
15
[assembly: AssemblyTrademark("")]
16
[assembly: AssemblyCulture("")]
17

  
18
// ComVisible을 false로 설정하면 이 어셈블리의 형식이 COM 구성 요소에 
19
// 표시되지 않습니다. COM에서 이 어셈블리의 형식에 액세스하려면
20
// 해당 형식에 대해 ComVisible 특성을 true로 설정하세요.
21
[assembly: ComVisible(false)]
22

  
23
[assembly: ThemeInfo(
24
    ResourceDictionaryLocation.None, //where theme specific resource dictionaries are located
25
                                     //(used if a resource is not found in the page, 
26
                                     // or application resource dictionaries)
27
    ResourceDictionaryLocation.SourceAssembly //where the generic resource dictionary is located
28
                                              //(used if a resource is not found in the page, 
29
                                              // app, or any theme specific resource dictionaries)
30
)]
31

  
32
// 이 프로젝트가 COM에 노출되는 경우 다음 GUID는 typelib의 ID를 나타냅니다.
33
[assembly: Guid("9efe95d6-9985-422a-a76f-285c8cf73617")]
34

  
35
// 어셈블리의 버전 정보는 다음 네 가지 값으로 구성됩니다.
36
//
37
//      주 버전
38
//      부 버전 
39
//      빌드 번호
40
//      수정 버전
41
//
42
// 모든 값을 지정하거나 아래와 같이 '*'를 사용하여 빌드 번호 및 수정 번호를
43
// 기본값으로 할 수 있습니다.
44
// [assembly: AssemblyVersion("1.0.*")]
45
[assembly: AssemblyVersion("1.0.0.0")]
46
[assembly: AssemblyFileVersion("1.0.0.0")]
ConvertService/ServiceController/Markus.Mvvm.ToolKit/RelayCommand/EventRaiser.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.Mvvm.ToolKit
8
{
9
    public static class EventRaiser
10
    {
11
        public static void Raise(this EventHandler handler, object sender)
12
        {
13
            handler?.Invoke(sender, EventArgs.Empty);
14
        }
15

  
16
        public static void Raise<T>(this EventHandler<EventArgs<T>> handler, object sender, T value)
17
        {
18
            handler?.Invoke(sender, new EventArgs<T>(value));
19
        }
20

  
21
        public static void Raise<T>(this EventHandler<T> handler, object sender, T value) where T : EventArgs
22
        {
23
            handler?.Invoke(sender, value);
24
        }
25

  
26
        public static void Raise<T>(this EventHandler<EventArgs<T>> handler, object sender, EventArgs<T> value)
27
        {
28
            handler?.Invoke(sender, value);
29
        }
30
    }
31

  
32
    public class EventArgs<T> : EventArgs
33
    {
34
        public EventArgs(T value)
35
        {
36
            Value = value;
37
        }
38

  
39
        public T Value { get; private set; }
40
    }
41
}
ConvertService/ServiceController/Markus.Mvvm.ToolKit/RelayCommand/RelayCommand.cs
1
using System;
2
using System.Collections.Generic;
3
using System.Diagnostics.CodeAnalysis;
4
using System.Linq;
5
using System.Text;
6
using System.Threading.Tasks;
7
using System.Windows.Input;
8

  
9
namespace Markus.Mvvm.ToolKit
10
{
11
    public class RelayCommand<T> : ICommand
12
    {
13
        private readonly Predicate<T> _canExecute;
14
        private readonly Action<T> _execute;
15

  
16
        public RelayCommand(Action<T> execute)
17
           : this(execute, null)
18
        {
19
            _execute = execute;
20
        }
21

  
22
        public RelayCommand(Action<T> execute, Predicate<T> canExecute)
23
        {
24
            if (execute == null)
25
            {
26
                throw new ArgumentNullException("execute");
27
            }
28
            _execute = execute;
29
            _canExecute = canExecute;
30
        }
31

  
32
        public bool CanExecute(object parameter)
33
        {
34
            return _canExecute == null || _canExecute((T)parameter);
35
        }
36

  
37
        public void Execute(object parameter)
38
        {
39
            _execute((T)parameter);
40
        }
41

  
42
        public event EventHandler CanExecuteChanged
43
        {
44
            add { CommandManager.RequerySuggested += value; }
45
            remove { CommandManager.RequerySuggested -= value; }
46
        }
47
    }
48

  
49
    public class RelayCommand : ICommand
50
    {
51
        private readonly Predicate<object> _canExecute;
52
        private readonly Action<object> _execute;
53

  
54
        public RelayCommand(Action<object> execute)
55
           : this(execute, null)
56
        {
57
            _execute = execute;
58
        }
59

  
60
        public RelayCommand(Action<object> execute, Predicate<object> canExecute)
61
        {
62
            if (execute == null)
63
            {
64
                throw new ArgumentNullException("execute");
65
            }
66
            _execute = execute;
67
            _canExecute = canExecute;
68
        }
69

  
70
        public bool CanExecute(object parameter)
71
        {
72
            return _canExecute == null || _canExecute(parameter);
73
        }
74

  
75
        public void Execute(object parameter)
76
        {
77
            _execute(parameter);
78
        }
79

  
80
        // Ensures WPF commanding infrastructure asks all RelayCommand objects whether their
81
        // associated views should be enabled whenever a command is invoked 
82
        public event EventHandler CanExecuteChanged
83
        {
84
            add
85
            {
86
                CommandManager.RequerySuggested += value;
87
                CanExecuteChangedInternal += value;
88
            }
89
            remove
90
            {
91
                CommandManager.RequerySuggested -= value;
92
                CanExecuteChangedInternal -= value;
93
            }
94
        }
95

  
96
        private event EventHandler CanExecuteChangedInternal;
97

  
98
        public void RaiseCanExecuteChanged()
99
        {
100
            CanExecuteChangedInternal.Raise(this);
101
        }
102
    }
103
}
ConvertService/ServiceController/Markus.Mvvm.ToolKit/TaskUtilities.cs
1
using System;
2
using System.Threading.Tasks;
3

  
4
namespace Markus.Mvvm.ToolKit
5
{
6
    public static class TaskUtilities
7
    {
8
#pragma warning disable RECS0165 // Asynchronous methods should return a Task instead of void
9
        public static async void FireAndForgetSafeAsync(this Task task, IErrorHandler handler = null)
10
#pragma warning restore RECS0165 // Asynchronous methods should return a Task instead of void
11
        {
12
            try
13
            {
14
                await task;
15
            }
16
            catch (Exception ex)
17
            {
18
                handler?.HandleError(ex);
19
            }
20
        }
21
    }
22
}
ConvertService/ServiceController/Markus.Mvvm.ToolKit/Themes/Generic.xaml
1
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
2
                       xmlns:local="clr-namespace:Markus.Mvvm.ToolKit"
3
                    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
4
    <!--<Style TargetType="local:PackIcon">
5
        <Setter Property="Width" Value="20" />
6
        <Setter Property="Height" Value="20" />
7
        <Setter Property="Kind"  Value="Abc"/>
8
        <Setter Property="IconBrush" Value="White"/>
9
        <Setter Property="Template">
10
            <Setter.Value>
11
                <ControlTemplate>
12
                    <Grid Width="{TemplateBinding Width}" Height="{TemplateBinding Height}">
13
                        <Path x:Name="PART_PATH" Fill="{TemplateBinding IconBrush}" Stroke="{TemplateBinding IconBrush}"/>
14
                    </Grid>
15
                </ControlTemplate>
16
            </Setter.Value>
17
        </Setter>
18
    </Style>-->
19
</ResourceDictionary>
ConvertService/ServiceController/Markus.Mvvm.ToolKit/ViewModelBase.cs
1
using System.ComponentModel;
2
using System.Windows;
3
using System.Windows.Input;
4

  
5
namespace Markus.Mvvm.ToolKit
6
{
7
    public abstract class ViewModelBase : NotifyExpectation
8
    {
9
        #region ViewModel Base Binding
10
        
11
        ViewModelBase viewModel;
12

  
13
        public ViewModelBase ViewModel
14
        {
15
            get { return viewModel; }
16
            set { viewModel = value; }
17
        }
18

  
19
        public string Name
20
        {
21
            get { return ViewModel?.Name; }
22
            set
23
            {
24
                if (ViewModel?.Name != value)
25
                {
26
                    ViewModel.Name = value;
27
                    OnPropertyChanged(()=>Name);
28
                }
29
            }
30
        }
31

  
32
        private bool isAcitve;
33

  
34
        public bool IsAcitve
35
        {
36
            get { return isAcitve; }
37
            set
38
            {
39
                if (isAcitve != value)
40
                {
41
                    isAcitve = value;
42
                    OnPropertyChanged(() => isAcitve);
43
                }
44
            }
45
        }
46

  
47
        #endregion
48

  
49
        #region Command
50

  
51
        private ICommand _ClosingCommand;
52
        public ICommand ClosingCommand
53
        {
54
            get => _ClosingCommand ?? (_ClosingCommand = new RelayCommand(param => this.Closed()));
55
        }
56

  
57
        private ICommand _LoadedCommand;
58
        public ICommand LoadedCommand
59
        {
60
            get => _LoadedCommand ?? (_LoadedCommand = new RelayCommand(param => this.Loaded()));
61
        }
62

  
63
        #endregion Command
64

  
65
        public virtual void Closed()
66
        {
67
            isAcitve = false;
68
        }
69

  
70
        public virtual void Loaded()
71
        {
72
            isAcitve = true;
73
        }
74
    }
75
}
ConvertService/ServiceController/Markus.Service.Extensions/Exntensions/CollectionExtenstions.cs
1
using System;
2
using System.Collections.Generic;
3
using System.Linq;
4
using System.Linq.Expressions;
5
using System.Text;
6
using System.Threading.Tasks;
7

  
8
namespace Markus.Service.Extensions
9
{
10
    public static class CollectionExtensions
11
    {
12
        //public static void Update<T>(this IList<T> source,IList<T> Target,IList<string> Keys)
13
        //{
14
        //    for (int i = source.Count; i == 0 ; --i)
15
        //    {
16
        //        var item = source[i];
17
        //         Target.Where(f=>)
18
        //        item.GetType().GetProperty()
19
        //    }
20
        //}
21

  
22
        /// <summary>
23
        /// Changes all elements of IEnumerable by the change function
24
        /// </summary>
25
        /// <param name="enumerable">The enumerable where you want to change stuff</param>
26
        /// <param name="change">The way you want to change the stuff</param>
27
        /// <returns>An IEnumerable with all changes applied</returns>
28
        public static IEnumerable<T> Change<T>(this IEnumerable<T> enumerable, Func<T, T> change)
29
        {
30
            ArgumentCheck.IsNullorWhiteSpace(enumerable, "enumerable");
31
            ArgumentCheck.IsNullorWhiteSpace(change, "change");
32

  
33
            foreach (var item in enumerable)
34
            {
35
                yield return change(item);
36
            }
37
        }
38

  
39
        /// <summary>
40
        /// Changes all elements of IEnumerable by the change function, that fullfill the where function
41
        /// </summary>
42
        /// <param name="enumerable">The enumerable where you want to change stuff</param>
43
        /// <param name="change">The way you want to change the stuff</param>
44
        /// <param name="where">The function to check where changes should be made</param>
45
        /// <returns>
46
        /// An IEnumerable with all changes applied
47
        /// </returns>
48
        public static IEnumerable<T> ChangeWhere<T>(this IEnumerable<T> enumerable,
49
                                                    Func<T, T> change,
50
                                                    Func<T, bool> @where)
51
        {
52
            ArgumentCheck.IsNullorWhiteSpace(enumerable, "enumerable");
53
            ArgumentCheck.IsNullorWhiteSpace(change, "change");
54
            ArgumentCheck.IsNullorWhiteSpace(@where, "where");
55

  
56
            foreach (var item in enumerable)
57
            {
58
                if (@where(item))
59
                {
60
                    yield return change(item);
61
                }
62
                else
63
                {
64
                    yield return item;
65
                }
66
            }
67
        }
68

  
69
        public static class ArgumentCheck
70
        {
71

  
72

  
73
            /// <summary>
74
            /// Checks if a value is string or any other object if it is string
75
            /// it checks for nullorwhitespace otherwhise it checks for null only
76
            /// </summary>
77
            /// <typeparam name="T">Type of the item you want to check</typeparam>
78
            /// <param name="item">The item you want to check</param>
79
            /// <param name="nameOfTheArgument">Name of the argument</param>
80
            public static void IsNullorWhiteSpace<T>(T item, string nameOfTheArgument = "")
81
            {
82

  
83
                Type type = typeof(T);
84
                if (type == typeof(string) ||
85
                    type == typeof(String))
86
                {
87
                    if (string.IsNullOrWhiteSpace(item as string))
88
                    {
89
                        throw new ArgumentException(nameOfTheArgument + " is null or Whitespace");
90
                    }
91
                }
92
                else
93
                {
94
                    if (item == null)
95
                    {
96
                        throw new ArgumentException(nameOfTheArgument + " is null");
97
                    }
98
                }
99

  
100
            }
101
        }
102

  
103
        /// <summary>
104
        /// Changes all elements of IEnumerable by the change function that do not fullfill the except function
105
        /// </summary>
106
        /// <param name="enumerable">The enumerable where you want to change stuff</param>
107
        /// <param name="change">The way you want to change the stuff</param>
108
        /// <param name="where">The function to check where changes should not be made</param>
109
        /// <returns>
110
        /// An IEnumerable with all changes applied
111
        /// </returns>
112
        public static IEnumerable<T> ChangeExcept<T>(this IEnumerable<T> enumerable,
113
                                                     Func<T, T> change,
114
                                                     Func<T, bool> @where)
115
        {
116
            ArgumentCheck.IsNullorWhiteSpace(enumerable, "enumerable");
117
            ArgumentCheck.IsNullorWhiteSpace(change, "change");
118
            ArgumentCheck.IsNullorWhiteSpace(@where, "where");
119

  
120
            foreach (var item in enumerable)
121
            {
122
                if (!@where(item))
123
                {
124
                    yield return change(item);
125
                }
126
                else
127
                {
128
                    yield return item;
129
                }
130
            }
131
        }
132

  
133
        /// <summary>
134
        /// Update all elements of IEnumerable by the update function (only works with reference types)
135
        /// </summary>
136
        /// <param name="enumerable">The enumerable where you want to change stuff</param>
137
        /// <param name="update">The way you want to change the stuff</param>
138
        /// <returns>
139
        /// The same enumerable you passed in
140
        /// </returns>
141
        public static IEnumerable<T> Update<T>(this IEnumerable<T> enumerable,
142
                                               Action<T> update) where T : class
143
        {
144
            ArgumentCheck.IsNullorWhiteSpace(enumerable, "enumerable");
145
            ArgumentCheck.IsNullorWhiteSpace(update, "update");
146
            foreach (var item in enumerable)
147
            {
148
                update(item);
149
            }
150
            return enumerable;
151
        }
152

  
153
        /// <summary>
154
        /// Update all elements of IEnumerable by the update function (only works with reference types)
155
        /// where the where function returns true
156
        /// </summary>
157
        /// <param name="enumerable">The enumerable where you want to change stuff</param>
158
        /// <param name="update">The way you want to change the stuff</param>
159
        /// <param name="where">The function to check where updates should be made</param>
160
        /// <returns>
161
        /// The same enumerable you passed in
162
        /// </returns>
163
        public static IEnumerable<T> UpdateWhere<T>(this IEnumerable<T> enumerable,
164
                                               Action<T> update, Func<T, bool> where) where T : class
165
        {
166
            ArgumentCheck.IsNullorWhiteSpace(enumerable, "enumerable");
167
            ArgumentCheck.IsNullorWhiteSpace(update, "update");
168
            foreach (var item in enumerable)
169
            {
170
                if (where(item))//UpdateWhere에서 맨마지막 조건
171
                {//그리드 collection 돌면서 where절 조건 만족하면 update
172
                    update(item);//그리드 status와 디비 status 같으면  업데이트
173
                }//업데이트 함수 
174
            }
175
            return enumerable;
176
        }
177

  
178
        /// <summary>
179
        /// Update all elements of IEnumerable by the update function (only works with reference types)
180
        /// Except the elements from the where function
181
        /// </summary>
182
        /// <param name="enumerable">The enumerable where you want to change stuff</param>
183
        /// <param name="update">The way you want to change the stuff</param>
184
        /// <param name="where">The function to check where changes should not be made</param>
185
        /// <returns>
186
        /// The same enumerable you passed in
187
        /// </returns>
188
        public static IEnumerable<T> UpdateExcept<T>(this IEnumerable<T> enumerable,
189
                                               Action<T> update, Func<T, bool> where) where T : class
190
        {
191
            ArgumentCheck.IsNullorWhiteSpace(enumerable, "enumerable");
192
            ArgumentCheck.IsNullorWhiteSpace(update, "update");
193

  
194
            foreach (var item in enumerable)
195
            {
196
                if (!where(item))
197
                {
198
                    update(item);
199
                }
200
            }
201
            return enumerable;
202
        }
203
    }
204
}
ConvertService/ServiceController/Markus.Service.Extensions/Exntensions/Encrypt.cs
1
using System;
2
using System.Collections.Generic;
3
using System.IO;
4
using System.Linq;
5
using System.Security.Cryptography;
6
using System.Text;
7
using System.Threading.Tasks;
8

  
9
namespace Markus.Service.Extensions
10
{
11
    public class Encrypt
12
    {
13
        public static class AESEncrypter
14
        {
15
            private static RijndaelManaged _rManaged = new RijndaelManaged();
16
            private static UTF8Encoding _utf8Encoder = new UTF8Encoding();
17

  
18
            static AESEncrypter()
19
            {
20
                MD5 _md5 = new MD5CryptoServiceProvider();
21

  
22
                _rManaged.KeySize = 256;
23
                _rManaged.BlockSize = 128;
24
                _rManaged.Mode = CipherMode.CBC;
25
                _rManaged.Padding = PaddingMode.PKCS7;
26
                _rManaged.Key = _md5.ComputeHash(_utf8Encoder.GetBytes("zxcvbnmasdfghjklqwertyuiop098765"));
27
                _rManaged.IV = _md5.ComputeHash(_utf8Encoder.GetBytes("qwertyuiopasdfghjklzxcvbnm123456"));
28
            }
29
            /// <summary>암호화</summary>
30
            /// <param name="val">암호화할 값</param>
31
            /// <returns>암호화된 값</returns>
32
            public static string Encrypt(string val)
33
            {
34
                string _resVal = string.Empty;
35
                byte[] _utf8Val = null;
36
                byte[] _encryptVal = null;
37
                ICryptoTransform tForm = _rManaged.CreateEncryptor();
38

  
39
                try
40
                {
41
                    if (!string.IsNullOrEmpty(val))
42
                    {
43
                        _utf8Val = _utf8Encoder.GetBytes(val);
44
                        _encryptVal = tForm.TransformFinalBlock(_utf8Val, 0, _utf8Val.Length);
45
                        _resVal = Convert.ToBase64String(_encryptVal);
46
                    }
47
                    else
48
                        _resVal = string.Empty;
49
                }
50
                catch
51
                {
52
                    _resVal = string.Empty;
53
                }
54

  
55
                return _resVal;
56
            }
57
            /// <summary>복호화</summary>
58
            /// <param name="val">복호화할 값</param>
59
            /// <returns>복호화된 값</returns>
60
            public static string Decrypt(string val)
61
            {
62
                string _resVal = string.Empty;
63
                byte[] _decryptVal = null;
64
                byte[] _encryptVal = null;
65
                ICryptoTransform tForm = _rManaged.CreateDecryptor();
66

  
67
                try
68
                {
69
                    if (!string.IsNullOrEmpty(val))
70
                    {
71
                        _encryptVal = Convert.FromBase64String(val);
72
                        _decryptVal = tForm.TransformFinalBlock(_encryptVal, 0, _encryptVal.Length);
73
                        _resVal = _utf8Encoder.GetString(_decryptVal);
74
                    }
75
                    else
76
                        _resVal = string.Empty;
77
                }
78
                catch
79
                {
80
                    _resVal = string.Empty;
81
                }
82

  
83
                return _resVal;
84
            }
85
        }
86
    }
87
}
ConvertService/ServiceController/Markus.Service.Extensions/Exntensions/GenericPluginLoader.cs
1
/*
2
   Copyright 2013 Christoph Gattnar
3

  
4
   Licensed under the Apache License, Version 2.0 (the "License");
5
   you may not use this file except in compliance with the License.
6
   You may obtain a copy of the License at
7

  
8
	   http://www.apache.org/licenses/LICENSE-2.0
9

  
10
   Unless required by applicable law or agreed to in writing, software
11
   distributed under the License is distributed on an "AS IS" BASIS,
12
   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
   See the License for the specific language governing permissions and
14
   limitations under the License.
15
*/
16

  
17
using System;
18
using System.Collections.Generic;
19
using System.IO;
20
using System.Reflection;
21

  
22
namespace Markus.Service.Extensions
23
{
24
	public static class GenericPluginLoader<T>
25
	{
26
		public static ICollection<T> LoadPlugins(string path)
27
		{
28
			string[] dllFileNames = null;
29

  
30
			if(Directory.Exists(path))
31
			{
32
				dllFileNames = Directory.GetFiles(path, "*.dll");
33

  
34
				ICollection<Assembly> assemblies = new List<Assembly>(dllFileNames.Length);
35
				foreach(string dllFile in dllFileNames)
36
				{
37
					AssemblyName an = AssemblyName.GetAssemblyName(dllFile);
38
					Assembly assembly = Assembly.Load(an);
39
					assemblies.Add(assembly);
40
				}
41

  
42
				Type pluginType = typeof(T);
43
				ICollection<Type> pluginTypes = new List<Type>();
44
				foreach(Assembly assembly in assemblies)
45
				{
46
					if(assembly != null)
47
					{
48
						Type[] types = assembly.GetTypes();
49

  
50
						foreach(Type type in types)
51
						{
52
							if(type.IsInterface || type.IsAbstract)
53
							{
54
								continue;
55
							}
56
							else
57
							{
58
								if(type.GetInterface(pluginType.FullName) != null)
59
								{
60
									pluginTypes.Add(type);
61
								}
62
							}
63
						}
64
					}
65
				}
66

  
67
				ICollection<T> plugins = new List<T>(pluginTypes.Count);
68
				foreach(Type type in pluginTypes)
69
				{
70
					T plugin = (T)Activator.CreateInstance(type);
71
					plugins.Add(plugin);
72
				}
73

  
74
				return plugins;
75
			}
76

  
77
			return null;
78
		}
79
	}
80
}
ConvertService/ServiceController/Markus.Service.Extensions/Exntensions/Process.cs
1
using System;
2
using System.Collections.Generic;
3
using System.Diagnostics;
4
using System.Linq;
5
using System.Management;
6
using System.Text;
7
using System.Threading.Tasks;
8

  
9
namespace Markus.Service.Extensions
10
{
11
    public static class ProcessExtension
12
    {
13
        /// <summary>
14
        /// 프로세스의 명령줄을 가져온다.
15
        /// </summary>
16
        /// <param name="process"></param>
17
        /// <returns></returns>
18
        public static ProcessArguments Arguments(this Process process)
19
        {
20
            ProcessArguments result = new ProcessArguments();
21

  
22
            var commandLine = ProcessCommandLinesQuery(process.Id);
23

  
24
            try
25
            {
26
                result.WorkingDirectory = ProcessWorkingDirectory(commandLine);
27

  
28
                result.CommandLine = SplitArguments(RemoveCommadLinesFilePath(commandLine)).ToList();
29
            }
30
            catch (Exception ex)
31
            {
32
                System.Diagnostics.Debug.WriteLine(ex.ToString());
33
            }
34
            return result;
35
        }
36

  
37
        /// <summary>
38
        /// 프로세스의 실행 경로
39
        /// </summary>
40
        /// <param name="process"></param>
41
        /// <returns></returns>
42
        public static string WorkingDirectory(this Process process)
43
        {
44
            var commandLine = ProcessCommandLinesQuery(process.Id);
45
            return ProcessWorkingDirectory(commandLine);
46
        }
47

  
48
        private static string ProcessCommandLinesQuery(int processId)
49
        {
50
            string result = "";
51

  
52
            string wmiQuery = string.Format("select CommandLine from Win32_Process where ProcessId ='{0}'", processId);
53

  
54
            ManagementObjectSearcher searcher = new ManagementObjectSearcher(wmiQuery);
55
            ManagementObjectCollection retObjectCollection = searcher.Get();
56

  
57
            if (retObjectCollection.Count > 0)
58
            {
59
                if (retObjectCollection.Cast<ManagementObject>().First()["CommandLine"] != null)
60
                {
61
                    result = retObjectCollection.Cast<ManagementObject>().First()["CommandLine"]?.ToString();
62
                }
63
                else
64
                {
65
                    result = "";
66
                }
67
            }
68

  
69
            return result;
70
        }
71

  
72
        private static string ProcessWorkingDirectory(string commandLine)
73
        {
74
           if (IO.FileExists(commandLine.Replace("\"", "")))
75
            {
76
                var file = new System.IO.FileInfo(commandLine.Replace("\"", ""));
77
                return file.DirectoryName;
78
            }
79

  
80
            var splitCommand = commandLine.Split(' ');
81
            string filePath = "";
82

  
83
            for (int i = 0; i < splitCommand.Count(); i++)
84
            {
85
                filePath += " " + splitCommand[i].Replace("\"", "");
86

  
87
                if (IO.FileExists(filePath))
88
                {
89
                    System.IO.FileInfo info = new System.IO.FileInfo(filePath);
90
                    filePath = info.DirectoryName;
91
                    break;
92
                }
93
                else if (i == splitCommand.Count() - 1)
94
                {
95
                    var firstCmd = splitCommand.First();
96

  
97
                    if (firstCmd.StartsWith("\"") && firstCmd.EndsWith("\""))
98
                    {
99
                        filePath = firstCmd.Replace("\"", "");
100
                    }
101
                }
102
                else
103
                {
104
                    filePath = commandLine;
105
                }
106
            }
107

  
108
            return filePath;
109
        }
110

  
111
        /// <summary>
112
        /// command line에서 처음에 있는 파일 경로가 \"로 묶여 있거나 묶여 있지 않은 경우가 있다.
113
        /// 파일 경로를 제거하기 위한 코드
114
        /// </summary>
115
        /// <param name="commandLine"></param>
116
        /// <returns></returns>
117
        private static string RemoveCommadLinesFilePath(string commandLine)
118
        {
119
            string result = "";
120

  
121
            var splitCommand = commandLine.Split(' ');
122
            string filePath = "";
123

  
124
            for (int i = 0; i < splitCommand.Count(); i++)
125
            {
126
                filePath += " " + splitCommand[i];
127

  
... 이 차이점은 표시할 수 있는 최대 줄수를 초과해서 이 차이점은 잘렸습니다.

내보내기 Unified diff

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