개정판 f363a40e
convertprocess에 plugin 기능 추가
Change-Id: I00595ab4e4a42960defcc6b2d662dbb75d3e8615
ConvertService/ServiceBase/Markus.Service.Convert.IPlugin/IPlugin.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.Convert.Plugin |
|
8 |
{ |
|
9 |
public interface IPlugin |
|
10 |
{ |
|
11 |
string Name { get; } |
|
12 |
|
|
13 |
string Exception { get; set; } |
|
14 |
|
|
15 |
bool Do(string ConvertID, Dictionary<string, object> Parameters); |
|
16 |
} |
|
17 |
} |
ConvertService/ServiceBase/Markus.Service.Convert.IPlugin/Markus.Service.Convert.IPlugin.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>{A5BA7325-379C-4CCB-B156-1704FC2175E3}</ProjectGuid> |
|
8 |
<OutputType>Library</OutputType> |
|
9 |
<AppDesignerFolder>Properties</AppDesignerFolder> |
|
10 |
<RootNamespace>Markus.Service.Convert.IPlugin</RootNamespace> |
|
11 |
<AssemblyName>Markus.Service.Convert.IPlugin</AssemblyName> |
|
12 |
<TargetFrameworkVersion>v4.5</TargetFrameworkVersion> |
|
13 |
<FileAlignment>512</FileAlignment> |
|
14 |
<Deterministic>true</Deterministic> |
|
15 |
</PropertyGroup> |
|
16 |
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> |
|
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 |
</PropertyGroup> |
|
25 |
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> |
|
26 |
<DebugType>pdbonly</DebugType> |
|
27 |
<Optimize>true</Optimize> |
|
28 |
<OutputPath>bin\Release\</OutputPath> |
|
29 |
<DefineConstants>TRACE</DefineConstants> |
|
30 |
<ErrorReport>prompt</ErrorReport> |
|
31 |
<WarningLevel>4</WarningLevel> |
|
32 |
</PropertyGroup> |
|
33 |
<ItemGroup> |
|
34 |
<Reference Include="System" /> |
|
35 |
<Reference Include="System.Core" /> |
|
36 |
<Reference Include="System.Xml.Linq" /> |
|
37 |
<Reference Include="System.Data.DataSetExtensions" /> |
|
38 |
<Reference Include="Microsoft.CSharp" /> |
|
39 |
<Reference Include="System.Data" /> |
|
40 |
<Reference Include="System.Net.Http" /> |
|
41 |
<Reference Include="System.Xml" /> |
|
42 |
</ItemGroup> |
|
43 |
<ItemGroup> |
|
44 |
<Compile Include="IPlugin.cs" /> |
|
45 |
<Compile Include="Properties\AssemblyInfo.cs" /> |
|
46 |
</ItemGroup> |
|
47 |
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" /> |
|
48 |
</Project> |
ConvertService/ServiceBase/Markus.Service.Convert.IPlugin/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.Service.Convert.IPlugin")] |
|
9 |
[assembly: AssemblyDescription("")] |
|
10 |
[assembly: AssemblyConfiguration("")] |
|
11 |
[assembly: AssemblyCompany("")] |
|
12 |
[assembly: AssemblyProduct("Markus.Service.Convert.IPlugin")] |
|
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("a5ba7325-379c-4ccb-b156-1704fc2175e3")] |
|
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 | ||
---|---|---|
26 | 26 |
private string gTempFileName; |
27 | 27 |
private Markus.SaveTask gSaveTask; |
28 | 28 |
private Markus.MarkusPDF gMarkusPDF; |
29 |
|
|
29 |
|
|
30 |
// 컨버터 완료시 파일갯수를 체크 하여 틀리면 reconvert를 1로 하고 다시 컨버팅 하도록 한다. |
|
31 |
private int ReConvert; |
|
32 |
|
|
30 | 33 |
|
31 | 34 |
private StationServiceClient StationServiceClient; |
32 | 35 |
|
... | ... | |
207 | 210 |
/// 설정된 MultiThreadMaxPages에 따른 컨버터 분기 |
208 | 211 |
if (gMarkusPDF.PageCount() > ConvertProcessContext.MultiThreadMaxPages) |
209 | 212 |
{ |
210 |
/// 큰 사이즈의 파일 컨버팅
|
|
213 |
// 큰 사이즈의 파일 컨버팅 |
|
211 | 214 |
result = ConvertBigFileProcess(saveitem); |
212 | 215 |
} |
213 | 216 |
else |
... | ... | |
215 | 218 |
/// 작은 사이즈의 컨버팅 |
216 | 219 |
await Task.Factory.StartNew(new Action(() => |
217 | 220 |
{ |
218 |
gMarkusPDF.Dispose(); |
|
219 |
gMarkusPDF = null; |
|
220 |
|
|
221 | 221 |
result = gSaveTask.SaveFile(saveitem); |
222 |
|
|
223 | 222 |
}), TaskCreationOptions.LongRunning); |
224 | 223 |
} |
225 | 224 |
|
225 |
// 파일 체크 후 갯수가 안맞으면 다시 컨버팅한다. |
|
226 |
if (ReConvert < 1 && (result.PageInfoList.Count() != saveitem.TotalPages |
|
227 |
|| Directory.EnumerateFiles(saveitem.SavePath, "*.png").Count() != saveitem.TotalPages |
|
228 |
|| Directory.EnumerateFiles(saveitem.SavePath, "*.jpg").Count() != saveitem.TotalPages)) |
|
229 |
{ |
|
230 |
result.StatusCode = StatusCodeType.PageError; |
|
231 |
result.Message = "Page Count Error"; |
|
232 |
ReConvert = 1; |
|
233 |
|
|
234 |
result = ConvertBigFileProcess(saveitem); |
|
235 |
} |
|
236 |
|
|
226 | 237 |
/// 페이지 정보 저장 |
227 | 238 |
if (result.PageInfoList?.Count() > 0) |
228 | 239 |
{ |
... | ... | |
378 | 389 |
} |
379 | 390 |
} |
380 | 391 |
catch (Exception ex) |
381 |
{ |
|
392 |
{
|
|
382 | 393 |
result = false; |
383 | 394 |
} |
384 | 395 |
|
... | ... | |
400 | 411 |
|
401 | 412 |
for (int currentPageNo = 1; currentPageNo <= saveitem.TotalPages; currentPageNo++) |
402 | 413 |
{ |
403 |
var saveResult = gMarkusPDF.SavePage(currentPageNo, Path.Combine(saveitem.SavePath, $"{currentPageNo}.png")); |
|
414 |
try |
|
415 |
{ |
|
416 |
string saveFile = Path.Combine(saveitem.SavePath, $"{currentPageNo}.png"); |
|
404 | 417 |
|
405 |
saveitem.Status = StatusCodeType.Saving; |
|
406 |
saveitem.CurrentPage = currentPageNo; |
|
407 |
saveitem.ErrorMessage = saveResult.Message; |
|
418 |
if (ReConvert < 1 || (ReConvert == 1 && !File.Exists(saveFile))) |
|
419 |
{ |
|
408 | 420 |
|
409 |
result.PageInfoAdd(saveResult.SavePageInfo);
|
|
421 |
var saveResult = gMarkusPDF.SavePage(currentPageNo, saveFile);
|
|
410 | 422 |
|
411 |
MarkusPdfStateChangeEvent(this, new StateEventArgs(saveitem)); |
|
412 |
Console.WriteLine($"CurrentPage : {currentPageNo}"); |
|
423 |
saveitem.Status = StatusCodeType.Saving; |
|
424 |
saveitem.CurrentPage = currentPageNo; |
|
425 |
saveitem.ErrorMessage = saveResult.Message; |
|
413 | 426 |
|
414 |
/// 설정된 최대 페이지이거나 설정된 메모리보다 크면 릴리즈 |
|
415 |
if (currentPageNo% ConvertProcessContext.MultiThreadMaxPages == 0 || ConvertProcessContext.ReleaseWorkMemory < Environment.WorkingSet) |
|
427 |
int pageListCount = 0; |
|
428 |
|
|
429 |
if(result.PageInfoList != null) |
|
430 |
{ |
|
431 |
pageListCount = result.PageInfoList.Count(f => f.PageNo == saveResult.SavePageInfo.PageNo); |
|
432 |
} |
|
433 |
|
|
434 |
if (pageListCount == 0) |
|
435 |
{ |
|
436 |
result.PageInfoAdd(saveResult.SavePageInfo); |
|
437 |
} |
|
438 |
|
|
439 |
MarkusPdfStateChangeEvent(this, new StateEventArgs(saveitem)); |
|
440 |
Console.WriteLine($"CurrentPage : {currentPageNo}"); |
|
441 |
|
|
442 |
/// 설정된 최대 페이지이거나 설정된 메모리보다 크면 릴리즈 |
|
443 |
if (currentPageNo % ConvertProcessContext.MultiThreadMaxPages == 0 || ConvertProcessContext.ReleaseWorkMemory < Environment.WorkingSet) |
|
444 |
{ |
|
445 |
Console.WriteLine($"physical memory : {Environment.WorkingSet}"); |
|
446 |
|
|
447 |
gMarkusPDF.Dispose(); |
|
448 |
gMarkusPDF = null; |
|
449 |
System.Threading.Thread.SpinWait(5); |
|
450 |
|
|
451 |
gMarkusPDF = new MarkusPDF(); |
|
452 |
gMarkusPDF.pdfLoad(saveitem.PdfFilePath, saveitem.MinimumFontSize, saveitem.UseResolution); |
|
453 |
} |
|
454 |
System.Threading.Thread.SpinWait(2); |
|
455 |
} |
|
456 |
} |
|
457 |
catch (Exception ex) |
|
416 | 458 |
{ |
417 |
Console.WriteLine($"physical memory : {Environment.WorkingSet}"); |
|
459 |
result.StatusCode = StatusCodeType.PageError; |
|
460 |
result.Message = "Save Error - " + ex.Message; |
|
418 | 461 |
|
419 |
gMarkusPDF.Dispose(); |
|
420 |
gMarkusPDF = null; |
|
421 |
System.Threading.Thread.SpinWait(5); |
|
462 |
if (gMarkusPDF != null) |
|
463 |
{ |
|
464 |
gMarkusPDF.Dispose(); |
|
465 |
gMarkusPDF = null; |
|
466 |
} |
|
422 | 467 |
|
423 | 468 |
gMarkusPDF = new MarkusPDF(); |
424 | 469 |
gMarkusPDF.pdfLoad(saveitem.PdfFilePath, saveitem.MinimumFontSize, saveitem.UseResolution); |
470 |
|
|
471 |
currentPageNo = currentPageNo - 1; |
|
472 |
} |
|
473 |
finally |
|
474 |
{ |
|
475 |
|
|
425 | 476 |
} |
426 |
System.Threading.Thread.SpinWait(2); |
|
427 | 477 |
} |
428 | 478 |
|
429 | 479 |
result.StatusCode = StatusCodeType.Completed; |
ConvertService/ServiceBase/Markus.Service.ConvertProcess/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.ConvertProcess |
|
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/ServiceBase/Markus.Service.ConvertProcess/Markus.Service.ConvertProcess.csproj | ||
---|---|---|
89 | 89 |
<Reference Include="System.Xml" /> |
90 | 90 |
</ItemGroup> |
91 | 91 |
<ItemGroup> |
92 |
<Compile Include="GenericPluginLoader.cs" /> |
|
92 | 93 |
<Compile Include="Program.cs" /> |
93 | 94 |
<Compile Include="Properties\AssemblyInfo.cs" /> |
94 | 95 |
</ItemGroup> |
... | ... | |
97 | 98 |
<Link>Log.config</Link> |
98 | 99 |
<CopyToOutputDirectory>Always</CopyToOutputDirectory> |
99 | 100 |
</None> |
101 |
<None Include="..\Markus.Service.Station\Plugin.ini"> |
|
102 |
<Link>Plugin.ini</Link> |
|
103 |
<CopyToOutputDirectory>Always</CopyToOutputDirectory> |
|
104 |
</None> |
|
105 |
<None Include="..\Markus.Service.Station\ServiceStation.ini"> |
|
106 |
<Link>ServiceStation.ini</Link> |
|
107 |
<CopyToOutputDirectory>Always</CopyToOutputDirectory> |
|
108 |
</None> |
|
100 | 109 |
<None Include="App.config" /> |
101 | 110 |
<None Include="packages.config" /> |
102 | 111 |
</ItemGroup> |
... | ... | |
105 | 114 |
<Project>{4a465fd0-8130-4d6b-a65f-c3cd6cc355a4}</Project> |
106 | 115 |
<Name>Markus.Service.Interface</Name> |
107 | 116 |
</ProjectReference> |
117 |
<ProjectReference Include="..\Markus.Service.Convert.IPlugin\Markus.Service.Convert.IPlugin.csproj"> |
|
118 |
<Project>{a5ba7325-379c-4ccb-b156-1704fc2175e3}</Project> |
|
119 |
<Name>Markus.Service.Convert.IPlugin</Name> |
|
120 |
</ProjectReference> |
|
108 | 121 |
<ProjectReference Include="..\Markus.Service.Convert\Markus.Service.Convert.csproj"> |
109 | 122 |
<Project>{867e065c-3c22-47b1-9c2a-130a78dddd51}</Project> |
110 | 123 |
<Name>Markus.Service.Convert</Name> |
... | ... | |
132 | 145 |
</ItemGroup> |
133 | 146 |
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" /> |
134 | 147 |
<PropertyGroup> |
135 |
<PreBuildEvent>xcopy /y /d "$(ProjectDir)..\libpthread\$(PlatformName)\libpthread.dll" "$(ProjectDir)$(OutDir)"</PreBuildEvent> |
|
148 |
<PreBuildEvent>xcopy /y /d "$(ProjectDir)..\libpthread\$(PlatformName)\libpthread.dll" "$(ProjectDir)$(OutDir)" |
|
149 |
xcopy /y /d /I "$(SolutionDir)publish\Plugin\*.*" "$(ProjectDir)$(OutDir)Plugin"</PreBuildEvent> |
|
136 | 150 |
</PropertyGroup> |
137 | 151 |
<PropertyGroup> |
138 | 152 |
<PostBuildEvent>rem "$(Obfuscar)" obfuscar.xml</PostBuildEvent> |
ConvertService/ServiceBase/Markus.Service.ConvertProcess/Program.cs | ||
---|---|---|
11 | 11 |
using System.Web.Script.Serialization; |
12 | 12 |
using System.Windows.Forms; |
13 | 13 |
using static Markus.Service.Extensions.Encrypt; |
14 |
using ConvertPlugin = Markus.Service.Convert.Plugin; |
|
14 | 15 |
|
15 | 16 |
namespace Markus.Service.ConvertProcess |
16 | 17 |
{ |
... | ... | |
45 | 46 |
{ |
46 | 47 |
logger.Error($"Markus.Service.ConvertProcess Error ConvertId : {convetContext.ConvertID}"); |
47 | 48 |
} |
49 |
else |
|
50 |
{ |
|
51 |
var pluginPath = System.IO.Path.Combine(AppDomain.CurrentDomain.SetupInformation.ApplicationBase, "Plugin"); |
|
52 |
var plugins = GenericPluginLoader<ConvertPlugin.IPlugin>.LoadPlugins(pluginPath); |
|
53 |
var config = ConfigHelper.AppConfig("Plugin.ini"); |
|
54 |
|
|
55 |
if(plugins != null) |
|
56 |
{ |
|
57 |
foreach (var item in plugins) |
|
58 |
{ |
|
59 |
Dictionary<string, object> parameters = new Dictionary<string, object>(); |
|
60 |
|
|
61 |
var sections = config.Sections.Where(x=>x.SectionName == item.Name); |
|
62 |
|
|
63 |
if (sections.Count() > 0) |
|
64 |
{ |
|
65 |
foreach (var param in sections.First().Keys) |
|
66 |
{ |
|
67 |
parameters.Add(param.Name, param.Content); |
|
68 |
} |
|
69 |
} |
|
70 |
|
|
71 |
var result = item.Do(convetContext.ConvertID, parameters); |
|
72 |
|
|
73 |
if(!result) |
|
74 |
{ |
|
75 |
logger.Error($"Markus.Service.ConvertProcess Error ConvertId : {convetContext.ConvertID} PlugIn Error : ",new Exception(item.Exception.ToString())); |
|
76 |
} |
|
77 |
} |
|
78 |
} |
|
79 |
} |
|
48 | 80 |
} |
49 | 81 |
} |
50 | 82 |
catch (Exception ex) |
ConvertService/ServiceBase/Markus.Service.Station/Helper/ConfigHelper.cs | ||
---|---|---|
1 |
using Markus.Service.Station; |
|
2 |
using Salaros.Configuration; |
|
3 |
using System; |
|
4 |
using System.Collections.Generic; |
|
5 |
using System.Globalization; |
|
6 |
using System.Linq; |
|
7 |
using System.Text; |
|
8 |
using System.Threading.Tasks; |
|
9 |
|
|
10 |
namespace Markus.Service |
|
11 |
{ |
|
12 |
public class ConfigHelper |
|
13 |
{ |
|
14 |
public static ConfigParser AppConfig(string ConfigFileName) |
|
15 |
{ |
|
16 |
var startDir = AppDomain.CurrentDomain.BaseDirectory; |
|
17 |
var configFilePath = $"{System.IO.Path.Combine(startDir, ConfigFileName)}"; |
|
18 |
|
|
19 |
if(!System.IO.File.Exists(configFilePath)) |
|
20 |
{ |
|
21 |
throw new Exception($"Config File Not Found. {configFilePath}"); |
|
22 |
} |
|
23 |
|
|
24 |
return new ConfigParser(configFilePath, |
|
25 |
new ConfigParserSettings |
|
26 |
{ |
|
27 |
MultiLineValues = MultiLineValues.Simple | MultiLineValues.AllowValuelessKeys | MultiLineValues.QuoteDelimitedValues, |
|
28 |
Culture = new CultureInfo("en-US") |
|
29 |
}); |
|
30 |
} |
|
31 |
} |
|
32 |
} |
ConvertService/ServiceBase/Markus.Service.Station/Helper/WcfHostHelper.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.ServiceModel; |
|
7 |
using System.ServiceModel.Description; |
|
8 |
using System.Web.Services; |
|
9 |
using System.ServiceModel.Channels; |
|
10 |
using System.Xml; |
|
11 |
|
|
12 |
namespace Markus.Service |
|
13 |
{ |
|
14 |
public static class WebServiceHelper |
|
15 |
{ |
|
16 |
public static ServiceHost WcfCreate(this ServiceHost serviceHost, object service, Type serviceInterface, IEnumerable<Uri> HostEndpoints) |
|
17 |
{ |
|
18 |
if(serviceHost != null) |
|
19 |
{ |
|
20 |
foreach (var item in serviceHost.ChannelDispatchers) |
|
21 |
{ |
|
22 |
item.Abort(); |
|
23 |
} |
|
24 |
|
|
25 |
serviceHost.Abort(); |
|
26 |
serviceHost = null; |
|
27 |
} |
|
28 |
|
|
29 |
serviceHost = new ServiceHost(service, HostEndpoints.ToArray()); |
|
30 |
|
|
31 |
if (HostEndpoints.GroupBy(f => f.Scheme).Count() != HostEndpoints.Count()) |
|
32 |
{ |
|
33 |
throw new Exception("Host Uri's schema must be unique."); |
|
34 |
} |
|
35 |
|
|
36 |
ServiceMetadataBehavior mBehave = new ServiceMetadataBehavior(); |
|
37 |
|
|
38 |
mBehave.HttpGetEnabled = true; |
|
39 |
serviceHost.Description.Behaviors.Add(mBehave); |
|
40 |
|
|
41 |
//ServiceBehaviorAttribute attribute = new ServiceBehaviorAttribute(); |
|
42 |
//attribute.InstanceContextMode = InstanceContextMode.Single; |
|
43 |
//serviceHost.Description.Behaviors.Add(attribute); |
|
44 |
|
|
45 |
foreach (var item in HostEndpoints) |
|
46 |
{ |
|
47 |
System.ServiceModel.Channels.Binding binding = null; |
|
48 |
System.ServiceModel.Channels.Binding bindingMex = null; |
|
49 |
|
|
50 |
if (item.Scheme == Uri.UriSchemeHttp) |
|
51 |
{ |
|
52 |
binding = new BasicHttpBinding(); |
|
53 |
bindingMex = MetadataExchangeBindings.CreateMexHttpBinding(); |
|
54 |
|
|
55 |
BindingElementCollection bindElemColl = new BindingElementCollection(); |
|
56 |
BinaryMessageEncodingBindingElement bindElem = new BinaryMessageEncodingBindingElement(); |
|
57 |
bindElem.MaxReadPoolSize = 64; |
|
58 |
bindElem.MaxWritePoolSize = 16; |
|
59 |
bindElem.MaxSessionSize = 2048; |
|
60 |
XmlDictionaryReaderQuotas readerQuotas = new XmlDictionaryReaderQuotas(); |
|
61 |
readerQuotas.MaxDepth = 32; |
|
62 |
readerQuotas.MaxStringContentLength = Int32.MaxValue; |
|
63 |
readerQuotas.MaxArrayLength = 16384; |
|
64 |
readerQuotas.MaxBytesPerRead = 4096; |
|
65 |
readerQuotas.MaxNameTableCharCount = 16384; |
|
66 |
bindElem.ReaderQuotas = readerQuotas; |
|
67 |
|
|
68 |
binding.CreateBindingElements().Add(bindElem); |
|
69 |
} |
|
70 |
else if (item.Scheme == Uri.UriSchemeHttps) |
|
71 |
{ |
|
72 |
binding = new BasicHttpsBinding(); |
|
73 |
bindingMex = MetadataExchangeBindings.CreateMexHttpsBinding(); |
|
74 |
} |
|
75 |
else if (item.Scheme == Uri.UriSchemeNetTcp) |
|
76 |
{ |
|
77 |
binding = new NetTcpBinding(); |
|
78 |
bindingMex = MetadataExchangeBindings.CreateMexTcpBinding(); |
|
79 |
} |
|
80 |
else |
|
81 |
{ |
|
82 |
throw new Exception($"{item.ToString()} is Not Support Schema."); |
|
83 |
} |
|
84 |
|
|
85 |
serviceHost.AddServiceEndpoint(serviceInterface, binding, item); |
|
86 |
serviceHost.AddServiceEndpoint(typeof(IMetadataExchange), bindingMex, "mex"); |
|
87 |
} |
|
88 |
|
|
89 |
|
|
90 |
var behavior = serviceHost.Description.Behaviors.Find<ServiceBehaviorAttribute>(); |
|
91 |
behavior.InstanceContextMode = InstanceContextMode.Single; |
|
92 |
|
|
93 |
serviceHost.Open(); |
|
94 |
return serviceHost; |
|
95 |
} |
|
96 |
} |
|
97 |
} |
ConvertService/ServiceBase/Markus.Service.Station/Markus.Service.Station.csproj | ||
---|---|---|
12 | 12 |
<TargetFrameworkVersion>v4.5</TargetFrameworkVersion> |
13 | 13 |
<FileAlignment>512</FileAlignment> |
14 | 14 |
<Deterministic>true</Deterministic> |
15 |
<IsWebBootstrapper>false</IsWebBootstrapper> |
|
16 |
<NuGetPackageImportStamp> |
|
17 |
</NuGetPackageImportStamp> |
|
15 | 18 |
<PublishUrl>publish\</PublishUrl> |
16 | 19 |
<Install>true</Install> |
17 | 20 |
<InstallFrom>Disk</InstallFrom> |
... | ... | |
24 | 27 |
<MapFileExtensions>true</MapFileExtensions> |
25 | 28 |
<ApplicationRevision>0</ApplicationRevision> |
26 | 29 |
<ApplicationVersion>1.0.0.%2a</ApplicationVersion> |
27 |
<IsWebBootstrapper>false</IsWebBootstrapper> |
|
28 | 30 |
<UseApplicationTrust>false</UseApplicationTrust> |
29 | 31 |
<BootstrapperEnabled>true</BootstrapperEnabled> |
30 |
<NuGetPackageImportStamp> |
|
31 |
</NuGetPackageImportStamp> |
|
32 | 32 |
</PropertyGroup> |
33 | 33 |
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> |
34 | 34 |
<PlatformTarget>AnyCPU</PlatformTarget> |
... | ... | |
120 | 120 |
</ItemGroup> |
121 | 121 |
<ItemGroup> |
122 | 122 |
<Compile Include="ApplicationDefine.cs" /> |
123 |
<Compile Include="Helper\ConfigHelper.cs" /> |
|
124 | 123 |
<Compile Include="ProjectInstaller.cs"> |
125 | 124 |
<SubType>Component</SubType> |
126 | 125 |
</Compile> |
... | ... | |
166 | 165 |
<Content Include="ServiceStation.ini"> |
167 | 166 |
<CopyToOutputDirectory>Always</CopyToOutputDirectory> |
168 | 167 |
</Content> |
168 |
<Content Include="Plugin.ini"> |
|
169 |
<CopyToOutputDirectory>Always</CopyToOutputDirectory> |
|
170 |
</Content> |
|
169 | 171 |
</ItemGroup> |
170 | 172 |
<ItemGroup> |
171 | 173 |
<EmbeddedResource Include="ProjectInstaller.resx"> |
... | ... | |
221 | 223 |
</ItemGroup> |
222 | 224 |
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" /> |
223 | 225 |
<PropertyGroup> |
224 |
<PreBuildEvent> |
|
225 |
</PreBuildEvent> |
|
226 |
<PreBuildEvent>xcopy /y /d /I "$(SolutionDir)publish\Plugin\*.*" "$(ProjectDir)$(OutDir)Plugin"</PreBuildEvent> |
|
226 | 227 |
</PropertyGroup> |
227 | 228 |
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild"> |
228 | 229 |
<PropertyGroup> |
ConvertService/ServiceBase/Markus.Service.Station/Plugin.ini | ||
---|---|---|
1 |
#해당 플러그인에 전달되는 parameter |
|
2 |
[PemssDocumentInfo] |
|
3 |
PEMSS_SERVICE = http://localhost:13009/PemssService.svc |
|
4 |
# remote test MARKUS_V3 |
|
5 |
MARKUS_ConnectionString = ScTg8MgTdbARVQXhb1K9YI3/6emjnMuODvTWZ+UnUZQ8z/Gv4TksSLRn84HTZiC5pT5Vi9KdIFiJ/icpeXrUfa2LTnWdibJ7Oz+4QcYCftqVNPaS3nbiAo67l93XLRVqCpyt4tTSgwhRhdJob48gZhx+zmvoKmAwBR/ofCam3SNjx85gHFWc+gFffVOACIGbvM940SGroUFzK85kDd7Xlg== |
ConvertService/ServiceBase/Markus.Service.Station/ServiceStation.ini | ||
---|---|---|
2 | 2 |
WINDOW = true |
3 | 3 |
IS_STATAION = true |
4 | 4 |
|
5 |
STATAION_ADDRESS = http://192.168.0.129:9101/StationService
|
|
5 |
STATAION_ADDRESS = http://localhost:9101/StationService
|
|
6 | 6 |
|
7 | 7 |
SERVICE_ID = 0AC6FD8E-5060-4B0F-9E6B-A7380B9FCF7B |
8 | 8 |
# 구분자는 ',' |
9 |
SERVICE_LIST = 0AC6FD8E-5060-4B0F-9E6B-A7380B9FCF7B,03A98B3B-ECCD-4972-B658-43C7571965DA
|
|
9 |
SERVICE_LIST = 0AC6FD8E-5060-4B0F-9E6B-A7380B9FCF7B |
|
10 | 10 |
|
11 | 11 |
# DAELIM |
12 | 12 |
#MarkusDataBaseConnectionString = yRW0I8OJY/boJcR9rTFeH229g456BwO8BaXQbW8h6iCR10JRc5tOl2BDWa1595q0bvW9uD5HsHn9ke4oK3yaw2OYHh8pgYKdhW48xeAl49510h1DPv8uSbqcWdwZ2AjernORxxaEAUqHZb5DFlndcWuid82ZwP/EGxGNhaaCG+KVogeHwI5FZZKrmUTWe3159qk11Q4XswrHeLy8HQn5Qg== |
... | ... | |
44 | 44 |
STATION_PORT = 9101 |
45 | 45 |
CONVERT_PORT = 9102 |
46 | 46 |
FINAL_PORT = 9103 |
47 |
STATION_SERVICE_NAME = StationService |
|
47 |
STATION_SERVICE_NAME = StationService |
ConvertService/ServiceBase/Markus.Service.StationController/Behaviors/StatusTypeSet.cs | ||
---|---|---|
9 | 9 |
|
10 | 10 |
namespace Markus.Service.StationController.Behaviors |
11 | 11 |
{ |
12 |
public class StatusTypeSet : DependencyObject
|
|
12 |
public class StatusTypeSet : System.Windows.Interactivity.Behavior<System.Windows.Controls.Control>
|
|
13 | 13 |
{ |
14 |
public static List<StatusCodeType> GetStatusTypes(DependencyObject obj)
|
|
14 |
protected override void OnAttached()
|
|
15 | 15 |
{ |
16 |
return (List<StatusCodeType>)obj.GetValue(StatusTypesProperty); |
|
16 |
AssociatedObject.Loaded += AssociatedObject_Loaded; |
|
17 |
base.OnAttached(); |
|
17 | 18 |
} |
18 | 19 |
|
19 |
public static void SetStatusTypes(DependencyObject obj, List<StatusCodeType> value)
|
|
20 |
private void AssociatedObject_Loaded(object sender, RoutedEventArgs e)
|
|
20 | 21 |
{ |
21 |
obj.SetValue(StatusTypesProperty, value); |
|
22 |
|
|
23 |
if(obj is UserControl) |
|
22 |
if (AssociatedObject is UserControl) |
|
24 | 23 |
{ |
25 |
if ((obj as UserControl).DataContext is ViewModel.DataBaseByStatusViewModel)
|
|
24 |
if ((AssociatedObject as UserControl).DataContext is ViewModel.DataBaseByStatusViewModel)
|
|
26 | 25 |
{ |
27 |
((obj as UserControl).DataContext as ViewModel.DataBaseByStatusViewModel).StatusType = value;
|
|
26 |
((AssociatedObject as UserControl).DataContext as ViewModel.DataBaseByStatusViewModel).StatusType = GetStatusTypes(AssociatedObject);
|
|
28 | 27 |
} |
29 | 28 |
} |
30 | 29 |
} |
31 | 30 |
|
32 |
public static readonly DependencyProperty StatusTypesProperty = DependencyProperty.RegisterAttached("StatusTypes", typeof(List<StatusCodeType>), typeof(StatusTypeSet) |
|
33 |
, new FrameworkPropertyMetadata(new List<StatusCodeType> { StatusCodeType.None}, new PropertyChangedCallback(StatusTypePropertyChanged)) |
|
34 |
{ }); |
|
31 |
public static IEnumerable<StatusCodeType> GetStatusTypes(DependencyObject obj) |
|
32 |
{ |
|
33 |
return (IEnumerable<StatusCodeType>)obj.GetValue(StatusTypesProperty); |
|
34 |
} |
|
35 |
|
|
36 |
public static void SetStatusTypes(DependencyObject obj, IEnumerable<StatusCodeType> value) |
|
37 |
{ |
|
38 |
obj.SetValue(StatusTypesProperty, value); |
|
39 |
} |
|
40 |
|
|
41 |
public static readonly DependencyProperty StatusTypesProperty = DependencyProperty.RegisterAttached("StatusTypes", typeof(IEnumerable<StatusCodeType>), typeof(StatusTypeSet) |
|
42 |
, new FrameworkPropertyMetadata(new PropertyChangedCallback(StatusTypePropertyChanged)) |
|
43 |
{ BindsTwoWayByDefault=true }); |
|
35 | 44 |
|
36 | 45 |
private static void StatusTypePropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) |
37 | 46 |
{ |
38 |
|
|
47 |
var owner = d as StatusTypeSet; |
|
48 |
|
|
49 |
SetStatusTypes(owner, (IEnumerable<StatusCodeType>)e.NewValue); |
|
50 |
|
|
51 |
//if (owner.AssociatedObject is UserControl) |
|
52 |
//{ |
|
53 |
// if ((owner.AssociatedObject as UserControl).DataContext is ViewModel.DataBaseByStatusViewModel) |
|
54 |
// { |
|
55 |
// ((owner.AssociatedObject as UserControl).DataContext as ViewModel.DataBaseByStatusViewModel).StatusType = (IEnumerable<StatusCodeType>)e.NewValue; |
|
56 |
// } |
|
57 |
//} |
|
39 | 58 |
} |
40 | 59 |
} |
41 | 60 |
} |
ConvertService/ServiceBase/Markus.Service.StationController/StationController.ini | ||
---|---|---|
1 | 1 |
[SERVICE] |
2 | 2 |
SERVICE_ADDRESS = http://172.20.120.142:9991/StationService,http://172.20.120.143:9991/StationService |
3 | 3 |
|
4 |
# daelim |
|
4 | 5 |
#http://172.20.120.142:9991/StationService,http://172.20.120.143:9991/StationService |
6 |
|
|
7 |
#vm |
|
8 |
#http://192.168.0.129:9101/StationService,http://192.168.0.203:9101/StationService |
|
5 | 9 |
# http://172.20.120.142:9991/StationService,http://172.20.120.143:9991/StationService |
6 | 10 |
#,http://192.168.0.68:9101/StationService |
7 | 11 |
#http://172.20.120.142:9991/StationService |
ConvertService/ServiceBase/Markus.Service.StationController/ViewModel/DataBaseByStatusViewModel.cs | ||
---|---|---|
19 | 19 |
private System.Collections.ObjectModel.ObservableCollection<ConvertItem> items; |
20 | 20 |
private ConvertItem selectItem; |
21 | 21 |
|
22 |
private List<StatusCodeType> statusType;
|
|
22 |
private IEnumerable<StatusCodeType> statusType;
|
|
23 | 23 |
private bool isLoading; |
24 | 24 |
|
25 | 25 |
public System.Collections.ObjectModel.ObservableCollection<ConvertItem> Items |
... | ... | |
41 | 41 |
} |
42 | 42 |
|
43 | 43 |
|
44 |
public List<StatusCodeType> StatusType
|
|
44 |
public IEnumerable<StatusCodeType> StatusType
|
|
45 | 45 |
{ |
46 | 46 |
get => statusType; set |
47 | 47 |
{ |
ConvertService/ServiceBase/Markus.Service.StationController/Views/MergeDataView.xaml | ||
---|---|---|
7 | 7 |
xmlns:markus="clr-namespace:Markus.Message;assembly=Markus.Message" |
8 | 8 |
xmlns:telerik="http://schemas.telerik.com/2008/xaml/presentation" |
9 | 9 |
xmlns:local="clr-namespace:Markus.Service.StationController.ViewModel" |
10 |
xmlns:i="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity" |
|
10 | 11 |
xmlns:Behaviors="clr-namespace:Markus.Service.StationController.Behaviors" |
11 | 12 |
mc:Ignorable="d" |
12 | 13 |
d:DesignHeight="450" d:DesignWidth="800"> |
14 |
<UserControl.Resources> |
|
15 |
<x:Array x:Key="FilterTypes" Type="{x:Type markus:StatusCodeType}" > |
|
16 |
<markus:StatusCodeType>Error</markus:StatusCodeType> |
|
17 |
<markus:StatusCodeType>Completed</markus:StatusCodeType> |
|
18 |
</x:Array> |
|
19 |
</UserControl.Resources> |
|
13 | 20 |
<Grid> |
14 | 21 |
<Grid.RowDefinitions> |
15 | 22 |
<RowDefinition Height="3.5*"/> |
... | ... | |
21 | 28 |
</GroupBox> |
22 | 29 |
<GroupBox Header="Error Items" Grid.Row="1" Margin="3" BorderThickness="0"> |
23 | 30 |
<Views:DataBaseByStatusView> |
24 |
<Behaviors:StatusTypeSet.StatusTypes>
|
|
25 |
<markus:StatusCodeType>Error</markus:StatusCodeType>
|
|
26 |
</Behaviors:StatusTypeSet.StatusTypes>
|
|
31 |
<i:Interaction.Behaviors>
|
|
32 |
<Behaviors:StatusTypeSet StatusTypes="{StaticResource FilterTypes}"/>
|
|
33 |
</i:Interaction.Behaviors>
|
|
27 | 34 |
</Views:DataBaseByStatusView> |
28 | 35 |
</GroupBox> |
29 | 36 |
<GroupBox Header="Completed Items" Grid.Row="2" Margin="3" BorderThickness="0"> |
30 | 37 |
<Views:DataBaseByStatusView> |
31 |
<Behaviors:StatusTypeSet.StatusTypes> |
|
38 |
<!--<Behaviors:StatusTypeSet.StatusTypes>
|
|
32 | 39 |
<markus:StatusCodeType>Error</markus:StatusCodeType> |
33 |
</Behaviors:StatusTypeSet.StatusTypes> |
|
40 |
</Behaviors:StatusTypeSet.StatusTypes>-->
|
|
34 | 41 |
</Views:DataBaseByStatusView> |
35 | 42 |
</GroupBox> |
36 | 43 |
|
ConvertService/ServiceBase/PemssDocumentInfo/Connected Services/PemssService/PemssDocumentInfo.PemssService.DocumentInfo.datasource | ||
---|---|---|
1 |
<?xml version="1.0" encoding="utf-8"?> |
|
2 |
<!-- |
|
3 |
This file is automatically generated by Visual Studio .Net. It is |
|
4 |
used to store generic object data source configuration information. |
|
5 |
Renaming the file extension or editing the content of this file may |
|
6 |
cause the file to be unrecognizable by the program. |
|
7 |
--> |
|
8 |
<GenericObjectDataSource DisplayName="DocumentInfo" Version="1.0" xmlns="urn:schemas-microsoft-com:xml-msdatasource"> |
|
9 |
<TypeInfo>PemssDocumentInfo.PemssService.DocumentInfo, Connected Services.PemssService.Reference.cs.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null</TypeInfo> |
|
10 |
</GenericObjectDataSource> |
ConvertService/ServiceBase/PemssDocumentInfo/Connected Services/PemssService/PemssDocumentInfo.PemssService.Requirement.datasource | ||
---|---|---|
1 |
<?xml version="1.0" encoding="utf-8"?> |
|
2 |
<!-- |
|
3 |
This file is automatically generated by Visual Studio .Net. It is |
|
4 |
used to store generic object data source configuration information. |
|
5 |
Renaming the file extension or editing the content of this file may |
|
6 |
cause the file to be unrecognizable by the program. |
|
7 |
--> |
|
8 |
<GenericObjectDataSource DisplayName="Requirement" Version="1.0" xmlns="urn:schemas-microsoft-com:xml-msdatasource"> |
|
9 |
<TypeInfo>PemssDocumentInfo.PemssService.Requirement, Connected Services.PemssService.Reference.cs.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null</TypeInfo> |
|
10 |
</GenericObjectDataSource> |
ConvertService/ServiceBase/PemssDocumentInfo/Connected Services/PemssService/PemssService.disco | ||
---|---|---|
1 |
<?xml version="1.0" encoding="utf-8"?> |
|
2 |
<discovery xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://schemas.xmlsoap.org/disco/"> |
|
3 |
<contractRef ref="http://localhost:13009/PemssService.svc?wsdl" docRef="http://localhost:13009/PemssService.svc" xmlns="http://schemas.xmlsoap.org/disco/scl/" /> |
|
4 |
</discovery> |
ConvertService/ServiceBase/PemssDocumentInfo/Connected Services/PemssService/PemssService.wsdl | ||
---|---|---|
1 |
<?xml version="1.0" encoding="utf-8"?> |
|
2 |
<wsdl:definitions xmlns:wsap="http://schemas.xmlsoap.org/ws/2004/08/addressing/policy" xmlns:wsa10="http://www.w3.org/2005/08/addressing" xmlns:tns="http://tempuri.org/" xmlns:msc="http://schemas.microsoft.com/ws/2005/12/wsdl/contract" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:wsx="http://schemas.xmlsoap.org/ws/2004/09/mex" xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy" xmlns:wsam="http://www.w3.org/2007/05/addressing/metadata" xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/08/addressing" xmlns:wsaw="http://www.w3.org/2006/05/addressing/wsdl" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" xmlns:xsd="http://www.w3.org/2001/XMLSchema" name="PemssService" targetNamespace="http://tempuri.org/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"> |
|
3 |
<wsdl:import namespace="" location="http://localhost:13009/PemssService.svc?wsdl=wsdl0" /> |
|
4 |
<wsdl:types /> |
|
5 |
<wsdl:binding name="MarkusServiceEndPoint" type="PemssService"> |
|
6 |
<soap:binding transport="http://schemas.xmlsoap.org/soap/http" /> |
|
7 |
<wsdl:operation name="GetrequirementList"> |
|
8 |
<soap:operation soapAction="urn:PemssService/GetrequirementList" style="document" /> |
|
9 |
<wsdl:input> |
|
10 |
<soap:body use="literal" /> |
|
11 |
</wsdl:input> |
|
12 |
<wsdl:output> |
|
13 |
<soap:body use="literal" /> |
|
14 |
</wsdl:output> |
|
15 |
</wsdl:operation> |
|
16 |
<wsdl:operation name="SetRequirementComment"> |
|
17 |
<soap:operation soapAction="urn:PemssService/SetRequirementComment" style="document" /> |
|
18 |
<wsdl:input> |
|
19 |
<soap:body use="literal" /> |
|
20 |
</wsdl:input> |
|
21 |
<wsdl:output> |
|
22 |
<soap:body use="literal" /> |
|
23 |
</wsdl:output> |
|
24 |
</wsdl:operation> |
|
25 |
<wsdl:operation name="RemoveRequirementComment"> |
|
26 |
<soap:operation soapAction="urn:PemssService/RemoveRequirementComment" style="document" /> |
|
27 |
<wsdl:input> |
|
28 |
<soap:body use="literal" /> |
|
29 |
</wsdl:input> |
|
30 |
<wsdl:output> |
|
31 |
<soap:body use="literal" /> |
|
32 |
</wsdl:output> |
|
33 |
</wsdl:operation> |
|
34 |
<wsdl:operation name="GetDocumentInfo"> |
|
35 |
<soap:operation soapAction="urn:PemssService/GetDocumentInfo" style="document" /> |
|
36 |
<wsdl:input> |
|
37 |
<soap:body use="literal" /> |
|
38 |
</wsdl:input> |
|
39 |
<wsdl:output> |
|
40 |
<soap:body use="literal" /> |
|
41 |
</wsdl:output> |
|
42 |
</wsdl:operation> |
|
43 |
</wsdl:binding> |
|
44 |
<wsdl:service name="PemssService"> |
|
45 |
<wsdl:port name="MarkusServiceEndPoint" binding="tns:MarkusServiceEndPoint"> |
|
46 |
<soap:address location="http://localhost:13009/PemssService.svc" /> |
|
47 |
</wsdl:port> |
|
48 |
</wsdl:service> |
|
49 |
</wsdl:definitions> |
ConvertService/ServiceBase/PemssDocumentInfo/Connected Services/PemssService/PemssService.xsd | ||
---|---|---|
1 |
<?xml version="1.0" encoding="utf-8"?> |
|
2 |
<xs:schema xmlns:tns="http://schemas.datacontract.org/2004/07/PemssAPI.DataModel" elementFormDefault="qualified" targetNamespace="http://schemas.datacontract.org/2004/07/PemssAPI.DataModel" xmlns:xs="http://www.w3.org/2001/XMLSchema"> |
|
3 |
<xs:complexType name="ArrayOfRequirement"> |
|
4 |
<xs:sequence> |
|
5 |
<xs:element minOccurs="0" maxOccurs="unbounded" name="Requirement" nillable="true" type="tns:Requirement" /> |
|
6 |
</xs:sequence> |
|
7 |
</xs:complexType> |
|
8 |
<xs:element name="ArrayOfRequirement" nillable="true" type="tns:ArrayOfRequirement" /> |
|
9 |
<xs:complexType name="Requirement"> |
|
10 |
<xs:sequence> |
|
11 |
<xs:element minOccurs="0" name="mdId" nillable="true" type="xs:string" /> |
|
12 |
<xs:element minOccurs="0" name="mdText" nillable="true" type="xs:string" /> |
|
13 |
<xs:element minOccurs="0" name="mrComments" nillable="true" type="tns:ArrayOfCommant" /> |
|
14 |
</xs:sequence> |
|
15 |
</xs:complexType> |
|
16 |
<xs:element name="Requirement" nillable="true" type="tns:Requirement" /> |
|
17 |
<xs:complexType name="ArrayOfCommant"> |
|
18 |
<xs:sequence> |
|
19 |
<xs:element minOccurs="0" maxOccurs="unbounded" name="Commant" nillable="true" type="tns:Commant" /> |
|
20 |
</xs:sequence> |
|
21 |
</xs:complexType> |
|
22 |
<xs:element name="ArrayOfCommant" nillable="true" type="tns:ArrayOfCommant" /> |
|
23 |
<xs:complexType name="Commant"> |
|
24 |
<xs:sequence> |
|
25 |
<xs:element minOccurs="0" name="comment" nillable="true" type="xs:string" /> |
|
26 |
<xs:element minOccurs="0" name="created" nillable="true" type="xs:string" /> |
|
27 |
<xs:element minOccurs="0" name="createdBy" nillable="true" type="xs:string" /> |
|
28 |
<xs:element minOccurs="0" name="createdByName" nillable="true" type="xs:string" /> |
|
29 |
<xs:element minOccurs="0" name="id" nillable="true" type="xs:string" /> |
|
30 |
<xs:element minOccurs="0" name="modified" nillable="true" type="xs:string" /> |
|
31 |
<xs:element minOccurs="0" name="modifiedBy" nillable="true" type="xs:string" /> |
|
32 |
<xs:element minOccurs="0" name="modifiedByName" nillable="true" type="xs:string" /> |
|
33 |
</xs:sequence> |
|
34 |
</xs:complexType> |
|
35 |
<xs:element name="Commant" nillable="true" type="tns:Commant" /> |
|
36 |
<xs:complexType name="DocumentInfo"> |
|
37 |
<xs:sequence> |
|
38 |
<xs:element minOccurs="0" name="dId" type="xs:int" /> |
|
39 |
<xs:element minOccurs="0" name="docName" nillable="true" type="xs:string" /> |
|
40 |
<xs:element minOccurs="0" name="fileName" nillable="true" type="xs:string" /> |
|
41 |
<xs:element minOccurs="0" name="revision" nillable="true" type="xs:string" /> |
|
42 |
<xs:element minOccurs="0" name="slipNo" nillable="true" type="xs:string" /> |
|
43 |
</xs:sequence> |
|
44 |
</xs:complexType> |
|
45 |
<xs:element name="DocumentInfo" nillable="true" type="tns:DocumentInfo" /> |
|
46 |
</xs:schema> |
ConvertService/ServiceBase/PemssDocumentInfo/Connected Services/PemssService/PemssService1.wsdl | ||
---|---|---|
1 |
<?xml version="1.0" encoding="utf-8"?> |
|
2 |
<wsdl:definitions xmlns:wsap="http://schemas.xmlsoap.org/ws/2004/08/addressing/policy" xmlns:wsa10="http://www.w3.org/2005/08/addressing" xmlns:msc="http://schemas.microsoft.com/ws/2005/12/wsdl/contract" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:wsx="http://schemas.xmlsoap.org/ws/2004/09/mex" xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy" xmlns:wsam="http://www.w3.org/2007/05/addressing/metadata" xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/08/addressing" xmlns:wsaw="http://www.w3.org/2006/05/addressing/wsdl" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" xmlns:xsd="http://www.w3.org/2001/XMLSchema" targetNamespace="" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"> |
|
3 |
<wsdl:types> |
|
4 |
<xsd:schema targetNamespace="/Imports"> |
|
5 |
<xsd:import schemaLocation="http://localhost:13009/PemssService.svc?xsd=xsd0" /> |
|
6 |
<xsd:import schemaLocation="http://localhost:13009/PemssService.svc?xsd=xsd1" namespace="http://schemas.microsoft.com/2003/10/Serialization/" /> |
|
7 |
<xsd:import schemaLocation="http://localhost:13009/PemssService.svc?xsd=xsd2" namespace="http://schemas.datacontract.org/2004/07/PemssAPI.DataModel" /> |
|
8 |
</xsd:schema> |
|
9 |
</wsdl:types> |
|
10 |
<wsdl:message name="PemssService_GetrequirementList_InputMessage"> |
|
11 |
<wsdl:part name="parameters" element="GetrequirementList" /> |
|
12 |
</wsdl:message> |
|
13 |
<wsdl:message name="PemssService_GetrequirementList_OutputMessage"> |
|
14 |
<wsdl:part name="parameters" element="GetrequirementListResponse" /> |
|
15 |
</wsdl:message> |
|
16 |
<wsdl:message name="PemssService_SetRequirementComment_InputMessage"> |
|
17 |
<wsdl:part name="parameters" element="SetRequirementComment" /> |
|
18 |
</wsdl:message> |
|
19 |
<wsdl:message name="PemssService_SetRequirementComment_OutputMessage"> |
|
20 |
<wsdl:part name="parameters" element="SetRequirementCommentResponse" /> |
|
21 |
</wsdl:message> |
|
22 |
<wsdl:message name="PemssService_RemoveRequirementComment_InputMessage"> |
|
23 |
<wsdl:part name="parameters" element="RemoveRequirementComment" /> |
|
24 |
</wsdl:message> |
|
25 |
<wsdl:message name="PemssService_RemoveRequirementComment_OutputMessage"> |
|
26 |
<wsdl:part name="parameters" element="RemoveRequirementCommentResponse" /> |
|
27 |
</wsdl:message> |
|
28 |
<wsdl:message name="PemssService_GetDocumentInfo_InputMessage"> |
|
29 |
<wsdl:part name="parameters" element="GetDocumentInfo" /> |
|
30 |
</wsdl:message> |
|
31 |
<wsdl:message name="PemssService_GetDocumentInfo_OutputMessage"> |
|
32 |
<wsdl:part name="parameters" element="GetDocumentInfoResponse" /> |
|
33 |
</wsdl:message> |
|
34 |
<wsdl:portType name="PemssService"> |
|
35 |
<wsdl:operation name="GetrequirementList"> |
|
36 |
<wsdl:input wsaw:Action="urn:PemssService/GetrequirementList" message="PemssService_GetrequirementList_InputMessage" /> |
|
37 |
<wsdl:output wsaw:Action="urn:PemssService/GetrequirementListResponse" message="PemssService_GetrequirementList_OutputMessage" /> |
|
38 |
</wsdl:operation> |
|
39 |
<wsdl:operation name="SetRequirementComment"> |
|
40 |
<wsdl:input wsaw:Action="urn:PemssService/SetRequirementComment" message="PemssService_SetRequirementComment_InputMessage" /> |
|
41 |
<wsdl:output wsaw:Action="urn:PemssService/SetRequirementCommentResponse" message="PemssService_SetRequirementComment_OutputMessage" /> |
|
42 |
</wsdl:operation> |
|
43 |
<wsdl:operation name="RemoveRequirementComment"> |
|
44 |
<wsdl:input wsaw:Action="urn:PemssService/RemoveRequirementComment" message="PemssService_RemoveRequirementComment_InputMessage" /> |
|
45 |
<wsdl:output wsaw:Action="urn:PemssService/RemoveRequirementCommentResponse" message="PemssService_RemoveRequirementComment_OutputMessage" /> |
|
46 |
</wsdl:operation> |
|
47 |
<wsdl:operation name="GetDocumentInfo"> |
|
48 |
<wsdl:input wsaw:Action="urn:PemssService/GetDocumentInfo" message="PemssService_GetDocumentInfo_InputMessage" /> |
|
49 |
<wsdl:output wsaw:Action="urn:PemssService/GetDocumentInfoResponse" message="PemssService_GetDocumentInfo_OutputMessage" /> |
|
50 |
</wsdl:operation> |
|
51 |
</wsdl:portType> |
|
52 |
</wsdl:definitions> |
ConvertService/ServiceBase/PemssDocumentInfo/Connected Services/PemssService/PemssService1.xsd | ||
---|---|---|
1 |
<?xml version="1.0" encoding="utf-8"?> |
|
2 |
<xs:schema xmlns:tns="http://schemas.microsoft.com/2003/10/Serialization/" attributeFormDefault="qualified" elementFormDefault="qualified" targetNamespace="http://schemas.microsoft.com/2003/10/Serialization/" xmlns:xs="http://www.w3.org/2001/XMLSchema"> |
|
3 |
<xs:element name="anyType" nillable="true" type="xs:anyType" /> |
|
4 |
<xs:element name="anyURI" nillable="true" type="xs:anyURI" /> |
|
5 |
<xs:element name="base64Binary" nillable="true" type="xs:base64Binary" /> |
|
6 |
<xs:element name="boolean" nillable="true" type="xs:boolean" /> |
|
7 |
<xs:element name="byte" nillable="true" type="xs:byte" /> |
|
8 |
<xs:element name="dateTime" nillable="true" type="xs:dateTime" /> |
|
9 |
<xs:element name="decimal" nillable="true" type="xs:decimal" /> |
|
10 |
<xs:element name="double" nillable="true" type="xs:double" /> |
|
11 |
<xs:element name="float" nillable="true" type="xs:float" /> |
|
12 |
<xs:element name="int" nillable="true" type="xs:int" /> |
|
13 |
<xs:element name="long" nillable="true" type="xs:long" /> |
|
14 |
<xs:element name="QName" nillable="true" type="xs:QName" /> |
|
15 |
<xs:element name="short" nillable="true" type="xs:short" /> |
|
16 |
<xs:element name="string" nillable="true" type="xs:string" /> |
|
17 |
<xs:element name="unsignedByte" nillable="true" type="xs:unsignedByte" /> |
|
18 |
<xs:element name="unsignedInt" nillable="true" type="xs:unsignedInt" /> |
|
19 |
<xs:element name="unsignedLong" nillable="true" type="xs:unsignedLong" /> |
|
20 |
<xs:element name="unsignedShort" nillable="true" type="xs:unsignedShort" /> |
|
21 |
<xs:element name="char" nillable="true" type="tns:char" /> |
|
22 |
<xs:simpleType name="char"> |
|
23 |
<xs:restriction base="xs:int" /> |
|
24 |
</xs:simpleType> |
|
25 |
<xs:element name="duration" nillable="true" type="tns:duration" /> |
|
26 |
<xs:simpleType name="duration"> |
|
27 |
<xs:restriction base="xs:duration"> |
|
28 |
<xs:pattern value="\-?P(\d*D)?(T(\d*H)?(\d*M)?(\d*(\.\d*)?S)?)?" /> |
|
29 |
<xs:minInclusive value="-P10675199DT2H48M5.4775808S" /> |
|
30 |
<xs:maxInclusive value="P10675199DT2H48M5.4775807S" /> |
|
31 |
</xs:restriction> |
|
32 |
</xs:simpleType> |
|
33 |
<xs:element name="guid" nillable="true" type="tns:guid" /> |
|
34 |
<xs:simpleType name="guid"> |
|
35 |
<xs:restriction base="xs:string"> |
|
36 |
<xs:pattern value="[\da-fA-F]{8}-[\da-fA-F]{4}-[\da-fA-F]{4}-[\da-fA-F]{4}-[\da-fA-F]{12}" /> |
|
37 |
</xs:restriction> |
|
38 |
</xs:simpleType> |
|
39 |
<xs:attribute name="FactoryType" type="xs:QName" /> |
|
40 |
<xs:attribute name="Id" type="xs:ID" /> |
|
41 |
<xs:attribute name="Ref" type="xs:IDREF" /> |
|
42 |
</xs:schema> |
ConvertService/ServiceBase/PemssDocumentInfo/Connected Services/PemssService/PemssService2.xsd | ||
---|---|---|
1 |
<?xml version="1.0" encoding="utf-8"?> |
|
2 |
<xs:schema elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema"> |
|
3 |
<xs:import schemaLocation="http://localhost:13009/PemssService.svc?xsd=xsd2" namespace="http://schemas.datacontract.org/2004/07/PemssAPI.DataModel" /> |
|
4 |
<xs:element name="GetrequirementList"> |
|
5 |
<xs:complexType> |
|
6 |
<xs:sequence> |
|
7 |
<xs:element minOccurs="0" name="pId" nillable="true" type="xs:string" /> |
|
8 |
<xs:element minOccurs="0" name="dId" nillable="true" type="xs:string" /> |
|
9 |
</xs:sequence> |
|
10 |
</xs:complexType> |
|
11 |
</xs:element> |
|
12 |
<xs:element name="GetrequirementListResponse"> |
|
13 |
<xs:complexType> |
|
14 |
<xs:sequence> |
|
15 |
<xs:element xmlns:q1="http://schemas.datacontract.org/2004/07/PemssAPI.DataModel" minOccurs="0" name="GetrequirementListResult" nillable="true" type="q1:ArrayOfRequirement" /> |
|
16 |
</xs:sequence> |
|
17 |
</xs:complexType> |
|
18 |
</xs:element> |
|
19 |
<xs:element name="SetRequirementComment"> |
|
20 |
<xs:complexType> |
|
21 |
<xs:sequence> |
|
22 |
<xs:element minOccurs="0" name="pId" nillable="true" type="xs:string" /> |
|
23 |
<xs:element minOccurs="0" name="dId" nillable="true" type="xs:string" /> |
|
24 |
<xs:element minOccurs="0" name="mdId" nillable="true" type="xs:string" /> |
|
25 |
<xs:element minOccurs="0" name="commentId" nillable="true" type="xs:string" /> |
|
26 |
<xs:element minOccurs="0" name="comment" nillable="true" type="xs:string" /> |
|
27 |
<xs:element minOccurs="0" name="condition" type="xs:boolean" /> |
|
28 |
<xs:element minOccurs="0" name="uId" nillable="true" type="xs:string" /> |
|
29 |
</xs:sequence> |
|
30 |
</xs:complexType> |
|
31 |
</xs:element> |
|
32 |
<xs:element name="SetRequirementCommentResponse"> |
|
33 |
<xs:complexType> |
|
34 |
<xs:sequence> |
|
35 |
<xs:element minOccurs="0" name="SetRequirementCommentResult" type="xs:boolean" /> |
|
36 |
</xs:sequence> |
|
37 |
</xs:complexType> |
|
38 |
</xs:element> |
|
39 |
<xs:element name="RemoveRequirementComment"> |
|
40 |
<xs:complexType> |
|
41 |
<xs:sequence> |
|
42 |
<xs:element minOccurs="0" name="pId" nillable="true" type="xs:string" /> |
|
43 |
<xs:element minOccurs="0" name="dId" nillable="true" type="xs:string" /> |
|
44 |
<xs:element minOccurs="0" name="mdId" nillable="true" type="xs:string" /> |
|
45 |
<xs:element minOccurs="0" name="commentId" nillable="true" type="xs:string" /> |
|
46 |
<xs:element minOccurs="0" name="uId" nillable="true" type="xs:string" /> |
|
47 |
</xs:sequence> |
|
48 |
</xs:complexType> |
|
49 |
</xs:element> |
|
50 |
<xs:element name="RemoveRequirementCommentResponse"> |
|
51 |
<xs:complexType> |
|
52 |
<xs:sequence> |
|
53 |
<xs:element minOccurs="0" name="RemoveRequirementCommentResult" type="xs:boolean" /> |
|
54 |
</xs:sequence> |
|
55 |
</xs:complexType> |
|
56 |
</xs:element> |
|
57 |
<xs:element name="GetDocumentInfo"> |
|
58 |
<xs:complexType> |
|
59 |
<xs:sequence> |
|
60 |
<xs:element minOccurs="0" name="pId" nillable="true" type="xs:string" /> |
|
61 |
<xs:element minOccurs="0" name="dId" nillable="true" type="xs:string" /> |
|
62 |
</xs:sequence> |
|
63 |
</xs:complexType> |
|
64 |
</xs:element> |
|
65 |
<xs:element name="GetDocumentInfoResponse"> |
|
66 |
<xs:complexType> |
|
67 |
<xs:sequence> |
|
68 |
<xs:element xmlns:q2="http://schemas.datacontract.org/2004/07/PemssAPI.DataModel" minOccurs="0" name="GetDocumentInfoResult" nillable="true" type="q2:DocumentInfo" /> |
|
69 |
</xs:sequence> |
|
70 |
</xs:complexType> |
|
71 |
</xs:element> |
|
72 |
</xs:schema> |
ConvertService/ServiceBase/PemssDocumentInfo/Connected Services/PemssService/Reference.cs | ||
---|---|---|
1 |
//------------------------------------------------------------------------------ |
|
2 |
// <auto-generated> |
|
3 |
// 이 코드는 도구를 사용하여 생성되었습니다. |
|
4 |
// 런타임 버전:4.0.30319.42000 |
|
5 |
// |
|
6 |
// 파일 내용을 변경하면 잘못된 동작이 발생할 수 있으며, 코드를 다시 생성하면 |
|
7 |
// 이러한 변경 내용이 손실됩니다. |
|
8 |
// </auto-generated> |
|
9 |
//------------------------------------------------------------------------------ |
|
10 |
|
|
11 |
namespace PemssDocumentInfo.PemssService { |
|
12 |
using System.Runtime.Serialization; |
|
13 |
using System; |
|
14 |
|
|
15 |
|
|
16 |
[System.Diagnostics.DebuggerStepThroughAttribute()] |
|
17 |
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")] |
|
18 |
[System.Runtime.Serialization.DataContractAttribute(Name="Requirement", Namespace="http://schemas.datacontract.org/2004/07/PemssAPI.DataModel")] |
|
19 |
[System.SerializableAttribute()] |
|
20 |
public partial class Requirement : object, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged { |
|
21 |
|
|
22 |
[System.NonSerializedAttribute()] |
|
23 |
private System.Runtime.Serialization.ExtensionDataObject extensionDataField; |
|
24 |
|
|
25 |
[System.Runtime.Serialization.OptionalFieldAttribute()] |
|
26 |
private string mdIdField; |
|
27 |
|
|
28 |
[System.Runtime.Serialization.OptionalFieldAttribute()] |
|
29 |
private string mdTextField; |
|
30 |
|
|
31 |
[System.Runtime.Serialization.OptionalFieldAttribute()] |
|
32 |
private System.Collections.Generic.List<PemssDocumentInfo.PemssService.Commant> mrCommentsField; |
|
33 |
|
|
34 |
[global::System.ComponentModel.BrowsableAttribute(false)] |
|
35 |
public System.Runtime.Serialization.ExtensionDataObject ExtensionData { |
|
36 |
get { |
|
37 |
return this.extensionDataField; |
|
38 |
} |
|
39 |
set { |
|
40 |
this.extensionDataField = value; |
|
41 |
} |
|
42 |
} |
|
43 |
|
|
44 |
[System.Runtime.Serialization.DataMemberAttribute()] |
|
45 |
public string mdId { |
|
46 |
get { |
|
47 |
return this.mdIdField; |
|
48 |
} |
|
49 |
set { |
|
50 |
if ((object.ReferenceEquals(this.mdIdField, value) != true)) { |
|
51 |
this.mdIdField = value; |
|
52 |
this.RaisePropertyChanged("mdId"); |
|
53 |
} |
|
54 |
} |
|
55 |
} |
|
56 |
|
|
57 |
[System.Runtime.Serialization.DataMemberAttribute()] |
|
58 |
public string mdText { |
|
59 |
get { |
|
60 |
return this.mdTextField; |
|
61 |
} |
|
62 |
set { |
|
63 |
if ((object.ReferenceEquals(this.mdTextField, value) != true)) { |
|
64 |
this.mdTextField = value; |
|
65 |
this.RaisePropertyChanged("mdText"); |
|
66 |
} |
|
67 |
} |
|
68 |
} |
|
69 |
|
|
70 |
[System.Runtime.Serialization.DataMemberAttribute()] |
|
71 |
public System.Collections.Generic.List<PemssDocumentInfo.PemssService.Commant> mrComments { |
|
72 |
get { |
|
73 |
return this.mrCommentsField; |
|
74 |
} |
|
75 |
set { |
|
76 |
if ((object.ReferenceEquals(this.mrCommentsField, value) != true)) { |
|
77 |
this.mrCommentsField = value; |
|
78 |
this.RaisePropertyChanged("mrComments"); |
|
79 |
} |
|
80 |
} |
|
81 |
} |
|
82 |
|
|
83 |
public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; |
|
84 |
|
|
85 |
protected void RaisePropertyChanged(string propertyName) { |
|
86 |
System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; |
|
87 |
if ((propertyChanged != null)) { |
|
88 |
propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); |
|
89 |
} |
|
90 |
} |
|
91 |
} |
|
92 |
|
|
93 |
[System.Diagnostics.DebuggerStepThroughAttribute()] |
|
94 |
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")] |
|
95 |
[System.Runtime.Serialization.DataContractAttribute(Name="Commant", Namespace="http://schemas.datacontract.org/2004/07/PemssAPI.DataModel")] |
|
96 |
[System.SerializableAttribute()] |
|
97 |
public partial class Commant : object, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged { |
|
98 |
|
|
99 |
[System.NonSerializedAttribute()] |
|
100 |
private System.Runtime.Serialization.ExtensionDataObject extensionDataField; |
|
101 |
|
|
102 |
[System.Runtime.Serialization.OptionalFieldAttribute()] |
|
103 |
private string commentField; |
|
104 |
|
|
105 |
[System.Runtime.Serialization.OptionalFieldAttribute()] |
|
106 |
private string createdField; |
|
107 |
|
|
108 |
[System.Runtime.Serialization.OptionalFieldAttribute()] |
|
109 |
private string createdByField; |
|
110 |
|
|
111 |
[System.Runtime.Serialization.OptionalFieldAttribute()] |
|
112 |
private string createdByNameField; |
|
113 |
|
|
114 |
[System.Runtime.Serialization.OptionalFieldAttribute()] |
|
115 |
private string idField; |
|
116 |
|
|
117 |
[System.Runtime.Serialization.OptionalFieldAttribute()] |
|
118 |
private string modifiedField; |
|
119 |
|
|
120 |
[System.Runtime.Serialization.OptionalFieldAttribute()] |
|
121 |
private string modifiedByField; |
|
122 |
|
|
123 |
[System.Runtime.Serialization.OptionalFieldAttribute()] |
|
124 |
private string modifiedByNameField; |
|
125 |
|
|
126 |
[global::System.ComponentModel.BrowsableAttribute(false)] |
|
127 |
public System.Runtime.Serialization.ExtensionDataObject ExtensionData { |
|
128 |
get { |
|
129 |
return this.extensionDataField; |
|
130 |
} |
|
131 |
set { |
|
132 |
this.extensionDataField = value; |
|
133 |
} |
|
134 |
} |
|
135 |
|
|
136 |
[System.Runtime.Serialization.DataMemberAttribute()] |
|
137 |
public string comment { |
|
138 |
get { |
|
139 |
return this.commentField; |
|
140 |
} |
|
141 |
set { |
|
142 |
if ((object.ReferenceEquals(this.commentField, value) != true)) { |
|
143 |
this.commentField = value; |
|
144 |
this.RaisePropertyChanged("comment"); |
|
145 |
} |
|
146 |
} |
|
147 |
} |
|
148 |
|
|
149 |
[System.Runtime.Serialization.DataMemberAttribute()] |
|
150 |
public string created { |
|
151 |
get { |
|
152 |
return this.createdField; |
|
153 |
} |
|
154 |
set { |
|
155 |
if ((object.ReferenceEquals(this.createdField, value) != true)) { |
|
156 |
this.createdField = value; |
|
157 |
this.RaisePropertyChanged("created"); |
|
158 |
} |
|
159 |
} |
|
160 |
} |
|
161 |
|
|
162 |
[System.Runtime.Serialization.DataMemberAttribute()] |
|
163 |
public string createdBy { |
|
164 |
get { |
|
165 |
return this.createdByField; |
|
166 |
} |
|
167 |
set { |
|
168 |
if ((object.ReferenceEquals(this.createdByField, value) != true)) { |
|
169 |
this.createdByField = value; |
|
170 |
this.RaisePropertyChanged("createdBy"); |
|
171 |
} |
|
172 |
} |
|
173 |
} |
|
174 |
|
|
175 |
[System.Runtime.Serialization.DataMemberAttribute()] |
|
176 |
public string createdByName { |
|
177 |
get { |
|
178 |
return this.createdByNameField; |
|
179 |
} |
|
180 |
set { |
|
181 |
if ((object.ReferenceEquals(this.createdByNameField, value) != true)) { |
|
182 |
this.createdByNameField = value; |
|
183 |
this.RaisePropertyChanged("createdByName"); |
|
184 |
} |
|
185 |
} |
|
186 |
} |
|
187 |
|
|
188 |
[System.Runtime.Serialization.DataMemberAttribute()] |
|
189 |
public string id { |
|
190 |
get { |
|
191 |
return this.idField; |
|
192 |
} |
|
193 |
set { |
|
194 |
if ((object.ReferenceEquals(this.idField, value) != true)) { |
|
195 |
this.idField = value; |
|
196 |
this.RaisePropertyChanged("id"); |
|
197 |
} |
|
198 |
} |
|
199 |
} |
|
200 |
|
|
201 |
[System.Runtime.Serialization.DataMemberAttribute()] |
|
202 |
public string modified { |
|
203 |
get { |
|
204 |
return this.modifiedField; |
|
205 |
} |
|
206 |
set { |
|
207 |
if ((object.ReferenceEquals(this.modifiedField, value) != true)) { |
|
208 |
this.modifiedField = value; |
|
209 |
this.RaisePropertyChanged("modified"); |
|
210 |
} |
|
211 |
} |
|
212 |
} |
|
213 |
|
|
214 |
[System.Runtime.Serialization.DataMemberAttribute()] |
|
215 |
public string modifiedBy { |
|
216 |
get { |
|
217 |
return this.modifiedByField; |
|
218 |
} |
|
219 |
set { |
|
220 |
if ((object.ReferenceEquals(this.modifiedByField, value) != true)) { |
|
221 |
this.modifiedByField = value; |
|
222 |
this.RaisePropertyChanged("modifiedBy"); |
|
223 |
} |
|
224 |
} |
|
225 |
} |
|
226 |
|
|
227 |
[System.Runtime.Serialization.DataMemberAttribute()] |
|
228 |
public string modifiedByName { |
|
229 |
get { |
|
230 |
return this.modifiedByNameField; |
|
231 |
} |
|
232 |
set { |
|
233 |
if ((object.ReferenceEquals(this.modifiedByNameField, value) != true)) { |
|
234 |
this.modifiedByNameField = value; |
|
235 |
this.RaisePropertyChanged("modifiedByName"); |
|
236 |
} |
|
237 |
} |
|
238 |
} |
|
239 |
|
|
240 |
public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; |
|
241 |
|
|
242 |
protected void RaisePropertyChanged(string propertyName) { |
|
243 |
System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; |
|
244 |
if ((propertyChanged != null)) { |
|
245 |
propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); |
|
246 |
} |
|
247 |
} |
|
248 |
} |
|
249 |
|
|
250 |
[System.Diagnostics.DebuggerStepThroughAttribute()] |
|
251 |
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")] |
|
252 |
[System.Runtime.Serialization.DataContractAttribute(Name="DocumentInfo", Namespace="http://schemas.datacontract.org/2004/07/PemssAPI.DataModel")] |
|
253 |
[System.SerializableAttribute()] |
|
254 |
public partial class DocumentInfo : object, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged { |
|
255 |
|
|
256 |
[System.NonSerializedAttribute()] |
|
257 |
private System.Runtime.Serialization.ExtensionDataObject extensionDataField; |
|
258 |
|
|
259 |
[System.Runtime.Serialization.OptionalFieldAttribute()] |
|
260 |
private int dIdField; |
|
261 |
|
|
262 |
[System.Runtime.Serialization.OptionalFieldAttribute()] |
|
263 |
private string docNameField; |
|
264 |
|
|
265 |
[System.Runtime.Serialization.OptionalFieldAttribute()] |
|
266 |
private string fileNameField; |
|
267 |
|
|
268 |
[System.Runtime.Serialization.OptionalFieldAttribute()] |
|
269 |
private string revisionField; |
|
270 |
|
|
271 |
[System.Runtime.Serialization.OptionalFieldAttribute()] |
|
272 |
private string slipNoField; |
|
273 |
|
|
274 |
[global::System.ComponentModel.BrowsableAttribute(false)] |
|
275 |
public System.Runtime.Serialization.ExtensionDataObject ExtensionData { |
|
276 |
get { |
|
277 |
return this.extensionDataField; |
|
278 |
} |
|
279 |
set { |
|
280 |
this.extensionDataField = value; |
|
281 |
} |
|
282 |
} |
|
283 |
|
|
284 |
[System.Runtime.Serialization.DataMemberAttribute()] |
|
285 |
public int dId { |
|
286 |
get { |
|
287 |
return this.dIdField; |
|
288 |
} |
|
289 |
set { |
|
290 |
if ((this.dIdField.Equals(value) != true)) { |
|
291 |
this.dIdField = value; |
|
292 |
this.RaisePropertyChanged("dId"); |
|
293 |
} |
|
294 |
} |
|
295 |
} |
|
296 |
|
|
297 |
[System.Runtime.Serialization.DataMemberAttribute()] |
|
298 |
public string docName { |
|
299 |
get { |
|
300 |
return this.docNameField; |
|
301 |
} |
|
302 |
set { |
|
303 |
if ((object.ReferenceEquals(this.docNameField, value) != true)) { |
|
304 |
this.docNameField = value; |
|
305 |
this.RaisePropertyChanged("docName"); |
|
306 |
} |
|
307 |
} |
|
308 |
} |
|
309 |
|
|
310 |
[System.Runtime.Serialization.DataMemberAttribute()] |
|
311 |
public string fileName { |
|
312 |
get { |
|
313 |
return this.fileNameField; |
|
314 |
} |
|
315 |
set { |
내보내기 Unified diff