initial commit

This commit is contained in:
chikyun.kim
2018-07-23 17:35:21 +09:00
commit 235be47d42
272 changed files with 34761 additions and 0 deletions

View File

@@ -0,0 +1,25 @@

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 15
VisualStudioVersion = 15.0.27428.2037
MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AmkorRestfulService", "AmkorRestfulService\AmkorRestfulService.csproj", "{58CFC90C-5068-46A2-A8DE-0E92EE9E0990}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{58CFC90C-5068-46A2-A8DE-0E92EE9E0990}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{58CFC90C-5068-46A2-A8DE-0E92EE9E0990}.Debug|Any CPU.Build.0 = Debug|Any CPU
{58CFC90C-5068-46A2-A8DE-0E92EE9E0990}.Release|Any CPU.ActiveCfg = Release|Any CPU
{58CFC90C-5068-46A2-A8DE-0E92EE9E0990}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {3A5E5D7A-83B2-4903-B79F-0D1966B74E83}
EndGlobalSection
EndGlobal

View File

@@ -0,0 +1,48 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProjectGuid>{58CFC90C-5068-46A2-A8DE-0E92EE9E0990}</ProjectGuid>
<OutputType>Library</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>Amkor</RootNamespace>
<AssemblyName>AmkorRestfulService</AssemblyName>
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>..\..\..\DLL\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<ItemGroup>
<Reference Include="System" />
<Reference Include="System.Core" />
<Reference Include="System.Web" />
<Reference Include="System.Xml.Linq" />
<Reference Include="System.Data.DataSetExtensions" />
<Reference Include="Microsoft.CSharp" />
<Reference Include="System.Data" />
<Reference Include="System.Xml" />
</ItemGroup>
<ItemGroup>
<Compile Include="Class1.cs" />
<None Include="CHANGELOG" />
<Compile Include="Properties\AssemblyInfo.cs" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
</Project>

View File

@@ -0,0 +1,2 @@
18-05-02 chi 일반상황시 url 조회등의 메세지를 추가함
18-04-26 chi gendatatable 작업시에 비어잇는 열은 제외한다

View File

@@ -0,0 +1,539 @@

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Net;
using System.Text;
namespace Amkor
{
public class RestfulService
{
public class MessageEventArgs : EventArgs
{
public Boolean isError { get; set; }
public string Message { get; set; }
public MessageEventArgs(bool iserr_ ,string msg_)
{
this.isError = iserr_;
this.Message = msg_;
}
}
public static event EventHandler<MessageEventArgs> Message;
public static void RaiseMessage(Boolean iserr, string msg)
{
if (Message != null)
Message(null, new MessageEventArgs(iserr, msg));
}
public static Boolean isLocalTEST = true;
public struct sSearchResult
{
public Boolean isError { get; set; }
public string Value { get; set; }
}
public struct sStripList
{
public string Magazine;
public string StripID;
public sStripList(string mz, string strip)
{
this.Magazine = mz;
this.StripID = strip;
}
}
public static System.Data.DataTable GetLotListbyLineCode(string LineCode, out string errorMessage)
{
Boolean isError = false;
errorMessage = string.Empty;
string url = "http://cim_service.amkor.co.kr:8080/ysj/lot_list/line_code/" + LineCode;
if (isLocalTEST) url = "http://127.0.0.1/ysj/lot_list/line_code.html?code=" + LineCode;
var buffer = GetFromUrl(url, out isError);
if (isError)
{
errorMessage = buffer;
return null;
}
if (buffer.ToLower().StartsWith("fail"))
{
errorMessage = buffer;
return null;
}
//수신된 데이터 전체를 데이터테이블로 생성한다.
buffer = buffer.Replace('\r', '\n').Replace("\n\n", "\n");
return _GenerateDataTable(buffer);
}
public static System.Data.DataTable GetLotInfobyMZ(string MZ, out string errorMessage)
{
errorMessage = string.Empty;
string url = "http://cim_service.amkor.co.kr:8080/ysj/strip_map/get_lot_info_by_magazine_id/";
if (isLocalTEST) url = "http://127.0.0.1/ysj/strip_map/get_lot_info_by_magazine_id.html?code=";
url = url + System.Web.HttpUtility.UrlEncodeUnicode(MZ);
Boolean isError;
var buffer = GetFromUrl(url, out isError);
if (isError)
{
RaiseMessage(true, "GetLotInfobyMZ Error : " + buffer);
errorMessage = buffer;
return null;
}
if (buffer.ToLower().StartsWith("fail"))
{
errorMessage = buffer;
return null;
}
return _GenerateDataTable(buffer);
}
public static System.Data.DataTable Get_EPC_Code(string barcode, out string errorMessage)
{
errorMessage = string.Empty;
string url = "http://cim_service.amkor.co.kr:8080/ysj/epc/get_epc_code/";
//if (isLocalTEST) url = "http://127.0.0.1/ysj/epc/get_epc_code/code=";
url = url + System.Web.HttpUtility.UrlEncodeUnicode(barcode);
Boolean isError;
var buffer = GetFromUrl(url, out isError);
if (isError)
{
RaiseMessage(true, "Get_EPC_Code Error : " + buffer);
errorMessage = buffer;
return null;
}
if (buffer.ToLower().StartsWith("fail"))
{
errorMessage = buffer;
return null;
}
return _GenerateDataTable(buffer);
}
public static System.Data.DataTable GetLotInfobyStripID(string StripID, out string errorMessage)
{
errorMessage = string.Empty;
string url = "http://cim_service.amkor.co.kr:8080/ysj/strip_map/get_lot_info_by_strip_id/";
if (isLocalTEST) url = "http://127.0.0.1/ysj/strip_map/get_lot_info_by_strip_id.html?code=";
url = url + System.Web.HttpUtility.UrlEncodeUnicode(StripID);
Boolean isError;
var buffer = GetFromUrl(url, out isError);
if (isError)
{
RaiseMessage(true, "GetLotInfobyStripID Error : " + buffer);
errorMessage = buffer;
return null;
}
if (buffer.ToLower().StartsWith("fail"))
{
errorMessage = buffer;
return null;
}
return _GenerateDataTable(buffer);
}
public static System.Data.DataTable GetLotInfobyALTag(string alTag, out string errorMessage)
{
errorMessage = string.Empty;
string url = "http://cim_service.amkor.co.kr:8080/ysj/lot_info/get_lot_info_by_al_tag/";
if (isLocalTEST) url = "http://127.0.0.1/ysj/lot_info/get_lot_info_by_al_tag.html?code=";
url = url + System.Web.HttpUtility.UrlEncodeUnicode(alTag);
Boolean isError;
var buffer = GetFromUrl(url, out isError);
if (isError)
{
RaiseMessage(true, "GetLotInfobyStripID Error : " + buffer);
errorMessage = buffer;
return null;
}
if (buffer.ToLower().StartsWith("fail"))
{
errorMessage = buffer;
return null;
}
return _GenerateDataTable(buffer);
}
public static List<sStripList> GetStripListbyLot(string Lot, out string errorMessage)
{
errorMessage = string.Empty;
string url = "http://cim_service.amkor.co.kr:8080/ysj/strip_map/get_magazine_strip_list_by_lot_id/";
if (isLocalTEST) url = "http://127.0.0.1/ysj/strip_map/get_magazine_strip_list_by_lot_id.html?code=";
url = url + System.Web.HttpUtility.UrlEncodeUnicode(Lot);
Boolean isError;
var buffer = GetFromUrl(url, out isError);
if (isError)
{
RaiseMessage(true, "GetStripListbyLot Error : " + buffer);
errorMessage = buffer;
return null;
}
if (buffer.ToLower().StartsWith("fail"))
{
errorMessage = buffer;
return null;
}
buffer = buffer.Replace('\r', '\n').Replace("\n\n", "\n");
// example
// MagazineId + (Tab) + StripId + (CR / LF)
// PG 12345; 678 + (Tab) + SEORL36_MGP9805040
List<sStripList> retval = new List<sStripList>();
foreach (string line in buffer.Split('\n'))
{
if (line.Trim() == "") continue;
var tabbuf = line.Split('\t');
if (tabbuf.Length == 2) retval.Add(new sStripList(tabbuf[0], tabbuf[1]));
else RaiseMessage(true, "GetStripListbyLot Parse Error|" + line + "|Tabbuffer len (2)");
}
return retval;
}
public static List<sStripList> GetStripListbyMZ(string MZ, out string errorMessage)
{
errorMessage = string.Empty;
string url = "http://cim_service.amkor.co.kr:8080/ysj/strip_map/get_strip_list_by_magazine_id/";
if (isLocalTEST) url = "http://127.0.0.1/ysj/strip_map/get_strip_list_by_magazine_id.html?code=";
url = url + System.Web.HttpUtility.UrlEncodeUnicode(MZ);
Boolean isError;
var buffer = GetFromUrl(url, out isError);
if (isError)
{
RaiseMessage(true, "GetStripListbyMZ Error : " + buffer);
errorMessage = buffer;
return null;
}
if (buffer.ToLower().StartsWith("fail"))
{
errorMessage = buffer;
return null;
}
buffer = buffer.Replace('\r', '\n').Replace("\n\n", "\n");
// example
// MagazineId + (Tab) + StripId + (CR / LF)
// PG 12345; 678 + (Tab) + SEORL36_MGP9805040
List<sStripList> retval = new List<sStripList>();
foreach (string line in buffer.Split('\n'))
{
if (line.Trim() == "") continue;
var tabbuf = line.Split('\t');
if (tabbuf.Length == 2) retval.Add(new sStripList(tabbuf[0], tabbuf[1]));
else RaiseMessage(true, "GetStripListbyMZ Parse Error|" + line + "|Tabbuffer len (2)");
}
return retval;
}
public static sSearchResult FindSMbyLot(string LineCode, string LOT)
{
sSearchResult retval = new sSearchResult();
string outMessage;
var dt = GetLotListbyLineCode(LineCode, out outMessage);
if (dt == null || dt.Rows.Count < 1)
{
retval.isError = true;
retval.Value = outMessage;
return retval;
}
//this
string sql = "Lot_No = '" + LOT + "'";
var rows = dt.Select(sql);
if (rows.Length < 1)
{
retval.isError = true;
retval.Value = "No Lot : " + LOT;
return retval;
}
if (rows[0]["strip_Mark"] == null)
{
retval.isError = true;
retval.Value = "Strip_Mark is Null";
return retval;
}
retval.isError = false;
retval.Value = rows[0]["strip_Mark"].ToString();
return retval;
}
public static sSearchResult FindLotbySM(string LineCode, string SM)
{
sSearchResult retval = new sSearchResult();
string outMessage;
var dt = GetLotListbyLineCode(LineCode, out outMessage);
if (dt == null || dt.Rows.Count < 1)
{
retval.isError = true;
retval.Value = outMessage;
return retval;
}
//this
string sql = "strip_Mark = '" + SM + "'";
var rows = dt.Select(sql);
if (rows.Length < 1)
{
retval.isError = true;
retval.Value = "No strip_Mark : " + SM;
return retval;
}
if (rows[0]["Lot_No"] == null)
{
retval.isError = true;
retval.Value = "Lot_No is Null";
return retval;
}
retval.isError = false;
retval.Value = rows[0]["Lot_No"].ToString();
return retval;
}
public static Boolean RemoveMZFromLOT(string LOT, string MZ, out string errorMessage)
{
errorMessage = string.Empty;
string url = "http://cim_service.amkor.co.kr:8080/ysj/strip_map/delete_magazine_id_from_lot/";
if (isLocalTEST) url = "http://127.0.0.1/ysj/del_magazine.html?code=";
url = url + System.Web.HttpUtility.UrlEncodeUnicode(MZ);
url = url + "," + System.Web.HttpUtility.UrlEncodeUnicode(LOT);
Boolean isError;
var buffer = GetFromUrl(url, out isError);
if (isError)
{
RaiseMessage(true, "RemoveMZFromLOT Error : " + buffer);
errorMessage = buffer;
return false;
}
if (buffer.ToLower().StartsWith("fail"))
{
errorMessage = buffer;
return false;
}
buffer = buffer.Replace('\r', '\n').Replace("\n\n", "\n");
errorMessage = buffer;
return true;
}
public static Boolean RemoveStripIDFromMZ(string strip, out string errorMessage)
{
errorMessage = string.Empty;
string url = "http://cim_service.amkor.co.kr:8080/ysj/strip_map/del_strip_id/";
if (isLocalTEST) url = "http://127.0.0.1/ysj/strip_map/del_strip_id.html?code=";
url = url + System.Web.HttpUtility.UrlEncodeUnicode(strip);
Boolean isError;
var buffer = GetFromUrl(url, out isError);
if (isError)
{
RaiseMessage(true, "RemoveStripIDFromMZ Error : " + buffer);
errorMessage = buffer;
return false;
}
if (buffer.ToLower().StartsWith("fail"))
{
errorMessage = buffer;
return false;
}
buffer = buffer.Replace('\r', '\n').Replace("\n\n", "\n");
errorMessage = buffer;
return true;
}
public static Boolean ChangeMazineID(string Lot, string Src_MZ, string Des_MZ, out string errorMessage)
{
//remove
if (!RemoveMZFromLOT(Lot, Src_MZ, out errorMessage))
{
errorMessage = "Remove M/Z Error : " + errorMessage;
return false;
}
if (!SetMZtoLot(Lot, Des_MZ, out errorMessage))
{
errorMessage = "Set M/Z Error : " + errorMessage;
return false;
}
errorMessage = string.Empty;
return true;
}
public static Boolean SetMZtoLot(string Lot, string Mz, out string errorMessage)
{
errorMessage = string.Empty;
string url = "http://cim_service.amkor.co.kr:8080/ysj/strip_map/set_magazine_id_to_lot/";
if (isLocalTEST) url = "http://127.0.0.1/ysj/strip_map/set_lot_id_by_magazine_id.html?code=";
url = url + System.Web.HttpUtility.UrlEncodeUnicode(Mz) + "," +
System.Web.HttpUtility.UrlEncodeUnicode(Lot);
Boolean isError;
var buffer = GetFromUrl(url, out isError);
if (isError)
{
RaiseMessage(true, "SetMZtoLot Error : " + buffer);
errorMessage = buffer;
return false;
}
if (buffer.ToLower().StartsWith("fail"))
{
errorMessage = buffer;
return false;
}
errorMessage = buffer;
return true;
}
public static Boolean SetStripToMZ(string MZ, string strip, out string errorMessage)
{
errorMessage = string.Empty;
string url = "http://cim_service.amkor.co.kr:8080/ysj/strip_map/set_magazine_id_by_strip_id/";
if (isLocalTEST) url = "http://127.0.0.1/ysj/strip_map/set_magazine_id_by_strip_id.html?code=";
url = url + System.Web.HttpUtility.UrlEncodeUnicode(MZ) + "," +
System.Web.HttpUtility.UrlEncodeUnicode(strip);
Boolean isError;
var buffer = GetFromUrl(url, out isError);
if (isError)
{
RaiseMessage(true, "SetStripToMZ Error : " + buffer);
errorMessage = buffer;
return false;
}
if (buffer.ToLower().StartsWith("fail"))
{
errorMessage = buffer;
return false;
}
var stripList = _GenerateStripList(buffer);
if (stripList.Where(t => t.StripID == strip).Count() > 0)//생성된 목록에서 추가된 stripid가 존재하는지 확인한다.
{
errorMessage = buffer;
return true;
}
else
{
errorMessage = "Command OK but No Data in Reply";
return false;
}
}
#region "utility"
public static string GetFromUrl(string url, out Boolean isError)
{
isError = false;
string result = "";
try
{
RaiseMessage(false, "GET : " + url);
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(new Uri(url));
request.Timeout = 60000;
request.ReadWriteTimeout = 60000;
request.MaximumAutomaticRedirections = 4;
request.MaximumResponseHeadersLength = 4;
request.Credentials = CredentialCache.DefaultCredentials;
var response = request.GetResponse() as HttpWebResponse;
var txtReader = new StreamReader(response.GetResponseStream(), Encoding.UTF8);
result = txtReader.ReadToEnd();
}
catch (Exception ex)
{
isError = true;
result = ex.Message.ToString();
RaiseMessage(true, "GET-ERROR\n" + result);
}
return result;
}
public static string Cvt_LotToAltag(string lot)
{
return "L" + lot + "; ;";
}
public static string Cvt_AltagToLot(string alTag)
{
var semi = alTag.IndexOf(';');
if (semi < 0) return alTag;
return alTag.Substring(1, alTag.Length - semi - 1);
}
static string _GenerateHexString(string buffer)
{
System.Text.StringBuilder sb = new StringBuilder();
foreach (var c in buffer.ToCharArray())
sb.Append(((byte)c).ToString("X2"));
return sb.ToString();
}
static System.Data.DataTable _GenerateDataTable(string buffer)
{
//탭으로분리된 데이터를 첫줄을 컬럼으로 사용해서 테이블로 변환한다.
System.Data.DataTable dt = new System.Data.DataTable();
buffer = buffer.Replace('\r', '\n').Replace("\n\n", "\n");
var lines = buffer.Split('\n');
string[] cols = null;
foreach (string line in lines)
{
if (line.Trim() == "") continue;
if (dt.Columns.Count < 1)
{
//첫줄을 열 제목이된다.
cols = line.Split('\t');
foreach (var col in cols)
{
if(col.Trim() != "")
dt.Columns.Add(col);
}
continue;
}
//add data;
var datas = line.Split('\t');
if (cols.Length != datas.Length)
{
RaiseMessage(true, string.Format("Column Count ({0}), Data Count({1}) != Miss Match", cols.Length, datas.Length));
continue;
}
//add data
var newdr = dt.NewRow();
for (int i = 0; i < cols.Length; i++)
{
if(cols[i].Trim() != "")
newdr[cols[i]] = datas[i];
}
dt.Rows.Add(newdr);
}
dt.AcceptChanges();
return dt;
}
static List<sStripList> _GenerateStripList(string buffer)
{
buffer = buffer.Replace('\r', '\n').Replace("\n\n", "\n");
List<sStripList> retval = new List<sStripList>();
foreach (string line in buffer.Split('\n'))
{
if (line.Trim() == "") continue;
var tabbuf = line.Split('\t');
if (tabbuf.Length == 2) retval.Add(new sStripList(tabbuf[0], tabbuf[1]));
else RaiseMessage(true, "SetStripToMZ Parse Error|" + line + "|Tabbuffer len (2)");
}
return retval;
}
#endregion
}
}

View File

@@ -0,0 +1,36 @@
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
// 어셈블리에 대한 일반 정보는 다음 특성 집합을 통해
// 제어됩니다. 어셈블리와 관련된 정보를 수정하려면
// 이러한 특성 값을 변경하세요.
[assembly: AssemblyTitle("AmkorRestfulService")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("AmkorRestfulService")]
[assembly: AssemblyCopyright("Copyright ©Amkor 2018")]
[assembly: AssemblyTrademark("EET")]
[assembly: AssemblyCulture("")]
// ComVisible을 false로 설정하면 이 어셈블리의 형식이 COM 구성 요소에
// 표시되지 않습니다. COM에서 이 어셈블리의 형식에 액세스하려면
// 해당 형식에 대해 ComVisible 특성을 true로 설정하세요.
[assembly: ComVisible(false)]
// 이 프로젝트가 COM에 노출되는 경우 다음 GUID는 typelib의 ID를 나타냅니다.
[assembly: Guid("58cfc90c-5068-46a2-a8de-0e92ee9e0990")]
// 어셈블리의 버전 정보는 다음 네 가지 값으로 구성됩니다.
//
// 주 버전
// 부 버전
// 빌드 번호
// 수정 버전
//
// 모든 값을 지정하거나 아래와 같이 '*'를 사용하여 빌드 번호 및 수정 번호를
// 기본값으로 할 수 있습니다.
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("18.05.03.1130")]
[assembly: AssemblyFileVersion("18.05.03.1130")]

View File

@@ -0,0 +1 @@
a753a9217ecdf1f178584818e55b4b5ec9204d0c

View File

@@ -0,0 +1,52 @@
D:\Amkor\Source\Library\AmkorRestfulService\AmkorRestfulService\obj\Debug\AmkorRestfulService.csproj.CoreCompileInputs.cache
D:\Amkor\Source\Library\AmkorRestfulService\AmkorRestfulService\bin\Debug\AmkorRestfulService.dll
D:\Amkor\Source\Library\AmkorRestfulService\AmkorRestfulService\bin\Debug\AmkorRestfulService.pdb
D:\Amkor\Source\Library\AmkorRestfulService\AmkorRestfulService\obj\Debug\AmkorRestfulService.dll
D:\Amkor\Source\Library\AmkorRestfulService\AmkorRestfulService\obj\Debug\AmkorRestfulService.pdb
D:\Amkor\Source\DLL\AmkorRestfulService.dll
D:\Amkor\Source\DLL\AmkorRestfulService.pdb
D:\Tinsky\Visual Studio For Amkor\ManualMapEditor\ManualMapEditor_180426_1000\Sub\AmkorRestfulService\AmkorRestfulService\obj\Debug\AmkorRestfulService.dll
D:\Tinsky\Visual Studio For Amkor\ManualMapEditor\ManualMapEditor_180426_1000\DLL\AmkorRestfulService.dll
D:\Tinsky\Visual Studio For Amkor\ManualMapEditor\ManualMapEditor_180426_1000\DLL\AmkorRestfulService.pdb
D:\Tinsky\Visual Studio For Amkor\ManualMapEditor\ManualMapEditor_180426_1000\Sub\AmkorRestfulService\AmkorRestfulService\obj\Debug\AmkorRestfulService.pdb
D:\Tinsky\Visual Studio For Amkor\ManualMapEditor\ManualMapEditor_180509_2300_milk\DLL\AmkorRestfulService.dll
D:\Tinsky\Visual Studio For Amkor\ManualMapEditor\ManualMapEditor_180509_2300_milk\DLL\AmkorRestfulService.pdb
D:\Tinsky\Visual Studio For Amkor\ManualMapEditor\ManualMapEditor_180509_2300_milk\Sub\AmkorRestfulService\AmkorRestfulService\obj\Debug\AmkorRestfulService.csprojResolveAssemblyReference.cache
D:\Tinsky\Visual Studio For Amkor\ManualMapEditor\ManualMapEditor_180509_2300_milk\Sub\AmkorRestfulService\AmkorRestfulService\obj\Debug\AmkorRestfulService.dll
D:\Tinsky\Visual Studio For Amkor\ManualMapEditor\ManualMapEditor_180509_2300_milk\Sub\AmkorRestfulService\AmkorRestfulService\obj\Debug\AmkorRestfulService.pdb
D:\Tinsky\Visual Studio For Amkor\ManualMapEditor\ManualMapEditor_180510_2300_milk\DLL\AmkorRestfulService.dll
D:\Tinsky\Visual Studio For Amkor\ManualMapEditor\ManualMapEditor_180510_2300_milk\DLL\AmkorRestfulService.pdb
D:\Tinsky\Visual Studio For Amkor\ManualMapEditor\ManualMapEditor_180510_2300_milk\Sub\AmkorRestfulService\AmkorRestfulService\obj\Debug\AmkorRestfulService.dll
D:\Tinsky\Visual Studio For Amkor\ManualMapEditor\ManualMapEditor_180510_2300_milk\Sub\AmkorRestfulService\AmkorRestfulService\obj\Debug\AmkorRestfulService.pdb
D:\Tinsky\Visual Studio For Amkor\_Frame\DLL\AmkorRestfulService.dll
D:\Tinsky\Visual Studio For Amkor\_Frame\DLL\AmkorRestfulService.pdb
D:\Tinsky\Visual Studio For Amkor\_Frame\Sub\AmkorRestfulService\AmkorRestfulService\obj\Debug\AmkorRestfulService.dll
D:\Tinsky\Visual Studio For Amkor\_Frame\Sub\AmkorRestfulService\AmkorRestfulService\obj\Debug\AmkorRestfulService.pdb
D:\Tinsky\Visual Studio For Amkor\_Frame\Sub\AmkorRestfulService\AmkorRestfulService\obj\Debug\AmkorRestfulService.csprojResolveAssemblyReference.cache
D:\Source\GroupWare\DLL\AmkorRestfulService.dll
D:\Source\GroupWare\DLL\AmkorRestfulService.pdb
D:\Source\GroupWare\Sub\AmkorRestfulService\AmkorRestfulService\obj\Debug\AmkorRestfulService.dll
D:\Source\GroupWare\Sub\AmkorRestfulService\AmkorRestfulService\obj\Debug\AmkorRestfulService.pdb
D:\Source\GroupWare\EET_GroupWare_180525_1000\DLL\AmkorRestfulService.dll
D:\Source\GroupWare\EET_GroupWare_180525_1000\DLL\AmkorRestfulService.pdb
D:\Source\GroupWare\EET_GroupWare_180525_1000\Sub\AmkorRestfulService\AmkorRestfulService\obj\Debug\AmkorRestfulService.dll
D:\Source\GroupWare\EET_GroupWare_180525_1000\Sub\AmkorRestfulService\AmkorRestfulService\obj\Debug\AmkorRestfulService.pdb
D:\Source\GroupWare\EET_GroupWare_180525_1800\DLL\AmkorRestfulService.dll
D:\Source\GroupWare\EET_GroupWare_180525_1800\DLL\AmkorRestfulService.pdb
D:\Source\GroupWare\EET_GroupWare_180525_1800\Sub\AmkorRestfulService\AmkorRestfulService\obj\Debug\AmkorRestfulService.dll
D:\Source\GroupWare\EET_GroupWare_180525_1800\Sub\AmkorRestfulService\AmkorRestfulService\obj\Debug\AmkorRestfulService.pdb
D:\Source\GroupWare\EET_GroupWare_180604_1000\DLL\AmkorRestfulService.dll
D:\Source\GroupWare\EET_GroupWare_180604_1000\DLL\AmkorRestfulService.pdb
D:\Source\GroupWare\EET_GroupWare_180604_1000\Sub\AmkorRestfulService\AmkorRestfulService\obj\Debug\AmkorRestfulService.csprojResolveAssemblyReference.cache
D:\Source\GroupWare\EET_GroupWare_180604_1000\Sub\AmkorRestfulService\AmkorRestfulService\obj\Debug\AmkorRestfulService.dll
D:\Source\GroupWare\EET_GroupWare_180604_1000\Sub\AmkorRestfulService\AmkorRestfulService\obj\Debug\AmkorRestfulService.pdb
D:\Source\GroupWare\EET_GroupWare_180608_1000\DLL\AmkorRestfulService.dll
D:\Source\GroupWare\EET_GroupWare_180608_1000\DLL\AmkorRestfulService.pdb
D:\Source\GroupWare\EET_GroupWare_180608_1000\Sub\AmkorRestfulService\AmkorRestfulService\obj\Debug\AmkorRestfulService.csprojResolveAssemblyReference.cache
D:\Source\GroupWare\EET_GroupWare_180608_1000\Sub\AmkorRestfulService\AmkorRestfulService\obj\Debug\AmkorRestfulService.dll
D:\Source\GroupWare\EET_GroupWare_180608_1000\Sub\AmkorRestfulService\AmkorRestfulService\obj\Debug\AmkorRestfulService.pdb
D:\Source\GroupWare\EET_GroupWare_180704_0000\DLL\AmkorRestfulService.dll
D:\Source\GroupWare\EET_GroupWare_180704_0000\DLL\AmkorRestfulService.pdb
D:\Source\GroupWare\EET_GroupWare_180704_0000\Sub\AmkorRestfulService\AmkorRestfulService\obj\Debug\AmkorRestfulService.csprojResolveAssemblyReference.cache
D:\Source\GroupWare\EET_GroupWare_180704_0000\Sub\AmkorRestfulService\AmkorRestfulService\obj\Debug\AmkorRestfulService.dll
D:\Source\GroupWare\EET_GroupWare_180704_0000\Sub\AmkorRestfulService\AmkorRestfulService\obj\Debug\AmkorRestfulService.pdb

View File

@@ -0,0 +1 @@
18-04-26 chi 프로젝트생성(message 이벤트 추가)