개정판 f3ab410f
markus 화살표텍스트박스 수정
Change-Id: Ia91a1979b4dbc5c612e44372eeff654eb48d8fd8
FinalService/KCOM_FinalService/KCOM_FinalServiceConsole/packages.config | ||
---|---|---|
1 |
<?xml version="1.0" encoding="utf-8"?> |
|
2 |
<packages> |
|
3 |
<package id="log4net" version="2.0.11" targetFramework="net461" /> |
|
4 |
</packages> |
FinalService/KCOM_FinalService/UploadFinal/UploadFinal_Daelim.csproj | ||
---|---|---|
1 |
<?xml version="1.0" encoding="utf-8"?> |
|
2 |
<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> |
|
3 |
<PropertyGroup> |
|
4 |
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> |
|
5 |
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> |
|
6 |
<ProductVersion>8.0.30703</ProductVersion> |
|
7 |
<SchemaVersion>2.0</SchemaVersion> |
|
8 |
<ProjectGuid>{9CF3737A-E04D-4A55-924E-C88725DFBEC7}</ProjectGuid> |
|
9 |
<OutputType>Library</OutputType> |
|
10 |
<AppDesignerFolder>Properties</AppDesignerFolder> |
|
11 |
<RootNamespace>UploadFinal</RootNamespace> |
|
12 |
<AssemblyName>UploadFinal</AssemblyName> |
|
13 |
<TargetFrameworkVersion>v4.6.1</TargetFrameworkVersion> |
|
14 |
<FileAlignment>512</FileAlignment> |
|
15 |
<TargetFrameworkProfile> |
|
16 |
</TargetFrameworkProfile> |
|
17 |
</PropertyGroup> |
|
18 |
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> |
|
19 |
<DebugSymbols>true</DebugSymbols> |
|
20 |
<DebugType>full</DebugType> |
|
21 |
<Optimize>false</Optimize> |
|
22 |
<OutputPath>bin\Debug\</OutputPath> |
|
23 |
<DefineConstants>DEBUG;TRACE</DefineConstants> |
|
24 |
<ErrorReport>prompt</ErrorReport> |
|
25 |
<WarningLevel>4</WarningLevel> |
|
26 |
<Prefer32Bit>false</Prefer32Bit> |
|
27 |
</PropertyGroup> |
|
28 |
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> |
|
29 |
<DebugType>pdbonly</DebugType> |
|
30 |
<Optimize>true</Optimize> |
|
31 |
<OutputPath>..\..\..\Setup\FinalService\</OutputPath> |
|
32 |
<DefineConstants>TRACE</DefineConstants> |
|
33 |
<ErrorReport>prompt</ErrorReport> |
|
34 |
<WarningLevel>4</WarningLevel> |
|
35 |
<Prefer32Bit>false</Prefer32Bit> |
|
36 |
</PropertyGroup> |
|
37 |
<PropertyGroup> |
|
38 |
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects> |
|
39 |
</PropertyGroup> |
|
40 |
<ItemGroup> |
|
41 |
<Reference Include="System" /> |
|
42 |
<Reference Include="System.Core" /> |
|
43 |
<Reference Include="System.Data.Entity" /> |
|
44 |
<Reference Include="System.Runtime.Serialization" /> |
|
45 |
<Reference Include="System.ServiceModel" /> |
|
46 |
<Reference Include="System.Web" /> |
|
47 |
<Reference Include="System.Xml.Linq" /> |
|
48 |
<Reference Include="System.Data.DataSetExtensions" /> |
|
49 |
<Reference Include="Microsoft.CSharp" /> |
|
50 |
<Reference Include="System.Data" /> |
|
51 |
<Reference Include="System.Xml" /> |
|
52 |
</ItemGroup> |
|
53 |
<ItemGroup> |
|
54 |
<Compile Include="UploadPDF.cs" /> |
|
55 |
<None Include="app.config" /> |
|
56 |
<Compile Include="Properties\AssemblyInfo.cs" /> |
|
57 |
</ItemGroup> |
|
58 |
<ItemGroup> |
|
59 |
<WCFMetadata Include="Service References\" /> |
|
60 |
</ItemGroup> |
|
61 |
<ItemGroup> |
|
62 |
<ProjectReference Include="..\CommonLib\CommonLib.csproj"> |
|
63 |
<Project>{ee9aaabc-1678-43a4-878e-cedbb577cf01}</Project> |
|
64 |
<Name>CommonLib</Name> |
|
65 |
</ProjectReference> |
|
66 |
<ProjectReference Include="..\KCOMDataModel\KCOMDataModel.csproj"> |
|
67 |
<Project>{629dc8cd-d458-47ef-8f02-cd12c7001c3e}</Project> |
|
68 |
<Name>KCOMDataModel</Name> |
|
69 |
</ProjectReference> |
|
70 |
<ProjectReference Include="..\MarkupToPDF\MarkupToPDF.csproj"> |
|
71 |
<Project>{a714bd67-8aac-4ed8-8ecf-7853c3549a68}</Project> |
|
72 |
<Name>MarkupToPDF</Name> |
|
73 |
</ProjectReference> |
|
74 |
</ItemGroup> |
|
75 |
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" /> |
|
76 |
<!-- test |
|
77 |
To modify your build process, add your task inside one of the targets below and uncomment it. |
|
78 |
Other similar extension points exist, see Microsoft.Common.targets. |
|
79 |
<Target Name="BeforeBuild"> |
|
80 |
</Target> |
|
81 |
<Target Name="AfterBuild"> |
|
82 |
</Target> |
|
83 |
--> |
|
84 |
</Project> |
FinalService/KCOM_FinalService/UploadTest/App.config | ||
---|---|---|
1 |
<?xml version="1.0" encoding="utf-8" ?> |
|
2 |
<configuration> |
|
3 |
<startup> |
|
4 |
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.1" /> |
|
5 |
</startup> |
|
6 |
</configuration> |
FinalService/KCOM_FinalService/UploadTest/App.xaml | ||
---|---|---|
1 |
<Application x:Class="UploadTest.App" |
|
2 |
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" |
|
3 |
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" |
|
4 |
xmlns:local="clr-namespace:UploadTest" |
|
5 |
StartupUri="MainWindow.xaml"> |
|
6 |
<Application.Resources> |
|
7 |
|
|
8 |
</Application.Resources> |
|
9 |
</Application> |
FinalService/KCOM_FinalService/UploadTest/App.xaml.cs | ||
---|---|---|
1 |
using System; |
|
2 |
using System.Collections.Generic; |
|
3 |
using System.Configuration; |
|
4 |
using System.Data; |
|
5 |
using System.Linq; |
|
6 |
using System.Threading.Tasks; |
|
7 |
using System.Windows; |
|
8 |
|
|
9 |
namespace UploadTest |
|
10 |
{ |
|
11 |
/// <summary> |
|
12 |
/// App.xaml에 대한 상호 작용 논리 |
|
13 |
/// </summary> |
|
14 |
public partial class App : Application |
|
15 |
{ |
|
16 |
} |
|
17 |
} |
FinalService/KCOM_FinalService/UploadTest/MainWindow.xaml | ||
---|---|---|
1 |
<Window x:Class="UploadTest.MainWindow" |
|
2 |
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" |
|
3 |
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" |
|
4 |
xmlns:d="http://schemas.microsoft.com/expression/blend/2008" |
|
5 |
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" |
|
6 |
xmlns:local="clr-namespace:UploadTest" |
|
7 |
mc:Ignorable="d" |
|
8 |
Title="MainWindow" Height="450" Width="800"> |
|
9 |
<Grid> |
|
10 |
<Grid.RowDefinitions> |
|
11 |
<RowDefinition Height="Auto"/> |
|
12 |
<RowDefinition Height="Auto"/> |
|
13 |
<RowDefinition Height="Auto"/> |
|
14 |
<RowDefinition Height="*"/> |
|
15 |
</Grid.RowDefinitions> |
|
16 |
<StackPanel Orientation="Horizontal" HorizontalAlignment="Left" Margin="2"> |
|
17 |
<TextBlock Width="100" TextAlignment="Right" Text="FinalPDF ID"/> |
|
18 |
<TextBlock Width="10" Text=" : "/> |
|
19 |
<TextBox MinWidth="200" Name="tbFinalPDFID"/> |
|
20 |
<Button Content="Call" HorizontalAlignment="Right" Width="100" Margin="2" Click="Button_Click"/> |
|
21 |
</StackPanel> |
|
22 |
<StackPanel Orientation="Horizontal" HorizontalAlignment="Left" Margin="2" Grid.Row="1"> |
|
23 |
<TextBlock Width="100" TextAlignment="Right" Text="Remote File Path"/> |
|
24 |
<TextBlock Width="10" Text=" : "/> |
|
25 |
<TextBox MinWidth="200" Name="tbRemoteFilePath"/> |
|
26 |
</StackPanel> |
|
27 |
<StackPanel Orientation="Horizontal" HorizontalAlignment="Left" Margin="2" Grid.Row="2"> |
|
28 |
<TextBlock Width="100" TextAlignment="Right" Text="Upload Service Url"/> |
|
29 |
<TextBlock Width="10" Text=" : "/> |
|
30 |
<TextBox MinWidth="200" Name="tbServiceUri"/> |
|
31 |
</StackPanel> |
|
32 |
<TextBox Grid.Row="3" Name="tbLog" AcceptsReturn="True"/> |
|
33 |
</Grid> |
|
34 |
</Window> |
FinalService/KCOM_FinalService/UploadTest/MainWindow.xaml.cs | ||
---|---|---|
1 |
using KCOMDataModel.Common; |
|
2 |
using KCOMDataModel.DataModel; |
|
3 |
using System; |
|
4 |
using System.Collections.Generic; |
|
5 |
using System.Linq; |
|
6 |
using System.Text; |
|
7 |
using System.Threading.Tasks; |
|
8 |
using System.Web; |
|
9 |
using System.Windows; |
|
10 |
using System.Windows.Controls; |
|
11 |
using System.Windows.Data; |
|
12 |
using System.Windows.Documents; |
|
13 |
using System.Windows.Input; |
|
14 |
using System.Windows.Media; |
|
15 |
using System.Windows.Media.Imaging; |
|
16 |
using System.Windows.Navigation; |
|
17 |
using System.Windows.Shapes; |
|
18 |
|
|
19 |
namespace UploadTest |
|
20 |
{ |
|
21 |
/// <summary> |
|
22 |
/// MainWindow.xaml에 대한 상호 작용 논리 |
|
23 |
/// </summary> |
|
24 |
public partial class MainWindow : Window |
|
25 |
{ |
|
26 |
public MainWindow() |
|
27 |
{ |
|
28 |
InitializeComponent(); |
|
29 |
} |
|
30 |
|
|
31 |
private void Button_Click(object sender, RoutedEventArgs e) |
|
32 |
{ |
|
33 |
try |
|
34 |
{ |
|
35 |
|
|
36 |
UploadCall(); |
|
37 |
} |
|
38 |
catch (Exception ex) |
|
39 |
{ |
|
40 |
LogWrite(ex.ToString()); |
|
41 |
|
|
42 |
if(ex.InnerException != null) |
|
43 |
{ |
|
44 |
LogWrite(ex.InnerException.ToString()); |
|
45 |
} |
|
46 |
} |
|
47 |
} |
|
48 |
|
|
49 |
private void UploadCall() |
|
50 |
{ |
|
51 |
if(string.IsNullOrEmpty(tbFinalPDFID.Text)) |
|
52 |
{ |
|
53 |
LogWrite("final id null."); |
|
54 |
return; |
|
55 |
} |
|
56 |
|
|
57 |
if (string.IsNullOrEmpty(tbRemoteFilePath.Text)) |
|
58 |
{ |
|
59 |
LogWrite("remote file path null."); |
|
60 |
return; |
|
61 |
} |
|
62 |
|
|
63 |
if (string.IsNullOrEmpty(tbServiceUri.Text)) |
|
64 |
{ |
|
65 |
LogWrite("service url null."); |
|
66 |
return; |
|
67 |
} |
|
68 |
|
|
69 |
LogWrite("Kcom Connection String : " + ConnectStringBuilder.KCOMConnectionString().ConnectionString); |
|
70 |
|
|
71 |
using (KCOMEntities entity = new KCOMEntities(ConnectStringBuilder.KCOMConnectionString().ToString())) |
|
72 |
{ |
|
73 |
var items = entity.FINAL_PDF.Where(x => x.ID == tbFinalPDFID.Text); |
|
74 |
|
|
75 |
if(items.Count() > 0) |
|
76 |
{ |
|
77 |
var item = items.First(); |
|
78 |
string filename = ""; |
|
79 |
|
|
80 |
LogWrite("CI Connection String : " + ConnectStringBuilder.ProjectCIConnectString(item.PROJECT_NO).ConnectionString); |
|
81 |
|
|
82 |
using (CIEntities dc = new CIEntities(ConnectStringBuilder.ProjectCIConnectString(item.PROJECT_NO).ToString())) |
|
83 |
{ |
|
84 |
var _docInfoList = dc.DOCINFO.Where(doc => doc.ID == item.DOCINFO_ID); |
|
85 |
|
|
86 |
if (_docInfoList.Count() > 0) |
|
87 |
{ |
|
88 |
var file = _docInfoList.First().ORIGINAL_FILE; |
|
89 |
|
|
90 |
var decodeFile = System.Web.HttpUtility.UrlDecode(file); |
|
91 |
|
|
92 |
if (System.Web.HttpUtility.ParseQueryString(decodeFile).AllKeys.Count(x => x.ToLower() == ("filename").ToLower()) > 0) |
|
93 |
{ |
|
94 |
filename = System.Web.HttpUtility.ParseQueryString(decodeFile).Get("filename"); |
|
95 |
} |
|
96 |
else |
|
97 |
{ |
|
98 |
filename = decodeFile.Split('/').Last(); |
|
99 |
} |
|
100 |
} |
|
101 |
} |
|
102 |
|
|
103 |
LogWrite("ORIGINAL_FILE : " + filename); |
|
104 |
|
|
105 |
var result = UploadFinal.UploadFinal.UploadFinalPDF(tbRemoteFilePath.Text, filename, items.First(), tbServiceUri.Text); |
|
106 |
|
|
107 |
LogWrite("result : " + result.Value); |
|
108 |
} |
|
109 |
else |
|
110 |
{ |
|
111 |
LogWrite("final item not found."); |
|
112 |
} |
|
113 |
} |
|
114 |
} |
|
115 |
|
|
116 |
StringBuilder builder = new StringBuilder(); |
|
117 |
|
|
118 |
private void LogWrite(string Msg) |
|
119 |
{ |
|
120 |
builder.AppendLine(Msg); |
|
121 |
tbLog.Text = builder.ToString(); |
|
122 |
} |
|
123 |
} |
|
124 |
} |
FinalService/KCOM_FinalService/UploadTest/Properties/AssemblyInfo.cs | ||
---|---|---|
1 |
using System.Reflection; |
|
2 |
using System.Resources; |
|
3 |
using System.Runtime.CompilerServices; |
|
4 |
using System.Runtime.InteropServices; |
|
5 |
using System.Windows; |
|
6 |
|
|
7 |
// 어셈블리에 대한 일반 정보는 다음 특성 집합을 통해 |
|
8 |
// 제어됩니다. 어셈블리와 관련된 정보를 수정하려면 |
|
9 |
// 이러한 특성 값을 변경하세요. |
|
10 |
[assembly: AssemblyTitle("UploadTest")] |
|
11 |
[assembly: AssemblyDescription("")] |
|
12 |
[assembly: AssemblyConfiguration("")] |
|
13 |
[assembly: AssemblyCompany("")] |
|
14 |
[assembly: AssemblyProduct("UploadTest")] |
|
15 |
[assembly: AssemblyCopyright("Copyright © 2020")] |
|
16 |
[assembly: AssemblyTrademark("")] |
|
17 |
[assembly: AssemblyCulture("")] |
|
18 |
|
|
19 |
// ComVisible을 false로 설정하면 이 어셈블리의 형식이 COM 구성 요소에 |
|
20 |
// 표시되지 않습니다. COM에서 이 어셈블리의 형식에 액세스하려면 |
|
21 |
// 해당 형식에 대해 ComVisible 특성을 true로 설정하세요. |
|
22 |
[assembly: ComVisible(false)] |
|
23 |
|
|
24 |
//지역화 가능 응용 프로그램 빌드를 시작하려면 다음을 설정하세요. |
|
25 |
//.csproj 파일에서 <PropertyGroup> 내에 <UICulture>CultureYouAreCodingWith</UICulture>를 |
|
26 |
//설정하십시오. 예를 들어 소스 파일에서 영어(미국)를 |
|
27 |
//사용하는 경우 <UICulture>를 en-US로 설정합니다. 그런 다음 아래 |
|
28 |
//NeutralResourceLanguage 특성의 주석 처리를 제거합니다. 아래 줄의 "en-US"를 업데이트하여 |
|
29 |
//프로젝트 파일의 UICulture 설정과 일치시킵니다. |
|
30 |
|
|
31 |
//[assembly: NeutralResourcesLanguage("en-US", UltimateResourceFallbackLocation.Satellite)] |
|
32 |
|
|
33 |
|
|
34 |
[assembly: ThemeInfo( |
|
35 |
ResourceDictionaryLocation.None, //테마별 리소스 사전의 위치 |
|
36 |
//(페이지 또는 응용 프로그램 리소스 사진에 |
|
37 |
// 리소스가 없는 경우에 사용됨) |
|
38 |
ResourceDictionaryLocation.SourceAssembly //제네릭 리소스 사전의 위치 |
|
39 |
//(페이지 또는 응용 프로그램 리소스 사진에 |
|
40 |
// 리소스가 없는 경우에 사용됨) |
|
41 |
)] |
|
42 |
|
|
43 |
|
|
44 |
// 어셈블리의 버전 정보는 다음 네 가지 값으로 구성됩니다. |
|
45 |
// |
|
46 |
// 주 버전 |
|
47 |
// 부 버전 |
|
48 |
// 빌드 번호 |
|
49 |
// 수정 버전 |
|
50 |
// |
|
51 |
// 모든 값을 지정하거나 아래와 같이 '*'를 사용하여 빌드 번호 및 수정 번호가 자동으로 |
|
52 |
// 지정되도록 할 수 있습니다. |
|
53 |
// [assembly: AssemblyVersion("1.0.*")] |
|
54 |
[assembly: AssemblyVersion("1.0.0.0")] |
|
55 |
[assembly: AssemblyFileVersion("1.0.0.0")] |
FinalService/KCOM_FinalService/UploadTest/Properties/Resources.Designer.cs | ||
---|---|---|
1 |
//------------------------------------------------------------------------------ |
|
2 |
// <auto-generated> |
|
3 |
// 이 코드는 도구를 사용하여 생성되었습니다. |
|
4 |
// 런타임 버전:4.0.30319.42000 |
|
5 |
// |
|
6 |
// 파일 내용을 변경하면 잘못된 동작이 발생할 수 있으며, 코드를 다시 생성하면 |
|
7 |
// 이러한 변경 내용이 손실됩니다. |
|
8 |
// </auto-generated> |
|
9 |
//------------------------------------------------------------------------------ |
|
10 |
|
|
11 |
namespace UploadTest.Properties |
|
12 |
{ |
|
13 |
|
|
14 |
|
|
15 |
/// <summary> |
|
16 |
/// 지역화된 문자열 등을 찾기 위한 강력한 형식의 리소스 클래스입니다. |
|
17 |
/// </summary> |
|
18 |
// 이 클래스는 ResGen 또는 Visual Studio와 같은 도구를 통해 StronglyTypedResourceBuilder |
|
19 |
// 클래스에서 자동으로 생성되었습니다. |
|
20 |
// 멤버를 추가하거나 제거하려면 .ResX 파일을 편집한 다음 /str 옵션을 사용하여 |
|
21 |
// ResGen을 다시 실행하거나 VS 프로젝트를 다시 빌드하십시오. |
|
22 |
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] |
|
23 |
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()] |
|
24 |
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] |
|
25 |
internal class Resources |
|
26 |
{ |
|
27 |
|
|
28 |
private static global::System.Resources.ResourceManager resourceMan; |
|
29 |
|
|
30 |
private static global::System.Globalization.CultureInfo resourceCulture; |
|
31 |
|
|
32 |
[global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] |
|
33 |
internal Resources() |
|
34 |
{ |
|
35 |
} |
|
36 |
|
|
37 |
/// <summary> |
|
38 |
/// 이 클래스에서 사용하는 캐시된 ResourceManager 인스턴스를 반환합니다. |
|
39 |
/// </summary> |
|
40 |
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] |
|
41 |
internal static global::System.Resources.ResourceManager ResourceManager |
|
42 |
{ |
|
43 |
get |
|
44 |
{ |
|
45 |
if ((resourceMan == null)) |
|
46 |
{ |
|
47 |
global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("UploadTest.Properties.Resources", typeof(Resources).Assembly); |
|
48 |
resourceMan = temp; |
|
49 |
} |
|
50 |
return resourceMan; |
|
51 |
} |
|
52 |
} |
|
53 |
|
|
54 |
/// <summary> |
|
55 |
/// 이 강력한 형식의 리소스 클래스를 사용하여 모든 리소스 조회에 대해 현재 스레드의 CurrentUICulture 속성을 |
|
56 |
/// 재정의합니다. |
|
57 |
/// </summary> |
|
58 |
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] |
|
59 |
internal static global::System.Globalization.CultureInfo Culture |
|
60 |
{ |
|
61 |
get |
|
62 |
{ |
|
63 |
return resourceCulture; |
|
64 |
} |
|
65 |
set |
|
66 |
{ |
|
67 |
resourceCulture = value; |
|
68 |
} |
|
69 |
} |
|
70 |
} |
|
71 |
} |
FinalService/KCOM_FinalService/UploadTest/Properties/Resources.resx | ||
---|---|---|
1 |
<?xml version="1.0" encoding="utf-8"?> |
|
2 |
<root> |
|
3 |
<!-- |
|
4 |
Microsoft ResX Schema |
|
5 |
|
|
6 |
Version 2.0 |
|
7 |
|
|
8 |
The primary goals of this format is to allow a simple XML format |
|
9 |
that is mostly human readable. The generation and parsing of the |
|
10 |
various data types are done through the TypeConverter classes |
|
11 |
associated with the data types. |
|
12 |
|
|
13 |
Example: |
|
14 |
|
|
15 |
... ado.net/XML headers & schema ... |
|
16 |
<resheader name="resmimetype">text/microsoft-resx</resheader> |
|
17 |
<resheader name="version">2.0</resheader> |
|
18 |
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader> |
|
19 |
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader> |
|
20 |
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data> |
|
21 |
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data> |
|
22 |
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64"> |
|
23 |
<value>[base64 mime encoded serialized .NET Framework object]</value> |
|
24 |
</data> |
|
25 |
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> |
|
26 |
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value> |
|
27 |
<comment>This is a comment</comment> |
|
28 |
</data> |
|
29 |
|
|
30 |
There are any number of "resheader" rows that contain simple |
|
31 |
name/value pairs. |
|
32 |
|
|
33 |
Each data row contains a name, and value. The row also contains a |
|
34 |
type or mimetype. Type corresponds to a .NET class that support |
|
35 |
text/value conversion through the TypeConverter architecture. |
|
36 |
Classes that don't support this are serialized and stored with the |
|
37 |
mimetype set. |
|
38 |
|
|
39 |
The mimetype is used for serialized objects, and tells the |
|
40 |
ResXResourceReader how to depersist the object. This is currently not |
|
41 |
extensible. For a given mimetype the value must be set accordingly: |
|
42 |
|
|
43 |
Note - application/x-microsoft.net.object.binary.base64 is the format |
|
44 |
that the ResXResourceWriter will generate, however the reader can |
|
45 |
read any of the formats listed below. |
|
46 |
|
|
47 |
mimetype: application/x-microsoft.net.object.binary.base64 |
|
48 |
value : The object must be serialized with |
|
49 |
: System.Serialization.Formatters.Binary.BinaryFormatter |
|
50 |
: and then encoded with base64 encoding. |
|
51 |
|
|
52 |
mimetype: application/x-microsoft.net.object.soap.base64 |
|
53 |
value : The object must be serialized with |
|
54 |
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter |
|
55 |
: and then encoded with base64 encoding. |
|
56 |
|
|
57 |
mimetype: application/x-microsoft.net.object.bytearray.base64 |
|
58 |
value : The object must be serialized into a byte array |
|
59 |
: using a System.ComponentModel.TypeConverter |
|
60 |
: and then encoded with base64 encoding. |
|
61 |
--> |
|
62 |
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata"> |
|
63 |
<xsd:element name="root" msdata:IsDataSet="true"> |
|
64 |
<xsd:complexType> |
|
65 |
<xsd:choice maxOccurs="unbounded"> |
|
66 |
<xsd:element name="metadata"> |
|
67 |
<xsd:complexType> |
|
68 |
<xsd:sequence> |
|
69 |
<xsd:element name="value" type="xsd:string" minOccurs="0" /> |
|
70 |
</xsd:sequence> |
|
71 |
<xsd:attribute name="name" type="xsd:string" /> |
|
72 |
<xsd:attribute name="type" type="xsd:string" /> |
|
73 |
<xsd:attribute name="mimetype" type="xsd:string" /> |
|
74 |
</xsd:complexType> |
|
75 |
</xsd:element> |
|
76 |
<xsd:element name="assembly"> |
|
77 |
<xsd:complexType> |
|
78 |
<xsd:attribute name="alias" type="xsd:string" /> |
|
79 |
<xsd:attribute name="name" type="xsd:string" /> |
|
80 |
</xsd:complexType> |
|
81 |
</xsd:element> |
|
82 |
<xsd:element name="data"> |
|
83 |
<xsd:complexType> |
|
84 |
<xsd:sequence> |
|
85 |
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> |
|
86 |
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" /> |
|
87 |
</xsd:sequence> |
|
88 |
<xsd:attribute name="name" type="xsd:string" msdata:Ordinal="1" /> |
|
89 |
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" /> |
|
90 |
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" /> |
|
91 |
</xsd:complexType> |
|
92 |
</xsd:element> |
|
93 |
<xsd:element name="resheader"> |
|
94 |
<xsd:complexType> |
|
95 |
<xsd:sequence> |
|
96 |
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> |
|
97 |
</xsd:sequence> |
|
98 |
<xsd:attribute name="name" type="xsd:string" use="required" /> |
|
99 |
</xsd:complexType> |
|
100 |
</xsd:element> |
|
101 |
</xsd:choice> |
|
102 |
</xsd:complexType> |
|
103 |
</xsd:element> |
|
104 |
</xsd:schema> |
|
105 |
<resheader name="resmimetype"> |
|
106 |
<value>text/microsoft-resx</value> |
|
107 |
</resheader> |
|
108 |
<resheader name="version"> |
|
109 |
<value>2.0</value> |
|
110 |
</resheader> |
|
111 |
<resheader name="reader"> |
|
112 |
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> |
|
113 |
</resheader> |
|
114 |
<resheader name="writer"> |
|
115 |
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> |
|
116 |
</resheader> |
|
117 |
</root> |
FinalService/KCOM_FinalService/UploadTest/Properties/Settings.Designer.cs | ||
---|---|---|
1 |
//------------------------------------------------------------------------------ |
|
2 |
// <auto-generated> |
|
3 |
// This code was generated by a tool. |
|
4 |
// Runtime Version:4.0.30319.42000 |
|
5 |
// |
|
6 |
// Changes to this file may cause incorrect behavior and will be lost if |
|
7 |
// the code is regenerated. |
|
8 |
// </auto-generated> |
|
9 |
//------------------------------------------------------------------------------ |
|
10 |
|
|
11 |
namespace UploadTest.Properties |
|
12 |
{ |
|
13 |
|
|
14 |
|
|
15 |
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] |
|
16 |
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")] |
|
17 |
internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase |
|
18 |
{ |
|
19 |
|
|
20 |
private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); |
|
21 |
|
|
22 |
public static Settings Default |
|
23 |
{ |
|
24 |
get |
|
25 |
{ |
|
26 |
return defaultInstance; |
|
27 |
} |
|
28 |
} |
|
29 |
} |
|
30 |
} |
FinalService/KCOM_FinalService/UploadTest/Properties/Settings.settings | ||
---|---|---|
1 |
<?xml version='1.0' encoding='utf-8'?> |
|
2 |
<SettingsFile xmlns="uri:settings" CurrentProfile="(Default)"> |
|
3 |
<Profiles> |
|
4 |
<Profile Name="(Default)" /> |
|
5 |
</Profiles> |
|
6 |
<Settings /> |
|
7 |
</SettingsFile> |
FinalService/KCOM_FinalService/UploadTest/UploadTest.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>{9F2A21D2-979E-4F9A-9BF1-F7460A80CF11}</ProjectGuid> |
|
8 |
<OutputType>WinExe</OutputType> |
|
9 |
<RootNamespace>UploadTest</RootNamespace> |
|
10 |
<AssemblyName>UploadTest</AssemblyName> |
|
11 |
<TargetFrameworkVersion>v4.6.1</TargetFrameworkVersion> |
|
12 |
<FileAlignment>512</FileAlignment> |
|
13 |
<ProjectTypeGuids>{60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids> |
|
14 |
<WarningLevel>4</WarningLevel> |
|
15 |
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects> |
|
16 |
<Deterministic>true</Deterministic> |
|
17 |
</PropertyGroup> |
|
18 |
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> |
|
19 |
<PlatformTarget>AnyCPU</PlatformTarget> |
|
20 |
<DebugSymbols>true</DebugSymbols> |
|
21 |
<DebugType>full</DebugType> |
|
22 |
<Optimize>false</Optimize> |
|
23 |
<OutputPath>bin\Debug\</OutputPath> |
|
24 |
<DefineConstants>DEBUG;TRACE</DefineConstants> |
|
25 |
<ErrorReport>prompt</ErrorReport> |
|
26 |
<WarningLevel>4</WarningLevel> |
|
27 |
</PropertyGroup> |
|
28 |
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> |
|
29 |
<PlatformTarget>AnyCPU</PlatformTarget> |
|
30 |
<DebugType>pdbonly</DebugType> |
|
31 |
<Optimize>true</Optimize> |
|
32 |
<OutputPath>bin\Release\</OutputPath> |
|
33 |
<DefineConstants>TRACE</DefineConstants> |
|
34 |
<ErrorReport>prompt</ErrorReport> |
|
35 |
<WarningLevel>4</WarningLevel> |
|
36 |
</PropertyGroup> |
|
37 |
<ItemGroup> |
|
38 |
<Reference Include="System" /> |
|
39 |
<Reference Include="System.Data" /> |
|
40 |
<Reference Include="System.Data.Entity" /> |
|
41 |
<Reference Include="System.Web" /> |
|
42 |
<Reference Include="System.Xml" /> |
|
43 |
<Reference Include="Microsoft.CSharp" /> |
|
44 |
<Reference Include="System.Core" /> |
|
45 |
<Reference Include="System.Xml.Linq" /> |
|
46 |
<Reference Include="System.Data.DataSetExtensions" /> |
|
47 |
<Reference Include="System.Net.Http" /> |
|
48 |
<Reference Include="System.Xaml"> |
|
49 |
<RequiredTargetFramework>4.0</RequiredTargetFramework> |
|
50 |
</Reference> |
|
51 |
<Reference Include="WindowsBase" /> |
|
52 |
<Reference Include="PresentationCore" /> |
|
53 |
<Reference Include="PresentationFramework" /> |
|
54 |
</ItemGroup> |
|
55 |
<ItemGroup> |
|
56 |
<ApplicationDefinition Include="App.xaml"> |
|
57 |
<Generator>MSBuild:Compile</Generator> |
|
58 |
<SubType>Designer</SubType> |
|
59 |
</ApplicationDefinition> |
|
60 |
<Page Include="MainWindow.xaml"> |
|
61 |
<Generator>MSBuild:Compile</Generator> |
|
62 |
<SubType>Designer</SubType> |
|
63 |
</Page> |
|
64 |
<Compile Include="App.xaml.cs"> |
|
65 |
<DependentUpon>App.xaml</DependentUpon> |
|
66 |
<SubType>Code</SubType> |
|
67 |
</Compile> |
|
68 |
<Compile Include="MainWindow.xaml.cs"> |
|
69 |
<DependentUpon>MainWindow.xaml</DependentUpon> |
|
70 |
<SubType>Code</SubType> |
|
71 |
</Compile> |
|
72 |
</ItemGroup> |
|
73 |
<ItemGroup> |
|
74 |
<Compile Include="Properties\AssemblyInfo.cs"> |
|
75 |
<SubType>Code</SubType> |
|
76 |
</Compile> |
|
77 |
<Compile Include="Properties\Resources.Designer.cs"> |
|
78 |
<AutoGen>True</AutoGen> |
|
79 |
<DesignTime>True</DesignTime> |
|
80 |
<DependentUpon>Resources.resx</DependentUpon> |
|
81 |
</Compile> |
|
82 |
<Compile Include="Properties\Settings.Designer.cs"> |
|
83 |
<AutoGen>True</AutoGen> |
|
84 |
<DependentUpon>Settings.settings</DependentUpon> |
|
85 |
<DesignTimeSharedInput>True</DesignTimeSharedInput> |
|
86 |
</Compile> |
|
87 |
<EmbeddedResource Include="Properties\Resources.resx"> |
|
88 |
<Generator>ResXFileCodeGenerator</Generator> |
|
89 |
<LastGenOutput>Resources.Designer.cs</LastGenOutput> |
|
90 |
</EmbeddedResource> |
|
91 |
<None Include="Properties\Settings.settings"> |
|
92 |
<Generator>SettingsSingleFileGenerator</Generator> |
|
93 |
<LastGenOutput>Settings.Designer.cs</LastGenOutput> |
|
94 |
</None> |
|
95 |
</ItemGroup> |
|
96 |
<ItemGroup> |
|
97 |
<None Include="App.config" /> |
|
98 |
</ItemGroup> |
|
99 |
<ItemGroup> |
|
100 |
<ProjectReference Include="..\KCOMDataModel\KCOMDataModel.csproj"> |
|
101 |
<Project>{629dc8cd-d458-47ef-8f02-cd12c7001c3e}</Project> |
|
102 |
<Name>KCOMDataModel</Name> |
|
103 |
</ProjectReference> |
|
104 |
<ProjectReference Include="..\MarkupToPDF\MarkupToPDF.csproj"> |
|
105 |
<Project>{a714bd67-8aac-4ed8-8ecf-7853c3549a68}</Project> |
|
106 |
<Name>MarkupToPDF</Name> |
|
107 |
</ProjectReference> |
|
108 |
<ProjectReference Include="..\UploadFinal\UploadFinal_Daelim.csproj"> |
|
109 |
<Project>{9cf3737a-e04d-4a55-924e-c88725dfbec7}</Project> |
|
110 |
<Name>UploadFinal_Daelim</Name> |
|
111 |
</ProjectReference> |
|
112 |
</ItemGroup> |
|
113 |
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" /> |
|
114 |
</Project> |
KCOM/Common/MathHelper.cs | ||
---|---|---|
33 | 33 |
|
34 | 34 |
public static double ConvertToRadians(double angle) |
35 | 35 |
{ |
36 |
return (Math.PI / 180) * angle;
|
|
36 |
return (Math.PI / 360) * angle;
|
|
37 | 37 |
} |
38 | 38 |
|
39 |
public static Rect RotateRect(Rect rect,double angle) |
|
39 |
public static Rect RotateRect(Rect rect,Point Center,double angle)
|
|
40 | 40 |
{ |
41 |
Rect result = rect;
|
|
41 |
Rect rotateRect = rect;
|
|
42 | 42 |
|
43 |
Point[] cornerPoints = { rect.TopLeft, rect.TopRight, rect.BottomRight, rect.BottomLeft }; |
|
44 |
var m = new Matrix(); |
|
45 |
//define rotation around rect center |
|
46 |
m.RotateAt(45.0, rect.X + rect.Width / 2.0, rect.Y + rect.Height / 2.0); |
|
43 |
var centerPoint = new Point(rect.X,rect.Y); |
|
44 |
var rotationCenter = RotatePoint(centerPoint, Center, angle); |
|
47 | 45 |
|
48 |
//transform corner points |
|
49 |
m.Transform(cornerPoints); |
|
46 |
if (angle == 270 || angle == 90) |
|
47 |
{ |
|
48 |
rotateRect = new Rect(0,0, rect.Height, rect.Width); |
|
49 |
} |
|
50 |
else |
|
51 |
{ |
|
52 |
rotateRect = new Rect(0,0, rect.Width, rect.Height); |
|
53 |
} |
|
50 | 54 |
|
51 |
result = new Rect(cornerPoints[0], cornerPoints[2]); |
|
55 |
rotateRect.X = rotationCenter.X; |
|
56 |
rotateRect.Y = rotationCenter.Y; |
|
52 | 57 |
|
53 |
return result;
|
|
58 |
return rotateRect;
|
|
54 | 59 |
} |
55 |
|
|
56 | 60 |
} |
57 | 61 |
} |
KCOM/Controls/AdornerFinal.xaml.cs | ||
---|---|---|
1256 | 1256 |
private void DragThumb_DragDelta(object sender, DragDeltaEventArgs e) |
1257 | 1257 |
{ |
1258 | 1258 |
double scale = Common.ViewerDataModel.Instance.SystemMain.dzMainMenu.zoomAndPanControl.ContentScale; |
1259 |
var tmp = Mouse.GetPosition(Window.GetWindow((DependencyObject)sender)); |
|
1260 | 1259 |
|
1261 |
var horzChange = (tmp.X - this.CurrentMousePoint.X) / scale;/// Math.Round(tmp.X - this.CurrentMousePoint.X) / scale; |
|
1262 |
var vertChange = (tmp.Y - this.CurrentMousePoint.Y) / scale;///Math.Round(tmp.Y - this.CurrentMousePoint.Y) / scale; |
|
1260 |
var newMousePoint = Mouse.GetPosition(Window.GetWindow((DependencyObject)sender)); |
|
1261 |
|
|
1262 |
var horzChange = (newMousePoint.X - this.CurrentMousePoint.X) / scale;/// Math.Round(tmp.X - this.CurrentMousePoint.X) / scale; |
|
1263 |
var vertChange = (newMousePoint.Y - this.CurrentMousePoint.Y) / scale;///Math.Round(tmp.Y - this.CurrentMousePoint.Y) / scale; |
|
1264 |
|
|
1263 | 1265 |
try |
1264 | 1266 |
{ |
1265 | 1267 |
DragThumb.Cursor = Cursors.SizeAll; |
1266 | 1268 |
//System.Diagnostics.Debug.WriteLine($"TransItem : {horzChange}, {vertChange}"); |
1267 | 1269 |
//System.Diagnostics.Debug.WriteLine($"DragDeltaEventArgs : {e.HorizontalChange}, {e.VerticalChange}"); |
1268 | 1270 |
|
1269 |
|
|
1270 |
|
|
1271 |
var rect = this.AdornerBorder.Bounds(ViewerDataModel.Instance.SystemMain.dzMainMenu.mainPanel); |
|
1272 |
|
|
1273 |
var mainRect = ViewerDataModel.Instance.SystemMain.dzMainMenu.mainPanel.Rect(); |
|
1274 |
|
|
1275 |
var moveDirection = mainRect.Movement(rect); |
|
1276 |
|
|
1277 |
System.Diagnostics.Debug.WriteLine($"horzChange: {horzChange} , vertChange:{vertChange}"); |
|
1278 |
System.Diagnostics.Debug.WriteLine($"DragDeltaEventArgs : Top:{rect.Top}, Left:{rect.Left}, Right:{rect.Right}, Bottom:{rect.Bottom} ,BottomLeft : {rect.BottomLeft} BottomRight : {rect.BottomRight}"); |
|
1279 |
|
|
1280 |
if ((horzChange < 0 && !moveDirection.Left) || (horzChange > 0 && !moveDirection.Right)) |
|
1281 |
{ |
|
1282 |
horzChange = 0; |
|
1283 |
} |
|
1284 | 1271 |
|
1285 |
if ((vertChange < 0 && !moveDirection.Up) || (vertChange > 0 && !moveDirection.Down)) |
|
1286 |
{ |
|
1287 |
vertChange = 0; |
|
1288 |
} |
|
1272 |
//var mainRect = ViewerDataModel.Instance.SystemMain.dzMainMenu.mainPanel.Rect(); |
|
1273 |
|
|
1274 |
//var rect = (this.ContainerContent.FindChildByType<CommentUserInfo>() as CommentUserInfo).ItemRect; //this.AdornerBorder.Bounds(ViewerDataModel.Instance.SystemMain.dzMainMenu.mainPanel); |
|
1275 |
|
|
1276 |
//var rotationRect = MathHelper.RotateRect(rect,new Point(mainRect.Width/2, mainRect.Height/2), ViewerDataModel.Instance.PageAngle); |
|
1277 |
|
|
1278 |
//if(ViewerDataModel.Instance.PageAngle == 270 || ViewerDataModel.Instance.PageAngle == 90) |
|
1279 |
//{ |
|
1280 |
// mainRect = new Rect(0,0, mainRect.Height, mainRect.Width); |
|
1281 |
//} |
|
1282 |
|
|
1283 |
//var moveDirection = mainRect.Movement(rotationRect); |
|
1284 |
|
|
1285 |
//System.Diagnostics.Debug.WriteLine($"horzChange: {horzChange} , vertChange:{vertChange}"); |
|
1286 |
////System.Diagnostics.Debug.WriteLine($"DragDeltaEventArgs : Top:{rect.Top}, Left:{rect.Left}, Right:{rect.Right}, Bottom:{rect.Bottom} ,BottomLeft : {rect.BottomLeft} BottomRight : {rect.BottomRight}"); |
|
1287 |
|
|
1288 |
//if (!mainRect.Contains(rotationRect) && Math.Abs(horzChange) > 0) |
|
1289 |
//{ |
|
1290 |
// if ((horzChange < 0 && !moveDirection.Left) || (horzChange > 0 && !moveDirection.Right)) |
|
1291 |
// { |
|
1292 |
// //this.TranslateItems(horzChange * -1, 0); |
|
1293 |
// //e.Handled = true; |
|
1294 |
// horzChange = 0; |
|
1295 |
// newMousePoint.X = this.CurrentMousePoint.X; |
|
1296 |
// } |
|
1297 |
//} |
|
1298 |
|
|
1299 |
//if (!mainRect.Contains(rotationRect) && Math.Abs(vertChange) > 0) |
|
1300 |
//{ |
|
1301 |
// if ((vertChange < 0 && !moveDirection.Up) || (vertChange > 0 && !moveDirection.Down)) |
|
1302 |
// { |
|
1303 |
// //this.TranslateItems(0, vertChange * -1); |
|
1304 |
// //e.Handled = true; |
|
1305 |
// vertChange = 0; |
|
1306 |
// newMousePoint.Y = this.CurrentMousePoint.Y; |
|
1307 |
// } |
|
1308 |
//} |
|
1289 | 1309 |
|
1290 | 1310 |
this.TranslateItems(horzChange, vertChange); |
1291 |
|
|
1292 |
|
|
1293 | 1311 |
} |
1294 | 1312 |
finally |
1295 | 1313 |
{ |
1296 | 1314 |
/// update CurrentMousePoint |
1297 |
this.CurrentMousePoint = tmp;
|
|
1315 |
this.CurrentMousePoint = newMousePoint;
|
|
1298 | 1316 |
} |
1299 | 1317 |
} |
1300 | 1318 |
|
KCOM/Extensions/MarkupVisitHelper.cs | ||
---|---|---|
73 | 73 |
} |
74 | 74 |
} |
75 | 75 |
|
76 |
public static MarkupToPDF.Common.CommentUserInfo VisualCommentUserInfoFind(string id) |
|
77 |
{ |
|
78 |
MarkupToPDF.Common.CommentUserInfo result = null; |
|
79 |
|
|
80 |
var instance = Common.ViewerDataModel.Instance; |
|
81 |
|
|
82 |
var selectOrderComments = instance.MarkupControls.Where(x => id == x.CommentID).ToList(); |
|
83 |
|
|
84 |
if(selectOrderComments.Count() > 0) |
|
85 |
{ |
|
86 |
result= selectOrderComments.First(); |
|
87 |
} |
|
88 |
|
|
89 |
var commentUserInfo = instance.MarkupControls_USER.Where(x => id == x.CommentID).ToList(); |
|
90 |
|
|
91 |
if (commentUserInfo.Count() > 0) |
|
92 |
{ |
|
93 |
result = commentUserInfo.First(); |
|
94 |
} |
|
95 |
|
|
96 |
return result; |
|
97 |
} |
|
98 |
|
|
76 | 99 |
private static void GotoSelectedMarkup(IEnumerable<string> CommentIdList) |
77 | 100 |
{ |
78 | 101 |
var instance = Common.ViewerDataModel.Instance; |
내보내기 Unified diff