업무일지 메일 발송 로직에서. 휴일 체크 루틴 버그 수정

This commit is contained in:
chi
2021-05-28 11:34:30 +09:00
parent e1dce272bb
commit ba02049737
88 changed files with 7522 additions and 2224 deletions

View File

@@ -41,6 +41,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FOW0000", "SubProject\FOW00
EndProject EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "UMSControl", "SubProject\CMSControl\UMSControl.csproj", "{55EF08A8-6E94-4569-8371-7AAC9DE916AB}" Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "UMSControl", "SubProject\CMSControl\UMSControl.csproj", "{55EF08A8-6E94-4569-8371-7AAC9DE916AB}"
EndProject EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WebServer", "SubProject\WebServer\WebServer.csproj", "{CAFE5CD0-C055-4C77-9253-8D5EE9558D43}"
EndProject
Global Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU Debug|Any CPU = Debug|Any CPU
@@ -169,6 +171,14 @@ Global
{55EF08A8-6E94-4569-8371-7AAC9DE916AB}.Release|Any CPU.Build.0 = Release|Any CPU {55EF08A8-6E94-4569-8371-7AAC9DE916AB}.Release|Any CPU.Build.0 = Release|Any CPU
{55EF08A8-6E94-4569-8371-7AAC9DE916AB}.Release|x86.ActiveCfg = Release|Any CPU {55EF08A8-6E94-4569-8371-7AAC9DE916AB}.Release|x86.ActiveCfg = Release|Any CPU
{55EF08A8-6E94-4569-8371-7AAC9DE916AB}.Release|x86.Build.0 = Release|Any CPU {55EF08A8-6E94-4569-8371-7AAC9DE916AB}.Release|x86.Build.0 = Release|Any CPU
{CAFE5CD0-C055-4C77-9253-8D5EE9558D43}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{CAFE5CD0-C055-4C77-9253-8D5EE9558D43}.Debug|Any CPU.Build.0 = Debug|Any CPU
{CAFE5CD0-C055-4C77-9253-8D5EE9558D43}.Debug|x86.ActiveCfg = Debug|Any CPU
{CAFE5CD0-C055-4C77-9253-8D5EE9558D43}.Debug|x86.Build.0 = Debug|Any CPU
{CAFE5CD0-C055-4C77-9253-8D5EE9558D43}.Release|Any CPU.ActiveCfg = Release|Any CPU
{CAFE5CD0-C055-4C77-9253-8D5EE9558D43}.Release|Any CPU.Build.0 = Release|Any CPU
{CAFE5CD0-C055-4C77-9253-8D5EE9558D43}.Release|x86.ActiveCfg = Release|Any CPU
{CAFE5CD0-C055-4C77-9253-8D5EE9558D43}.Release|x86.Build.0 = Release|Any CPU
EndGlobalSection EndGlobalSection
GlobalSection(SolutionProperties) = preSolution GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE HideSolutionNode = FALSE
@@ -188,6 +198,7 @@ Global
{3CD79316-211A-4B57-A6B4-00FA6091C29D} = {28105E67-9D33-4627-8E26-FCE67700622F} {3CD79316-211A-4B57-A6B4-00FA6091C29D} = {28105E67-9D33-4627-8E26-FCE67700622F}
{8D593B42-1EAE-4D5A-A2C1-0361E2C43A80} = {6C7EC99E-7367-4255-A039-EF5E8D75A2F6} {8D593B42-1EAE-4D5A-A2C1-0361E2C43A80} = {6C7EC99E-7367-4255-A039-EF5E8D75A2F6}
{55EF08A8-6E94-4569-8371-7AAC9DE916AB} = {28105E67-9D33-4627-8E26-FCE67700622F} {55EF08A8-6E94-4569-8371-7AAC9DE916AB} = {28105E67-9D33-4627-8E26-FCE67700622F}
{CAFE5CD0-C055-4C77-9253-8D5EE9558D43} = {6C7EC99E-7367-4255-A039-EF5E8D75A2F6}
EndGlobalSection EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {B5B1FD72-356F-4840-83E8-B070AC21C8D9} SolutionGuid = {B5B1FD72-356F-4840-83E8-B070AC21C8D9}

View File

@@ -77,12 +77,12 @@ namespace JobReportMailService
this.toolStripSeparator1 = new System.Windows.Forms.ToolStripSeparator(); this.toolStripSeparator1 = new System.Windows.Forms.ToolStripSeparator();
this.saveToolStripButton = new System.Windows.Forms.ToolStripButton(); this.saveToolStripButton = new System.Windows.Forms.ToolStripButton();
this.printToolStripButton = new System.Windows.Forms.ToolStripButton(); this.printToolStripButton = new System.Windows.Forms.ToolStripButton();
this.toolStripButton2 = new System.Windows.Forms.ToolStripButton();
this.toolStripSeparator2 = new System.Windows.Forms.ToolStripSeparator(); this.toolStripSeparator2 = new System.Windows.Forms.ToolStripSeparator();
this.toolStripButton1 = new System.Windows.Forms.ToolStripButton(); this.toolStripButton1 = new System.Windows.Forms.ToolStripButton();
this.statusStrip = new System.Windows.Forms.StatusStrip(); this.statusStrip = new System.Windows.Forms.StatusStrip();
this.toolStripStatusLabel = new System.Windows.Forms.ToolStripStatusLabel(); this.toolStripStatusLabel = new System.Windows.Forms.ToolStripStatusLabel();
this.toolTip = new System.Windows.Forms.ToolTip(this.components); this.toolTip = new System.Windows.Forms.ToolTip(this.components);
this.toolStripButton2 = new System.Windows.Forms.ToolStripButton();
this.menuStrip.SuspendLayout(); this.menuStrip.SuspendLayout();
this.toolStrip.SuspendLayout(); this.toolStrip.SuspendLayout();
this.statusStrip.SuspendLayout(); this.statusStrip.SuspendLayout();
@@ -487,6 +487,15 @@ namespace JobReportMailService
this.printToolStripButton.Text = "스케쥴(주)"; this.printToolStripButton.Text = "스케쥴(주)";
this.printToolStripButton.Click += new System.EventHandler(this.printToolStripButton_Click); this.printToolStripButton.Click += new System.EventHandler(this.printToolStripButton_Click);
// //
// toolStripButton2
//
this.toolStripButton2.Image = ((System.Drawing.Image)(resources.GetObject("toolStripButton2.Image")));
this.toolStripButton2.ImageTransparentColor = System.Drawing.Color.Black;
this.toolStripButton2.Name = "toolStripButton2";
this.toolStripButton2.Size = new System.Drawing.Size(107, 22);
this.toolStripButton2.Text = "스케쥴없음(주)";
this.toolStripButton2.Click += new System.EventHandler(this.toolStripButton2_Click);
//
// toolStripSeparator2 // toolStripSeparator2
// //
this.toolStripSeparator2.Name = "toolStripSeparator2"; this.toolStripSeparator2.Name = "toolStripSeparator2";
@@ -518,15 +527,6 @@ namespace JobReportMailService
this.toolStripStatusLabel.Size = new System.Drawing.Size(31, 17); this.toolStripStatusLabel.Size = new System.Drawing.Size(31, 17);
this.toolStripStatusLabel.Text = "상태"; this.toolStripStatusLabel.Text = "상태";
// //
// toolStripButton2
//
this.toolStripButton2.Image = ((System.Drawing.Image)(resources.GetObject("toolStripButton2.Image")));
this.toolStripButton2.ImageTransparentColor = System.Drawing.Color.Black;
this.toolStripButton2.Name = "toolStripButton2";
this.toolStripButton2.Size = new System.Drawing.Size(107, 22);
this.toolStripButton2.Text = "스케쥴없음(주)";
this.toolStripButton2.Click += new System.EventHandler(this.toolStripButton2_Click);
//
// MDIParent1 // MDIParent1
// //
this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 12F); this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 12F);
@@ -539,6 +539,7 @@ namespace JobReportMailService
this.MainMenuStrip = this.menuStrip; this.MainMenuStrip = this.menuStrip;
this.Name = "MDIParent1"; this.Name = "MDIParent1";
this.Text = "MDIParent1"; this.Text = "MDIParent1";
this.Load += new System.EventHandler(this.MDIParent1_Load);
this.menuStrip.ResumeLayout(false); this.menuStrip.ResumeLayout(false);
this.menuStrip.PerformLayout(); this.menuStrip.PerformLayout();
this.toolStrip.ResumeLayout(false); this.toolStrip.ResumeLayout(false);

View File

@@ -133,5 +133,10 @@ namespace JobReportMailService
//childForm.Text = "창 " + childFormNumber++; //childForm.Text = "창 " + childFormNumber++;
childForm.Show(); childForm.Show();
} }
private void MDIParent1_Load(object sender, EventArgs e)
{
this.Text = "mail service " + Application.ProductVersion.ToString();
}
} }
} }

View File

@@ -32,5 +32,5 @@ using System.Runtime.InteropServices;
// 모든 값을 지정하거나 아래와 같이 '*'를 사용하여 빌드 번호 및 수정 번호를 // 모든 값을 지정하거나 아래와 같이 '*'를 사용하여 빌드 번호 및 수정 번호를
// 기본값으로 할 수 있습니다. // 기본값으로 할 수 있습니다.
// [assembly: AssemblyVersion("1.0.*")] // [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("21.05.16.1600")] [assembly: AssemblyVersion("21.05.28.1120")]
[assembly: AssemblyFileVersion("21.05.16.1600")] [assembly: AssemblyFileVersion("21.05.28.1120")]

View File

@@ -142,7 +142,7 @@ namespace JobReportMailService
//이 날짜가 휴일인지 체크한다. //이 날짜가 휴일인지 체크한다.
db = new EEEntities(); db = new EEEntities();
var Holyinfo = db.HolidayLIst.Where(t => t.pdate == jobdata.package).FirstOrDefault(); var Holyinfo = db.HolidayLIst.Where(t => t.pdate == jobdata.pdate).FirstOrDefault();
if (Holyinfo != null && Holyinfo.free != null && (bool)(Holyinfo.free)) continue; if (Holyinfo != null && Holyinfo.free != null && (bool)(Holyinfo.free)) continue;
//이날짜에는 8시간을 근무 해야 한다 //이날짜에는 8시간을 근무 해야 한다

View File

@@ -144,7 +144,7 @@ namespace JobReportMailService
{ {
//스케쥴에서 데이터를 찾는다. //스케쥴에서 데이터를 찾는다.
var cnt = db.EETGW_ProjectsSchedule.AsNoTracking().Where(t => t.gcode == Pub.vGcode && t.project == row.idx && t.appoval > 1).Any(); var cnt = db.EETGW_ProjectsSchedule.AsNoTracking().Where(t => t.gcode == Pub.vGcode && t.project == row.idx).Any();
if (cnt == true) continue; //등록되었다 if (cnt == true) continue; //등록되었다
body.AppendLine($"<tr>"); body.AppendLine($"<tr>");

View File

@@ -103,6 +103,74 @@ namespace Project
return resp; return resp;
} }
[HttpGet]
public HttpResponseMessage ScheduleConfirm(int? id)
{
//로그인이 되어있지않다면 로그인을 가져온다
MethodResult result;
result = View();
var project = (int)id;
//데이터를 조회해서 표시를 해준다.
var db = new EEEntitiesProject();
var prjinfo = db.Projects.Where(t => t.gcode == FCOMMON.info.Login.gcode && t.idx == project).FirstOrDefault();
var schrows = db.EETGW_ProjectsSchedule.Where(t => t.gcode == FCOMMON.info.Login.gcode && t.project == project).OrderByDescending(t => t.project).OrderByDescending(t => t.no).OrderBy(t => t.seq);
var gets = Request.GetQueryNameValuePairs();// GetParameters(data);
System.Text.StringBuilder tinfo = new System.Text.StringBuilder();
//프로젝트정보를 표시합니다.
tinfo.AppendLine("<tr>");
tinfo.AppendLine(string.Format("<td>{0}</td>", prjinfo.idx));
tinfo.AppendLine(string.Format("<td>{0}</td>", prjinfo.status));
tinfo.AppendLine(string.Format("<td>{0}</td>", prjinfo.progress));
tinfo.AppendLine(string.Format("<td>{0}</td>", prjinfo.name));
tinfo.AppendLine(string.Format("<td>{0}</td>", prjinfo.reqstaff));
tinfo.AppendLine(string.Format("<td>{0}</td>", prjinfo.userManager));
tinfo.AppendLine(string.Format("<td>{0}</td>", prjinfo.orderno));
tinfo.AppendLine("</tr>");
var contents = result.Content.Replace("{search}", "");
contents = contents.Replace("{tableinfo}", tinfo.ToString());
tinfo.Clear();
foreach (var item in schrows)
{
tinfo.AppendLine("<tr>");
tinfo.AppendLine(string.Format("<td>{0}</td>", item.no));
tinfo.AppendLine(string.Format("<td>{0}</td>", item.seq));
tinfo.AppendLine(string.Format("<td>{0}</td>", item.title));
tinfo.AppendLine(string.Format("<td>{0}</td>", item.sw));
tinfo.AppendLine(string.Format("<td>{0}</td>", item.ew));
tinfo.AppendLine(string.Format("<td>{0}</td>", item.swa));
tinfo.AppendLine(string.Format("<td>{0}</td>", item.ewa));
tinfo.AppendLine(string.Format("<td>{0}</td>", item.progress));
tinfo.AppendLine(string.Format("<td>{0}</td>", item.uid));
tinfo.AppendLine(string.Format("<td>{0}</td>", item.memo));
tinfo.AppendLine("</tr>");
}
contents = contents.Replace("{scheinfo}", tinfo.ToString());
//공용값 적용
ApplyCommonValue(ref contents);
//최종문자 적용
result.Content = contents;
var resp = new HttpResponseMessage()
{
Content = new StringContent(
result.Content,
System.Text.Encoding.UTF8,
"text/html")
};
return resp;
}
[HttpGet] [HttpGet]
public HttpResponseMessage Index() public HttpResponseMessage Index()
{ {
@@ -179,6 +247,207 @@ namespace Project
contents = contents.Replace("{cnt}", itemcnt.ToString()); contents = contents.Replace("{cnt}", itemcnt.ToString());
//공용값 적용
ApplyCommonValue(ref contents);
//최종문자 적용
result.Content = contents;
var resp = new HttpResponseMessage()
{
Content = new StringContent(
result.Content,
System.Text.Encoding.UTF8,
"text/html")
};
return resp;
}
[HttpGet]
public HttpResponseMessage detail(int id)
{
//로그인이 되어있지않다면 로그인을 가져온다
MethodResult result;
result = View();
var gets = Request.GetQueryNameValuePairs();// GetParameters(data);
var key_search = gets.Where(t => t.Key == "search").FirstOrDefault();
var model = GetGlobalModel();
var getParams = Request.GetQueryNameValuePairs();// GetParameters(data);
//기본값을 찾아서 없애줘야한다
var searchkey = string.Empty;
if (key_search.Key != null && key_search.Value.isEmpty() == false) searchkey = key_search.Value.Trim();
var tbody = new System.Text.StringBuilder();
//테이블데이터생성
var itemcnt = 0;
//if (searchkey.isEmpty() == false)
{
var db = new EEEntitiesProject();
var rows = db.Projects.Where(t => t.gcode == FCOMMON.info.Login.gcode && t.status.Contains("완료") == false).OrderByDescending(t => t.pdate).Take(50);
itemcnt = rows.Count();
foreach (var item in rows)
{
tbody.AppendLine("<tr>");
tbody.AppendLine($"<th scope='row'>{item.idx}</th>");
tbody.AppendLine($"<td>{item.status}</td>");
tbody.AppendLine($"<td>{item.progress}</td>");
tbody.AppendLine($"<td>{item.name}</td>");
tbody.AppendLine($"<td>{item.reqstaff}</td>");
tbody.AppendLine($"<td>{item.userManager}</td>");
tbody.AppendLine($"<td>{item.cnt}</td>");
tbody.AppendLine($"<td>{item.costo}</td>");
tbody.AppendLine($"<td>{item.costn}</td>");
tbody.AppendLine($"<td>{item.costo - item.costn}</td>");
tbody.AppendLine($"<td>{item.orderno}</td>");
if (item.memo != null)
tbody.AppendLine($"<td>{item.memo}</td>");
else
tbody.AppendLine($"<td>&nbsp;</td>");
//if (item.description.Length > 10)
// tbody.AppendLine($"<td>{item.description.Substring(0, 10)}...</td>");
//else
// tbody.AppendLine($"<td>{item.description}</td>");
tbody.AppendLine("</tr>");
}
}
//아잍쳄이 없는경우
if (itemcnt == 0)
{
tbody.AppendLine("<tr>");
tbody.AppendLine("<th scope='row'>1</th>");
tbody.AppendLine("<td colspan='6'>자료가 없습니다</td>");
tbody.AppendLine("</tr>");
}
var contents = result.Content.Replace("{search}", searchkey);
contents = contents.Replace("{tabledata}", tbody.ToString());
contents = contents.Replace("{cnt}", itemcnt.ToString());
contents = contents.Replace("{pidx}", id.ToString());
//공용값 적용
ApplyCommonValue(ref contents);
//최종문자 적용
result.Content = contents;
var resp = new HttpResponseMessage()
{
Content = new StringContent(
result.Content,
System.Text.Encoding.UTF8,
"text/html")
};
return resp;
}
[HttpGet]
public HttpResponseMessage partlist(int id)
{
//로그인이 되어있지않다면 로그인을 가져온다
MethodResult result;
result = View();
var gets = Request.GetQueryNameValuePairs();// GetParameters(data);
var key_search = gets.Where(t => t.Key == "search").FirstOrDefault();
var model = GetGlobalModel();
var getParams = Request.GetQueryNameValuePairs();// GetParameters(data);
//기본값을 찾아서 없애줘야한다
var searchkey = string.Empty;
if (key_search.Key != null && key_search.Value.isEmpty() == false) searchkey = key_search.Value.Trim();
var tbody = new System.Text.StringBuilder();
var contents = result.Content.Replace("{search}", searchkey);
//테이블데이터생성
var itemcnt = 0;
//if (searchkey.isEmpty() == false)
{
var db = new EEEntitiesProject();
var prjinfo = db.Projects.Where(t => t.gcode == FCOMMON.info.Login.gcode && t.idx == id).FirstOrDefault();
System.Text.StringBuilder tinfo = new System.Text.StringBuilder();
//프로젝트정보를 표시합니다.
tinfo.AppendLine("<tr>");
tinfo.AppendLine(string.Format("<td>{0}</td>", prjinfo.idx));
tinfo.AppendLine(string.Format("<td>{0}</td>", prjinfo.status));
tinfo.AppendLine(string.Format("<td>{0}</td>", prjinfo.progress));
tinfo.AppendLine(string.Format("<td>{0}</td>", prjinfo.name));
tinfo.AppendLine(string.Format("<td>{0}</td>", prjinfo.reqstaff));
tinfo.AppendLine(string.Format("<td>{0}</td>", prjinfo.userManager));
tinfo.AppendLine(string.Format("<td>{0}</td>", prjinfo.orderno));
tinfo.AppendLine("</tr>");
contents = contents.Replace("{tableinfo}", tinfo.ToString());
var rows = db.ProjectsPart.Where(t => t.Project == id).OrderBy(t=>t.no);
itemcnt = rows.Count();
foreach (var item in rows)
{
tbody.AppendLine("<tr>");
tbody.AppendLine($"<th scope='row'>{item.no}</th>");
tbody.AppendLine($"<td>{item.ItemGroup}</td>");
tbody.AppendLine($"<td>{item.ItemModel}</td>");
tbody.AppendLine($"<td>{item.ItemUnit}</td>");
tbody.AppendLine($"<td>{item.ItemName}</td>");
tbody.AppendLine($"<td>{item.ItemSid}</td>");
tbody.AppendLine($"<td>{item.ItemManu}</td>");
tbody.AppendLine($"<td>{item.qty}</td>");
tbody.AppendLine($"<td>{item.qtyn}</td>");
tbody.AppendLine($"<td>{item.price}</td>");
tbody.AppendLine($"<td>{item.amt}</td>");
tbody.AppendLine($"<td>{item.amtn}</td>");
tbody.AppendLine($"<td>{item.remark}</td>");
tbody.AppendLine($"<td>{item.qtybuy}</td>");
tbody.AppendLine($"<td>{item.qtyin}</td>");
tbody.AppendLine($"<td>{item.bbuy}</td>");
tbody.AppendLine($"<td>{item.bconfirm}</td>");
tbody.AppendLine("</tr>");
}
}
//아잍쳄이 없는경우
if (itemcnt == 0)
{
tbody.AppendLine("<tr>");
tbody.AppendLine("<th scope='row'>1</th>");
tbody.AppendLine("<td colspan='6'>자료가 없습니다</td>");
tbody.AppendLine("</tr>");
}
contents = contents.Replace("{tabledata}", tbody.ToString());
contents = contents.Replace("{cnt}", itemcnt.ToString());
contents = contents.Replace("{pidx}", id.ToString());
//공용값 적용 //공용값 적용
ApplyCommonValue(ref contents); ApplyCommonValue(ref contents);

View File

@@ -45,6 +45,11 @@ namespace Project
isBinary = false; isBinary = false;
content_type = "application/json"; content_type = "application/json";
} }
else if(v_ext == "vue")
{
isBinary = false;
content_type = "application/js";
}
else if (v_ext == "js") else if (v_ext == "js")
{ {
isBinary = false; isBinary = false;

View File

@@ -4,7 +4,7 @@
<xs:appinfo source="urn:schemas-microsoft-com:xml-msdatasource"> <xs:appinfo source="urn:schemas-microsoft-com:xml-msdatasource">
<DataSource DefaultConnectionIndex="0" FunctionsComponentName="QueriesTableAdapter" Modifier="AutoLayout, AnsiClass, Class, Public" SchemaSerializationMode="IncludeSchema" xmlns="urn:schemas-microsoft-com:xml-msdatasource"> <DataSource DefaultConnectionIndex="0" FunctionsComponentName="QueriesTableAdapter" Modifier="AutoLayout, AnsiClass, Class, Public" SchemaSerializationMode="IncludeSchema" xmlns="urn:schemas-microsoft-com:xml-msdatasource">
<Connections> <Connections>
<Connection AppSettingsObjectName="Settings" AppSettingsPropertyName="gwcs" ConnectionStringObject="" IsAppSettingsProperty="true" Modifier="Assembly" Name="gwcs (Settings)" ParameterPrefix="@" PropertyReference="ApplicationSettings.Project.Properties.Settings.GlobalReference.Default.gwcs" Provider="System.Data.SqlClient" /> <Connection AppSettingsObjectName="Settings" AppSettingsPropertyName="gwcs" IsAppSettingsProperty="true" Modifier="Assembly" Name="gwcs (Settings)" ParameterPrefix="@" PropertyReference="ApplicationSettings.WebServer.Properties.Settings.GlobalReference.Default.gwcs" Provider="System.Data.SqlClient" />
</Connections> </Connections>
<Tables> <Tables>
<TableAdapter BaseClass="System.ComponentModel.Component" DataAccessorModifier="AutoLayout, AnsiClass, Class, Public" DataAccessorName="vGroupUserTableAdapter" GeneratorDataComponentClassName="vGroupUserTableAdapter" Name="vGroupUser" UserDataComponentName="vGroupUserTableAdapter"> <TableAdapter BaseClass="System.ComponentModel.Component" DataAccessorModifier="AutoLayout, AnsiClass, Class, Public" DataAccessorName="vGroupUserTableAdapter" GeneratorDataComponentClassName="vGroupUserTableAdapter" Name="vGroupUser" UserDataComponentName="vGroupUserTableAdapter">
@@ -54,7 +54,7 @@ WHERE (gcode = @gcode) AND (ISNULL(dept, '') LIKE @dept) AND (ISNULL(processs,
<xs:element name="DataSet1" msdata:IsDataSet="true" msdata:UseCurrentLocale="true" msprop:EnableTableAdapterManager="true" msprop:Generator_DataSetName="DataSet1" msprop:Generator_UserDSName="DataSet1"> <xs:element name="DataSet1" msdata:IsDataSet="true" msdata:UseCurrentLocale="true" msprop:EnableTableAdapterManager="true" msprop:Generator_DataSetName="DataSet1" msprop:Generator_UserDSName="DataSet1">
<xs:complexType> <xs:complexType>
<xs:choice minOccurs="0" maxOccurs="unbounded"> <xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element name="ResultData" msprop:Generator_TableClassName="ResultDataDataTable" msprop:Generator_TableVarName="tableResultData" msprop:Generator_TablePropName="ResultData" msprop:Generator_RowDeletingName="ResultDataRowDeleting" msprop:Generator_RowChangingName="ResultDataRowChanging" msprop:Generator_RowEvHandlerName="ResultDataRowChangeEventHandler" msprop:Generator_RowDeletedName="ResultDataRowDeleted" msprop:Generator_UserTableName="ResultData" msprop:Generator_RowChangedName="ResultDataRowChanged" msprop:Generator_RowEvArgName="ResultDataRowChangeEvent" msprop:Generator_RowClassName="ResultDataRow"> <xs:element name="ResultData" msprop:Generator_TableClassName="ResultDataDataTable" msprop:Generator_TableVarName="tableResultData" msprop:Generator_RowChangedName="ResultDataRowChanged" msprop:Generator_TablePropName="ResultData" msprop:Generator_RowDeletingName="ResultDataRowDeleting" msprop:Generator_RowChangingName="ResultDataRowChanging" msprop:Generator_RowEvHandlerName="ResultDataRowChangeEventHandler" msprop:Generator_RowDeletedName="ResultDataRowDeleted" msprop:Generator_RowClassName="ResultDataRow" msprop:Generator_UserTableName="ResultData" msprop:Generator_RowEvArgName="ResultDataRowChangeEvent">
<xs:complexType> <xs:complexType>
<xs:sequence> <xs:sequence>
<xs:element name="idx" msdata:AutoIncrement="true" msdata:AutoIncrementSeed="1" msprop:Generator_ColumnVarNameInTable="columnidx" msprop:Generator_ColumnPropNameInRow="idx" msprop:Generator_ColumnPropNameInTable="idxColumn" msprop:Generator_UserColumnName="idx" type="xs:int" /> <xs:element name="idx" msdata:AutoIncrement="true" msdata:AutoIncrementSeed="1" msprop:Generator_ColumnVarNameInTable="columnidx" msprop:Generator_ColumnPropNameInRow="idx" msprop:Generator_ColumnPropNameInTable="idxColumn" msprop:Generator_UserColumnName="idx" type="xs:int" />
@@ -68,7 +68,7 @@ WHERE (gcode = @gcode) AND (ISNULL(dept, '') LIKE @dept) AND (ISNULL(processs,
</xs:sequence> </xs:sequence>
</xs:complexType> </xs:complexType>
</xs:element> </xs:element>
<xs:element name="Users" msprop:Generator_TableClassName="UsersDataTable" msprop:Generator_TableVarName="tableUsers" msprop:Generator_TablePropName="Users" msprop:Generator_RowDeletingName="UsersRowDeleting" msprop:Generator_RowChangingName="UsersRowChanging" msprop:Generator_RowEvHandlerName="UsersRowChangeEventHandler" msprop:Generator_RowDeletedName="UsersRowDeleted" msprop:Generator_UserTableName="Users" msprop:Generator_RowChangedName="UsersRowChanged" msprop:Generator_RowEvArgName="UsersRowChangeEvent" msprop:Generator_RowClassName="UsersRow"> <xs:element name="Users" msprop:Generator_TableClassName="UsersDataTable" msprop:Generator_TableVarName="tableUsers" msprop:Generator_RowChangedName="UsersRowChanged" msprop:Generator_TablePropName="Users" msprop:Generator_RowDeletingName="UsersRowDeleting" msprop:Generator_RowChangingName="UsersRowChanging" msprop:Generator_RowEvHandlerName="UsersRowChangeEventHandler" msprop:Generator_RowDeletedName="UsersRowDeleted" msprop:Generator_RowClassName="UsersRow" msprop:Generator_UserTableName="Users" msprop:Generator_RowEvArgName="UsersRowChangeEvent">
<xs:complexType> <xs:complexType>
<xs:sequence> <xs:sequence>
<xs:element name="idx" msdata:AutoIncrement="true" msdata:AutoIncrementSeed="1" msprop:Generator_ColumnVarNameInTable="columnidx" msprop:Generator_ColumnPropNameInRow="idx" msprop:Generator_ColumnPropNameInTable="idxColumn" msprop:Generator_UserColumnName="idx" type="xs:int" /> <xs:element name="idx" msdata:AutoIncrement="true" msdata:AutoIncrementSeed="1" msprop:Generator_ColumnVarNameInTable="columnidx" msprop:Generator_ColumnPropNameInRow="idx" msprop:Generator_ColumnPropNameInTable="idxColumn" msprop:Generator_UserColumnName="idx" type="xs:int" />
@@ -78,7 +78,7 @@ WHERE (gcode = @gcode) AND (ISNULL(dept, '') LIKE @dept) AND (ISNULL(processs,
</xs:sequence> </xs:sequence>
</xs:complexType> </xs:complexType>
</xs:element> </xs:element>
<xs:element name="Model" msprop:Generator_TableClassName="ModelDataTable" msprop:Generator_TableVarName="tableModel" msprop:Generator_TablePropName="Model" msprop:Generator_RowDeletingName="ModelRowDeleting" msprop:Generator_RowChangingName="ModelRowChanging" msprop:Generator_RowEvHandlerName="ModelRowChangeEventHandler" msprop:Generator_RowDeletedName="ModelRowDeleted" msprop:Generator_UserTableName="Model" msprop:Generator_RowChangedName="ModelRowChanged" msprop:Generator_RowEvArgName="ModelRowChangeEvent" msprop:Generator_RowClassName="ModelRow"> <xs:element name="Model" msprop:Generator_TableClassName="ModelDataTable" msprop:Generator_TableVarName="tableModel" msprop:Generator_RowChangedName="ModelRowChanged" msprop:Generator_TablePropName="Model" msprop:Generator_RowDeletingName="ModelRowDeleting" msprop:Generator_RowChangingName="ModelRowChanging" msprop:Generator_RowEvHandlerName="ModelRowChangeEventHandler" msprop:Generator_RowDeletedName="ModelRowDeleted" msprop:Generator_RowClassName="ModelRow" msprop:Generator_UserTableName="Model" msprop:Generator_RowEvArgName="ModelRowChangeEvent">
<xs:complexType> <xs:complexType>
<xs:sequence> <xs:sequence>
<xs:element name="idx" msdata:AutoIncrement="true" msdata:AutoIncrementSeed="1" msprop:Generator_ColumnVarNameInTable="columnidx" msprop:Generator_ColumnPropNameInRow="idx" msprop:Generator_ColumnPropNameInTable="idxColumn" msprop:Generator_UserColumnName="idx" type="xs:int" /> <xs:element name="idx" msdata:AutoIncrement="true" msdata:AutoIncrementSeed="1" msprop:Generator_ColumnVarNameInTable="columnidx" msprop:Generator_ColumnPropNameInRow="idx" msprop:Generator_ColumnPropNameInTable="idxColumn" msprop:Generator_UserColumnName="idx" type="xs:int" />
@@ -87,7 +87,7 @@ WHERE (gcode = @gcode) AND (ISNULL(dept, '') LIKE @dept) AND (ISNULL(processs,
</xs:sequence> </xs:sequence>
</xs:complexType> </xs:complexType>
</xs:element> </xs:element>
<xs:element name="vGroupUser" msprop:Generator_TableClassName="vGroupUserDataTable" msprop:Generator_TableVarName="tablevGroupUser" msprop:Generator_RowChangedName="vGroupUserRowChanged" msprop:Generator_TablePropName="vGroupUser" msprop:Generator_RowDeletingName="vGroupUserRowDeleting" msprop:Generator_RowChangingName="vGroupUserRowChanging" msprop:Generator_RowEvHandlerName="vGroupUserRowChangeEventHandler" msprop:Generator_RowDeletedName="vGroupUserRowDeleted" msprop:Generator_RowClassName="vGroupUserRow" msprop:Generator_UserTableName="vGroupUser" msprop:Generator_RowEvArgName="vGroupUserRowChangeEvent"> <xs:element name="vGroupUser" msprop:Generator_TableClassName="vGroupUserDataTable" msprop:Generator_TableVarName="tablevGroupUser" msprop:Generator_TablePropName="vGroupUser" msprop:Generator_RowDeletingName="vGroupUserRowDeleting" msprop:Generator_RowChangingName="vGroupUserRowChanging" msprop:Generator_RowEvHandlerName="vGroupUserRowChangeEventHandler" msprop:Generator_RowDeletedName="vGroupUserRowDeleted" msprop:Generator_UserTableName="vGroupUser" msprop:Generator_RowChangedName="vGroupUserRowChanged" msprop:Generator_RowEvArgName="vGroupUserRowChangeEvent" msprop:Generator_RowClassName="vGroupUserRow">
<xs:complexType> <xs:complexType>
<xs:sequence> <xs:sequence>
<xs:element name="gcode" msprop:Generator_ColumnVarNameInTable="columngcode" msprop:Generator_ColumnPropNameInRow="gcode" msprop:Generator_ColumnPropNameInTable="gcodeColumn" msprop:Generator_UserColumnName="gcode"> <xs:element name="gcode" msprop:Generator_ColumnVarNameInTable="columngcode" msprop:Generator_ColumnPropNameInRow="gcode" msprop:Generator_ColumnPropNameInTable="gcodeColumn" msprop:Generator_UserColumnName="gcode">

View File

@@ -152,6 +152,9 @@ namespace Project.Dialog
FCOMMON.info.Login.process = userdr.processs; FCOMMON.info.Login.process = userdr.processs;
FCOMMON.info.Login.permission = 0; FCOMMON.info.Login.permission = 0;
FCOMMON.info.Login.gpermission = int.Parse(gperm); FCOMMON.info.Login.gpermission = int.Parse(gperm);
FCOMMON.info.datapath = Pub.setting.SharedDataPath;
if(FCOMMON.info.datapath.isEmpty() && gCode == "EET1P") //210524
FCOMMON.info.datapath = @"\\k4fs3201n\k4bpartcenter$";
using (var dbEnity = new EEEntitiesMain()) using (var dbEnity = new EEEntitiesMain())
{ {

View File

@@ -1,118 +1,118 @@
namespace Project.Dialog namespace Project.Dialog
{ {
partial class fSelectDept partial class fSelectDept
{ {
/// <summary> /// <summary>
/// Required designer variable. /// Required designer variable.
/// </summary> /// </summary>
private System.ComponentModel.IContainer components = null; private System.ComponentModel.IContainer components = null;
/// <summary> /// <summary>
/// Clean up any resources being used. /// Clean up any resources being used.
/// </summary> /// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param> /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing) protected override void Dispose(bool disposing)
{ {
if (disposing && (components != null)) if (disposing && (components != null))
{ {
components.Dispose(); components.Dispose();
} }
base.Dispose(disposing); base.Dispose(disposing);
} }
#region Windows Form Designer generated code #region Windows Form Designer generated code
/// <summary> /// <summary>
/// Required method for Designer support - do not modify /// Required method for Designer support - do not modify
/// the contents of this method with the code editor. /// the contents of this method with the code editor.
/// </summary> /// </summary>
private void InitializeComponent() private void InitializeComponent()
{ {
this.components = new System.ComponentModel.Container(); this.components = new System.ComponentModel.Container();
FarPoint.Win.Spread.CellType.TextCellType textCellType1 = new FarPoint.Win.Spread.CellType.TextCellType(); FarPoint.Win.Spread.CellType.TextCellType textCellType1 = new FarPoint.Win.Spread.CellType.TextCellType();
this.fpSpread1 = new FarPoint.Win.Spread.FpSpread(); this.fpSpread1 = new FarPoint.Win.Spread.FpSpread();
this.dsMSSQL = new Project.dsMSSQL(); this.dsMSSQL = new Project.dsMSSQL();
this.bs = new System.Windows.Forms.BindingSource(this.components); this.bs = new System.Windows.Forms.BindingSource(this.components);
this.ta = new Project.dsMSSQLTableAdapters.UserGroupTableAdapter(); this.ta = new Project.dsMSSQLTableAdapters.UserGroupTableAdapter();
this.fpSpread1_Sheet1 = new FarPoint.Win.Spread.SheetView(); this.fpSpread1_Sheet1 = new FarPoint.Win.Spread.SheetView();
((System.ComponentModel.ISupportInitialize)(this.fpSpread1)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.fpSpread1)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.dsMSSQL)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.dsMSSQL)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.bs)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.bs)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.fpSpread1_Sheet1)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.fpSpread1_Sheet1)).BeginInit();
this.SuspendLayout(); this.SuspendLayout();
// //
// fpSpread1 // fpSpread1
// //
this.fpSpread1.Dock = System.Windows.Forms.DockStyle.Fill; this.fpSpread1.Dock = System.Windows.Forms.DockStyle.Fill;
this.fpSpread1.Location = new System.Drawing.Point(0, 0); this.fpSpread1.Location = new System.Drawing.Point(0, 0);
this.fpSpread1.Name = "fpSpread1"; this.fpSpread1.Name = "fpSpread1";
this.fpSpread1.Sheets.AddRange(new FarPoint.Win.Spread.SheetView[] { this.fpSpread1.Sheets.AddRange(new FarPoint.Win.Spread.SheetView[] {
this.fpSpread1_Sheet1}); this.fpSpread1_Sheet1});
this.fpSpread1.Size = new System.Drawing.Size(495, 562); this.fpSpread1.Size = new System.Drawing.Size(495, 562);
this.fpSpread1.TabIndex = 5; this.fpSpread1.TabIndex = 5;
// //
// dsMSSQL // dsMSSQL
// //
this.dsMSSQL.DataSetName = "dsMSSQL"; this.dsMSSQL.DataSetName = "dsMSSQL";
this.dsMSSQL.SchemaSerializationMode = System.Data.SchemaSerializationMode.IncludeSchema; this.dsMSSQL.SchemaSerializationMode = System.Data.SchemaSerializationMode.IncludeSchema;
// //
// bs // bs
// //
this.bs.DataMember = "UserGroup"; this.bs.DataMember = "UserGroup";
this.bs.DataSource = this.dsMSSQL; this.bs.DataSource = this.dsMSSQL;
// //
// ta // ta
// //
this.ta.ClearBeforeFill = true; this.ta.ClearBeforeFill = true;
// //
// fpSpread1_Sheet1 // fpSpread1_Sheet1
// //
this.fpSpread1_Sheet1.Reset(); this.fpSpread1_Sheet1.Reset();
this.fpSpread1_Sheet1.SheetName = "Sheet1"; this.fpSpread1_Sheet1.SheetName = "Sheet1";
// Formulas and custom names must be loaded with R1C1 reference style // Formulas and custom names must be loaded with R1C1 reference style
this.fpSpread1_Sheet1.ReferenceStyle = FarPoint.Win.Spread.Model.ReferenceStyle.R1C1; this.fpSpread1_Sheet1.ReferenceStyle = FarPoint.Win.Spread.Model.ReferenceStyle.R1C1;
this.fpSpread1_Sheet1.ColumnCount = 1; this.fpSpread1_Sheet1.ColumnCount = 1;
this.fpSpread1_Sheet1.ActiveColumnIndex = -1; this.fpSpread1_Sheet1.ActiveColumnIndex = -1;
this.fpSpread1_Sheet1.ActiveRowIndex = -1; this.fpSpread1_Sheet1.ActiveRowIndex = -1;
this.fpSpread1_Sheet1.AutoGenerateColumns = false; this.fpSpread1_Sheet1.AutoGenerateColumns = false;
this.fpSpread1_Sheet1.ColumnHeader.Cells.Get(0, 0).Value = "부서명"; this.fpSpread1_Sheet1.ColumnHeader.Cells.Get(0, 0).Value = "부서명";
this.fpSpread1_Sheet1.ColumnHeader.Rows.Get(0).Height = 32F; this.fpSpread1_Sheet1.ColumnHeader.Rows.Get(0).Height = 32F;
this.fpSpread1_Sheet1.Columns.Get(0).CellType = textCellType1; this.fpSpread1_Sheet1.Columns.Get(0).CellType = textCellType1;
this.fpSpread1_Sheet1.Columns.Get(0).DataField = "dept"; this.fpSpread1_Sheet1.Columns.Get(0).DataField = "dept";
this.fpSpread1_Sheet1.Columns.Get(0).Label = "부서명"; this.fpSpread1_Sheet1.Columns.Get(0).Label = "부서명";
this.fpSpread1_Sheet1.Columns.Get(0).Width = 413F; this.fpSpread1_Sheet1.Columns.Get(0).Width = 413F;
this.fpSpread1_Sheet1.DataAutoSizeColumns = false; this.fpSpread1_Sheet1.DataAutoSizeColumns = false;
this.fpSpread1_Sheet1.DataSource = this.bs; this.fpSpread1_Sheet1.DataSource = this.bs;
this.fpSpread1_Sheet1.RowHeader.Columns.Default.Resizable = false; this.fpSpread1_Sheet1.RowHeader.Columns.Default.Resizable = false;
this.fpSpread1_Sheet1.ReferenceStyle = FarPoint.Win.Spread.Model.ReferenceStyle.A1; this.fpSpread1_Sheet1.ReferenceStyle = FarPoint.Win.Spread.Model.ReferenceStyle.A1;
// //
// fSelectDept // fSelectDept
// //
this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 12F); this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 12F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(495, 562); this.ClientSize = new System.Drawing.Size(495, 562);
this.Controls.Add(this.fpSpread1); this.Controls.Add(this.fpSpread1);
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog; this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog;
this.MaximizeBox = false; this.MaximizeBox = false;
this.MinimizeBox = false; this.MinimizeBox = false;
this.Name = "fSelectDept"; this.Name = "fSelectDept";
this.Text = "부서목록"; this.Text = "부서목록";
this.Load += new System.EventHandler(this.fSelectDept_Load); this.Load += new System.EventHandler(this.fSelectDept_Load);
((System.ComponentModel.ISupportInitialize)(this.fpSpread1)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.fpSpread1)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.dsMSSQL)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.dsMSSQL)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.bs)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.bs)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.fpSpread1_Sheet1)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.fpSpread1_Sheet1)).EndInit();
this.ResumeLayout(false); this.ResumeLayout(false);
} }
#endregion #endregion
private FarPoint.Win.Spread.FpSpread fpSpread1; private FarPoint.Win.Spread.FpSpread fpSpread1;
private dsMSSQL dsMSSQL; private dsMSSQL dsMSSQL;
private System.Windows.Forms.BindingSource bs; private System.Windows.Forms.BindingSource bs;
private dsMSSQLTableAdapters.UserGroupTableAdapter ta; private dsMSSQLTableAdapters.UserGroupTableAdapter ta;
private FarPoint.Win.Spread.SheetView fpSpread1_Sheet1; private FarPoint.Win.Spread.SheetView fpSpread1_Sheet1;
} }
} }

View File

@@ -1,40 +1,40 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.ComponentModel; using System.ComponentModel;
using System.Data; using System.Data;
using System.Drawing; using System.Drawing;
using System.Linq; using System.Linq;
using System.Text; using System.Text;
using System.Threading.Tasks; using System.Threading.Tasks;
using System.Windows.Forms; using System.Windows.Forms;
namespace Project.Dialog namespace Project.Dialog
{ {
public partial class fSelectDept : FCOMMON.fBase public partial class fSelectDept : FCOMMON.fBase
{ {
public string deptName { get; set; } public string deptName { get; set; }
public fSelectDept() public fSelectDept()
{ {
InitializeComponent(); InitializeComponent();
deptName = string.Empty; deptName = string.Empty;
this.fpSpread1.KeyDown += (s1, e1) => { SelectData(); }; this.fpSpread1.KeyDown += (s1, e1) => { SelectData(); };
this.fpSpread1.CellDoubleClick += (s1, e1) => { SelectData(); }; this.fpSpread1.CellDoubleClick += (s1, e1) => { SelectData(); };
} }
private void fSelectDept_Load(object sender, EventArgs e) private void fSelectDept_Load(object sender, EventArgs e)
{ {
// TODO: 이 코드는 데이터를 'dsMSSQL.UserGroup' 테이블에 로드합니다. 필요한 경우 이 코드를 이동하거나 제거할 수 있습니다. // TODO: 이 코드는 데이터를 'dsMSSQL.UserGroup' 테이블에 로드합니다. 필요한 경우 이 코드를 이동하거나 제거할 수 있습니다.
this.ta.Fill(this.dsMSSQL.UserGroup); this.ta.Fill(this.dsMSSQL.UserGroup);
var ta = new dsMSSQLTableAdapters.UserGroupTableAdapter(); var ta = new dsMSSQLTableAdapters.UserGroupTableAdapter();
} }
void SelectData() void SelectData()
{ {
var drv = this.bs.Current as DataRowView; var drv = this.bs.Current as DataRowView;
if (drv == null) return; if (drv == null) return;
var dr = drv.Row as dsMSSQL.UserGroupRow; var dr = drv.Row as dsMSSQL.UserGroupRow;
this.deptName = dr.dept; this.deptName = dr.dept;
this.DialogResult = System.Windows.Forms.DialogResult.OK; this.DialogResult = System.Windows.Forms.DialogResult.OK;
} }
} }
} }

View File

@@ -4,7 +4,7 @@
<xs:appinfo source="urn:schemas-microsoft-com:xml-msdatasource"> <xs:appinfo source="urn:schemas-microsoft-com:xml-msdatasource">
<DataSource DefaultConnectionIndex="0" FunctionsComponentName="QueriesTableAdapter" Modifier="AutoLayout, AnsiClass, Class, Public" SchemaSerializationMode="IncludeSchema" xmlns="urn:schemas-microsoft-com:xml-msdatasource"> <DataSource DefaultConnectionIndex="0" FunctionsComponentName="QueriesTableAdapter" Modifier="AutoLayout, AnsiClass, Class, Public" SchemaSerializationMode="IncludeSchema" xmlns="urn:schemas-microsoft-com:xml-msdatasource">
<Connections> <Connections>
<Connection AppSettingsObjectName="Settings" AppSettingsPropertyName="PMPCS" ConnectionStringObject="" IsAppSettingsProperty="true" Modifier="Assembly" Name="PMPCS (Settings)" PropertyReference="ApplicationSettings.Project.Properties.Settings.GlobalReference.Default.PMPCS" Provider="System.Data.OleDb" /> <Connection AppSettingsObjectName="Settings" AppSettingsPropertyName="PMPCS" IsAppSettingsProperty="true" Modifier="Assembly" Name="PMPCS (Settings)" PropertyReference="ApplicationSettings.WebServer.Properties.Settings.GlobalReference.Default.PMPCS" Provider="System.Data.OleDb" />
</Connections> </Connections>
<Tables> <Tables>
<TableAdapter BaseClass="System.ComponentModel.Component" DataAccessorModifier="AutoLayout, AnsiClass, Class, Public" DataAccessorName="SPMasterTableAdapter" GeneratorDataComponentClassName="SPMasterTableAdapter" Name="SPMaster" UserDataComponentName="SPMasterTableAdapter"> <TableAdapter BaseClass="System.ComponentModel.Component" DataAccessorModifier="AutoLayout, AnsiClass, Class, Public" DataAccessorName="SPMasterTableAdapter" GeneratorDataComponentClassName="SPMasterTableAdapter" Name="SPMaster" UserDataComponentName="SPMasterTableAdapter">
@@ -195,7 +195,7 @@ FROM SPMaster</CommandText>
<xs:element name="DsPMPDatabase" msdata:IsDataSet="true" msdata:UseCurrentLocale="true" msprop:EnableTableAdapterManager="true" msprop:Generator_DataSetName="DsPMPDatabase" msprop:Generator_UserDSName="DsPMPDatabase"> <xs:element name="DsPMPDatabase" msdata:IsDataSet="true" msdata:UseCurrentLocale="true" msprop:EnableTableAdapterManager="true" msprop:Generator_DataSetName="DsPMPDatabase" msprop:Generator_UserDSName="DsPMPDatabase">
<xs:complexType> <xs:complexType>
<xs:choice minOccurs="0" maxOccurs="unbounded"> <xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element name="SPMaster" msprop:Generator_TableClassName="SPMasterDataTable" msprop:Generator_TableVarName="tableSPMaster" msprop:Generator_RowChangedName="SPMasterRowChanged" msprop:Generator_TablePropName="SPMaster" msprop:Generator_RowDeletingName="SPMasterRowDeleting" msprop:Generator_RowChangingName="SPMasterRowChanging" msprop:Generator_RowEvHandlerName="SPMasterRowChangeEventHandler" msprop:Generator_RowDeletedName="SPMasterRowDeleted" msprop:Generator_RowClassName="SPMasterRow" msprop:Generator_UserTableName="SPMaster" msprop:Generator_RowEvArgName="SPMasterRowChangeEvent"> <xs:element name="SPMaster" msprop:Generator_TableClassName="SPMasterDataTable" msprop:Generator_TableVarName="tableSPMaster" msprop:Generator_TablePropName="SPMaster" msprop:Generator_RowDeletingName="SPMasterRowDeleting" msprop:Generator_RowChangingName="SPMasterRowChanging" msprop:Generator_RowEvHandlerName="SPMasterRowChangeEventHandler" msprop:Generator_RowDeletedName="SPMasterRowDeleted" msprop:Generator_UserTableName="SPMaster" msprop:Generator_RowChangedName="SPMasterRowChanged" msprop:Generator_RowEvArgName="SPMasterRowChangeEvent" msprop:Generator_RowClassName="SPMasterRow">
<xs:complexType> <xs:complexType>
<xs:sequence> <xs:sequence>
<xs:element name="ID" msdata:AutoIncrement="true" msdata:AutoIncrementSeed="-1" msdata:AutoIncrementStep="-1" msprop:Generator_ColumnVarNameInTable="columnID" msprop:Generator_ColumnPropNameInRow="ID" msprop:Generator_ColumnPropNameInTable="IDColumn" msprop:Generator_UserColumnName="ID" type="xs:int" /> <xs:element name="ID" msdata:AutoIncrement="true" msdata:AutoIncrementSeed="-1" msdata:AutoIncrementStep="-1" msprop:Generator_ColumnVarNameInTable="columnID" msprop:Generator_ColumnPropNameInRow="ID" msprop:Generator_ColumnPropNameInTable="IDColumn" msprop:Generator_UserColumnName="ID" type="xs:int" />

View File

@@ -161,8 +161,14 @@
<Reference Include="libxl.net"> <Reference Include="libxl.net">
<HintPath>..\DLL\libxl.net.dll</HintPath> <HintPath>..\DLL\libxl.net.dll</HintPath>
</Reference> </Reference>
<Reference Include="Microsoft.Owin, Version=4.1.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL"> <Reference Include="Microsoft.Owin, Version=4.2.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.Owin.4.1.1\lib\net45\Microsoft.Owin.dll</HintPath> <HintPath>..\packages\Microsoft.Owin.4.2.0\lib\net45\Microsoft.Owin.dll</HintPath>
</Reference>
<Reference Include="Microsoft.Owin.Cors, Version=4.2.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.Owin.Cors.4.2.0\lib\net45\Microsoft.Owin.Cors.dll</HintPath>
</Reference>
<Reference Include="Microsoft.Owin.FileSystems, Version=4.2.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.Owin.FileSystems.4.2.0\lib\net45\Microsoft.Owin.FileSystems.dll</HintPath>
</Reference> </Reference>
<Reference Include="Microsoft.Owin.Host.HttpListener, Version=4.1.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL"> <Reference Include="Microsoft.Owin.Host.HttpListener, Version=4.1.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.Owin.Host.HttpListener.4.1.1\lib\net45\Microsoft.Owin.Host.HttpListener.dll</HintPath> <HintPath>..\packages\Microsoft.Owin.Host.HttpListener.4.1.1\lib\net45\Microsoft.Owin.Host.HttpListener.dll</HintPath>
@@ -170,6 +176,9 @@
<Reference Include="Microsoft.Owin.Hosting, Version=4.1.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL"> <Reference Include="Microsoft.Owin.Hosting, Version=4.1.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.Owin.Hosting.4.1.1\lib\net45\Microsoft.Owin.Hosting.dll</HintPath> <HintPath>..\packages\Microsoft.Owin.Hosting.4.1.1\lib\net45\Microsoft.Owin.Hosting.dll</HintPath>
</Reference> </Reference>
<Reference Include="Microsoft.Owin.StaticFiles, Version=4.2.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.Owin.StaticFiles.4.2.0\lib\net45\Microsoft.Owin.StaticFiles.dll</HintPath>
</Reference>
<Reference Include="Microsoft.SqlServer.Types, Version=14.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91, processorArchitecture=MSIL"> <Reference Include="Microsoft.SqlServer.Types, Version=14.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.SqlServer.Types.14.0.314.76\lib\net40\Microsoft.SqlServer.Types.dll</HintPath> <HintPath>..\packages\Microsoft.SqlServer.Types.14.0.314.76\lib\net40\Microsoft.SqlServer.Types.dll</HintPath>
</Reference> </Reference>
@@ -207,6 +216,9 @@
<HintPath>..\packages\System.ValueTuple.4.5.0\lib\netstandard1.0\System.ValueTuple.dll</HintPath> <HintPath>..\packages\System.ValueTuple.4.5.0\lib\netstandard1.0\System.ValueTuple.dll</HintPath>
</Reference> </Reference>
<Reference Include="System.Web" /> <Reference Include="System.Web" />
<Reference Include="System.Web.Cors, Version=5.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.AspNet.Cors.5.0.0\lib\net45\System.Web.Cors.dll</HintPath>
</Reference>
<Reference Include="System.Web.Http, Version=5.2.7.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL"> <Reference Include="System.Web.Http, Version=5.2.7.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.AspNet.WebApi.Core.5.2.7\lib\net45\System.Web.Http.dll</HintPath> <HintPath>..\packages\Microsoft.AspNet.WebApi.Core.5.2.7\lib\net45\System.Web.Http.dll</HintPath>
</Reference> </Reference>

View File

@@ -17,6 +17,7 @@ namespace Project
public int idx { get; set; } public int idx { get; set; }
public string gcode { get; set; } public string gcode { get; set; }
public Nullable<int> project { get; set; } public Nullable<int> project { get; set; }
public Nullable<int> no { get; set; }
public Nullable<int> seq { get; set; } public Nullable<int> seq { get; set; }
public string title { get; set; } public string title { get; set; }
public Nullable<int> sw { get; set; } public Nullable<int> sw { get; set; }
@@ -25,6 +26,7 @@ namespace Project
public Nullable<int> ewa { get; set; } public Nullable<int> ewa { get; set; }
public string uid { get; set; } public string uid { get; set; }
public string memo { get; set; } public string memo { get; set; }
public Nullable<int> appoval { get; set; }
public Nullable<int> progress { get; set; } public Nullable<int> progress { get; set; }
public string wuid { get; set; } public string wuid { get; set; }
public System.DateTime wdate { get; set; } public System.DateTime wdate { get; set; }

View File

@@ -26,12 +26,12 @@ namespace Project
} }
public virtual DbSet<EETGW_ProjecthistoryD> EETGW_ProjecthistoryD { get; set; } public virtual DbSet<EETGW_ProjecthistoryD> EETGW_ProjecthistoryD { get; set; }
public virtual DbSet<EETGW_ProjectsSchedule> EETGW_ProjectsSchedule { get; set; }
public virtual DbSet<EETGW_ProjectToDo> EETGW_ProjectToDo { get; set; } public virtual DbSet<EETGW_ProjectToDo> EETGW_ProjectToDo { get; set; }
public virtual DbSet<Projects> Projects { get; set; } public virtual DbSet<Projects> Projects { get; set; }
public virtual DbSet<ProjectsHistory> ProjectsHistory { get; set; } public virtual DbSet<ProjectsHistory> ProjectsHistory { get; set; }
public virtual DbSet<ProjectsIOMap> ProjectsIOMap { get; set; } public virtual DbSet<ProjectsIOMap> ProjectsIOMap { get; set; }
public virtual DbSet<ProjectsMailList> ProjectsMailList { get; set; } public virtual DbSet<ProjectsMailList> ProjectsMailList { get; set; }
public virtual DbSet<ProjectsPart> ProjectsPart { get; set; } public virtual DbSet<ProjectsPart> ProjectsPart { get; set; }
public virtual DbSet<EETGW_ProjectsSchedule> EETGW_ProjectsSchedule { get; set; }
} }
} }

View File

@@ -4,7 +4,7 @@
<edmx:Runtime> <edmx:Runtime>
<!-- SSDL content --> <!-- SSDL content -->
<edmx:StorageModels> <edmx:StorageModels>
<Schema Namespace="EEModelProject.Store" Provider="System.Data.SqlClient" ProviderManifestToken="2008" Alias="Self" xmlns:store="http://schemas.microsoft.com/ado/2007/12/edm/EntityStoreSchemaGenerator" xmlns:customannotation="http://schemas.microsoft.com/ado/2013/11/edm/customannotation" xmlns="http://schemas.microsoft.com/ado/2009/11/edm/ssdl"> <Schema Namespace="EEModelProject.Store" Provider="System.Data.SqlClient" ProviderManifestToken="2008" Alias="Self" xmlns:store="http://schemas.microsoft.com/ado/2007/12/edm/EntityStoreSchemaGenerator" xmlns:customannotation="http://schemas.microsoft.com/ado/2013/11/edm/customannotation" xmlns="http://schemas.microsoft.com/ado/2009/11/edm/ssdl">
<EntityType Name="EETGW_ProjecthistoryD"> <EntityType Name="EETGW_ProjecthistoryD">
<Key> <Key>
<PropertyRef Name="idx" /> <PropertyRef Name="idx" />
@@ -26,6 +26,7 @@
<Property Name="idx" Type="int" StoreGeneratedPattern="Identity" Nullable="false" /> <Property Name="idx" Type="int" StoreGeneratedPattern="Identity" Nullable="false" />
<Property Name="gcode" Type="varchar" MaxLength="20" /> <Property Name="gcode" Type="varchar" MaxLength="20" />
<Property Name="project" Type="int" /> <Property Name="project" Type="int" />
<Property Name="no" Type="int" />
<Property Name="seq" Type="int" /> <Property Name="seq" Type="int" />
<Property Name="title" Type="varchar" MaxLength="100" /> <Property Name="title" Type="varchar" MaxLength="100" />
<Property Name="sw" Type="int" /> <Property Name="sw" Type="int" />
@@ -34,6 +35,7 @@
<Property Name="ewa" Type="int" /> <Property Name="ewa" Type="int" />
<Property Name="uid" Type="varchar" MaxLength="50" /> <Property Name="uid" Type="varchar" MaxLength="50" />
<Property Name="memo" Type="varchar(max)" /> <Property Name="memo" Type="varchar(max)" />
<Property Name="appoval" Type="int" />
<Property Name="progress" Type="int" /> <Property Name="progress" Type="int" />
<Property Name="wuid" Type="varchar" MaxLength="20" Nullable="false" /> <Property Name="wuid" Type="varchar" MaxLength="20" Nullable="false" />
<Property Name="wdate" Type="smalldatetime" Nullable="false" /> <Property Name="wdate" Type="smalldatetime" Nullable="false" />
@@ -202,8 +204,7 @@
<EntitySet Name="ProjectsMailList" EntityType="Self.ProjectsMailList" Schema="dbo" store:Type="Tables" /> <EntitySet Name="ProjectsMailList" EntityType="Self.ProjectsMailList" Schema="dbo" store:Type="Tables" />
<EntitySet Name="ProjectsPart" EntityType="Self.ProjectsPart" Schema="dbo" store:Type="Tables" /> <EntitySet Name="ProjectsPart" EntityType="Self.ProjectsPart" Schema="dbo" store:Type="Tables" />
</EntityContainer> </EntityContainer>
</Schema> </Schema></edmx:StorageModels>
</edmx:StorageModels>
<!-- CSDL content --> <!-- CSDL content -->
<edmx:ConceptualModels> <edmx:ConceptualModels>
<Schema Namespace="EEModelProject" Alias="Self" annotation:UseStrongSpatialTypes="false" xmlns:annotation="http://schemas.microsoft.com/ado/2009/02/edm/annotation" xmlns:customannotation="http://schemas.microsoft.com/ado/2013/11/edm/customannotation" xmlns="http://schemas.microsoft.com/ado/2009/11/edm"> <Schema Namespace="EEModelProject" Alias="Self" annotation:UseStrongSpatialTypes="false" xmlns:annotation="http://schemas.microsoft.com/ado/2009/02/edm/annotation" xmlns:customannotation="http://schemas.microsoft.com/ado/2013/11/edm/customannotation" xmlns="http://schemas.microsoft.com/ado/2009/11/edm">
@@ -221,25 +222,6 @@
<Property Name="wuid" Type="String" MaxLength="20" FixedLength="false" Unicode="false" Nullable="false" /> <Property Name="wuid" Type="String" MaxLength="20" FixedLength="false" Unicode="false" Nullable="false" />
<Property Name="wdate" Type="DateTime" Nullable="false" Precision="0" /> <Property Name="wdate" Type="DateTime" Nullable="false" Precision="0" />
</EntityType> </EntityType>
<EntityType Name="EETGW_ProjectsSchedule">
<Key>
<PropertyRef Name="idx" />
</Key>
<Property Name="idx" Type="Int32" Nullable="false" annotation:StoreGeneratedPattern="Identity" />
<Property Name="gcode" Type="String" MaxLength="20" FixedLength="false" Unicode="false" />
<Property Name="project" Type="Int32" />
<Property Name="seq" Type="Int32" />
<Property Name="title" Type="String" MaxLength="100" FixedLength="false" Unicode="false" />
<Property Name="sw" Type="Int32" />
<Property Name="ew" Type="Int32" />
<Property Name="swa" Type="Int32" />
<Property Name="ewa" Type="Int32" />
<Property Name="uid" Type="String" MaxLength="50" FixedLength="false" Unicode="false" />
<Property Name="memo" Type="String" MaxLength="Max" FixedLength="false" Unicode="false" />
<Property Name="progress" Type="Int32" />
<Property Name="wuid" Type="String" MaxLength="20" FixedLength="false" Unicode="false" Nullable="false" />
<Property Name="wdate" Type="DateTime" Nullable="false" Precision="0" />
</EntityType>
<EntityType Name="EETGW_ProjectToDo"> <EntityType Name="EETGW_ProjectToDo">
<Key> <Key>
<PropertyRef Name="idx" /> <PropertyRef Name="idx" />
@@ -396,14 +378,35 @@
</EntityType> </EntityType>
<EntityContainer Name="EEEntitiesProject" annotation:LazyLoadingEnabled="true"> <EntityContainer Name="EEEntitiesProject" annotation:LazyLoadingEnabled="true">
<EntitySet Name="EETGW_ProjecthistoryD" EntityType="Self.EETGW_ProjecthistoryD" /> <EntitySet Name="EETGW_ProjecthistoryD" EntityType="Self.EETGW_ProjecthistoryD" />
<EntitySet Name="EETGW_ProjectsSchedule" EntityType="Self.EETGW_ProjectsSchedule" />
<EntitySet Name="EETGW_ProjectToDo" EntityType="Self.EETGW_ProjectToDo" /> <EntitySet Name="EETGW_ProjectToDo" EntityType="Self.EETGW_ProjectToDo" />
<EntitySet Name="Projects" EntityType="Self.Projects" /> <EntitySet Name="Projects" EntityType="Self.Projects" />
<EntitySet Name="ProjectsHistory" EntityType="Self.ProjectsHistory" /> <EntitySet Name="ProjectsHistory" EntityType="Self.ProjectsHistory" />
<EntitySet Name="ProjectsIOMap" EntityType="Self.ProjectsIOMap" /> <EntitySet Name="ProjectsIOMap" EntityType="Self.ProjectsIOMap" />
<EntitySet Name="ProjectsMailList" EntityType="Self.ProjectsMailList" /> <EntitySet Name="ProjectsMailList" EntityType="Self.ProjectsMailList" />
<EntitySet Name="ProjectsPart" EntityType="Self.ProjectsPart" /> <EntitySet Name="ProjectsPart" EntityType="Self.ProjectsPart" />
<EntitySet Name="EETGW_ProjectsSchedule" EntityType="EEModelProject.EETGW_ProjectsSchedule" />
</EntityContainer> </EntityContainer>
<EntityType Name="EETGW_ProjectsSchedule">
<Key>
<PropertyRef Name="idx" />
</Key>
<Property Name="idx" Type="Int32" Nullable="false" annotation:StoreGeneratedPattern="Identity" />
<Property Name="gcode" Type="String" MaxLength="20" FixedLength="false" Unicode="false" />
<Property Name="project" Type="Int32" />
<Property Name="no" Type="Int32" />
<Property Name="seq" Type="Int32" />
<Property Name="title" Type="String" MaxLength="100" FixedLength="false" Unicode="false" />
<Property Name="sw" Type="Int32" />
<Property Name="ew" Type="Int32" />
<Property Name="swa" Type="Int32" />
<Property Name="ewa" Type="Int32" />
<Property Name="uid" Type="String" MaxLength="50" FixedLength="false" Unicode="false" />
<Property Name="memo" Type="String" MaxLength="Max" FixedLength="false" Unicode="false" />
<Property Name="appoval" Type="Int32" />
<Property Name="progress" Type="Int32" />
<Property Name="wuid" Type="String" Nullable="false" MaxLength="20" FixedLength="false" Unicode="false" />
<Property Name="wdate" Type="DateTime" Nullable="false" Precision="0" />
</EntityType>
</Schema> </Schema>
</edmx:ConceptualModels> </edmx:ConceptualModels>
<!-- C-S mapping content --> <!-- C-S mapping content -->
@@ -425,26 +428,6 @@
</MappingFragment> </MappingFragment>
</EntityTypeMapping> </EntityTypeMapping>
</EntitySetMapping> </EntitySetMapping>
<EntitySetMapping Name="EETGW_ProjectsSchedule">
<EntityTypeMapping TypeName="EEModelProject.EETGW_ProjectsSchedule">
<MappingFragment StoreEntitySet="EETGW_ProjectsSchedule">
<ScalarProperty Name="idx" ColumnName="idx" />
<ScalarProperty Name="gcode" ColumnName="gcode" />
<ScalarProperty Name="project" ColumnName="project" />
<ScalarProperty Name="seq" ColumnName="seq" />
<ScalarProperty Name="title" ColumnName="title" />
<ScalarProperty Name="sw" ColumnName="sw" />
<ScalarProperty Name="ew" ColumnName="ew" />
<ScalarProperty Name="swa" ColumnName="swa" />
<ScalarProperty Name="ewa" ColumnName="ewa" />
<ScalarProperty Name="uid" ColumnName="uid" />
<ScalarProperty Name="memo" ColumnName="memo" />
<ScalarProperty Name="progress" ColumnName="progress" />
<ScalarProperty Name="wuid" ColumnName="wuid" />
<ScalarProperty Name="wdate" ColumnName="wdate" />
</MappingFragment>
</EntityTypeMapping>
</EntitySetMapping>
<EntitySetMapping Name="EETGW_ProjectToDo"> <EntitySetMapping Name="EETGW_ProjectToDo">
<EntityTypeMapping TypeName="EEModelProject.EETGW_ProjectToDo"> <EntityTypeMapping TypeName="EEModelProject.EETGW_ProjectToDo">
<MappingFragment StoreEntitySet="EETGW_ProjectToDo"> <MappingFragment StoreEntitySet="EETGW_ProjectToDo">
@@ -605,6 +588,28 @@
</MappingFragment> </MappingFragment>
</EntityTypeMapping> </EntityTypeMapping>
</EntitySetMapping> </EntitySetMapping>
<EntitySetMapping Name="EETGW_ProjectsSchedule">
<EntityTypeMapping TypeName="EEModelProject.EETGW_ProjectsSchedule">
<MappingFragment StoreEntitySet="EETGW_ProjectsSchedule">
<ScalarProperty Name="wdate" ColumnName="wdate" />
<ScalarProperty Name="wuid" ColumnName="wuid" />
<ScalarProperty Name="progress" ColumnName="progress" />
<ScalarProperty Name="appoval" ColumnName="appoval" />
<ScalarProperty Name="memo" ColumnName="memo" />
<ScalarProperty Name="uid" ColumnName="uid" />
<ScalarProperty Name="ewa" ColumnName="ewa" />
<ScalarProperty Name="swa" ColumnName="swa" />
<ScalarProperty Name="ew" ColumnName="ew" />
<ScalarProperty Name="sw" ColumnName="sw" />
<ScalarProperty Name="title" ColumnName="title" />
<ScalarProperty Name="seq" ColumnName="seq" />
<ScalarProperty Name="no" ColumnName="no" />
<ScalarProperty Name="project" ColumnName="project" />
<ScalarProperty Name="gcode" ColumnName="gcode" />
<ScalarProperty Name="idx" ColumnName="idx" />
</MappingFragment>
</EntityTypeMapping>
</EntitySetMapping>
</EntityContainerMapping> </EntityContainerMapping>
</Mapping> </Mapping>
</edmx:Mappings> </edmx:Mappings>

View File

@@ -6,13 +6,13 @@
<edmx:Diagrams> <edmx:Diagrams>
<Diagram DiagramId="e2d85008b4ed4fe5b32f2efa574b1ec7" Name="Diagram1"> <Diagram DiagramId="e2d85008b4ed4fe5b32f2efa574b1ec7" Name="Diagram1">
<EntityTypeShape EntityType="EEModelProject.EETGW_ProjecthistoryD" Width="1.5" PointX="0.75" PointY="0.75" IsExpanded="true" /> <EntityTypeShape EntityType="EEModelProject.EETGW_ProjecthistoryD" Width="1.5" PointX="0.75" PointY="0.75" IsExpanded="true" />
<EntityTypeShape EntityType="EEModelProject.EETGW_ProjectsSchedule" Width="1.5" PointX="2.75" PointY="0.75" IsExpanded="true" />
<EntityTypeShape EntityType="EEModelProject.EETGW_ProjectToDo" Width="1.5" PointX="4.75" PointY="0.75" IsExpanded="true" /> <EntityTypeShape EntityType="EEModelProject.EETGW_ProjectToDo" Width="1.5" PointX="4.75" PointY="0.75" IsExpanded="true" />
<EntityTypeShape EntityType="EEModelProject.Projects" Width="1.5" PointX="0.75" PointY="5.75" IsExpanded="true" /> <EntityTypeShape EntityType="EEModelProject.Projects" Width="1.5" PointX="0.75" PointY="5.75" IsExpanded="true" />
<EntityTypeShape EntityType="EEModelProject.ProjectsHistory" Width="1.5" PointX="2.75" PointY="5.75" IsExpanded="true" /> <EntityTypeShape EntityType="EEModelProject.ProjectsHistory" Width="1.5" PointX="2.75" PointY="5.75" IsExpanded="true" />
<EntityTypeShape EntityType="EEModelProject.ProjectsIOMap" Width="1.5" PointX="4.75" PointY="5.75" IsExpanded="true" /> <EntityTypeShape EntityType="EEModelProject.ProjectsIOMap" Width="1.5" PointX="4.75" PointY="5.75" IsExpanded="true" />
<EntityTypeShape EntityType="EEModelProject.ProjectsMailList" Width="1.5" PointX="6.75" PointY="0.75" IsExpanded="true" /> <EntityTypeShape EntityType="EEModelProject.ProjectsMailList" Width="1.5" PointX="6.75" PointY="0.75" IsExpanded="true" />
<EntityTypeShape EntityType="EEModelProject.ProjectsPart" Width="1.5" PointX="6.75" PointY="4.75" IsExpanded="true" /> <EntityTypeShape EntityType="EEModelProject.ProjectsPart" Width="1.5" PointX="6.75" PointY="4.75" IsExpanded="true" />
<EntityTypeShape EntityType="EEModelProject.EETGW_ProjectsSchedule" Width="1.5" PointX="9.375" PointY="0.75" />
</Diagram> </Diagram>
</edmx:Diagrams> </edmx:Diagrams>
</edmx:Designer> </edmx:Designer>

View File

@@ -44,6 +44,9 @@ namespace Project.OWIN
config.Routes.Add("icoRoute", icoRoute); config.Routes.Add("icoRoute", icoRoute);
config.Routes.Add("cssRoute", cssRoute); config.Routes.Add("cssRoute", cssRoute);
config.Routes.Add("defaultRoute", defaultRoute); config.Routes.Add("defaultRoute", defaultRoute);
appBuilder.UseStaticFiles();
appBuilder.UseCors(Microsoft.Owin.Cors.CorsOptions.AllowAll);
appBuilder.UseWebApi(config); appBuilder.UseWebApi(config);

View File

@@ -32,5 +32,5 @@ using System.Runtime.InteropServices;
// 모든 값을 지정하거나 아래와 같이 '*'를 사용하여 빌드 번호 및 수정 번호가 자동으로 // 모든 값을 지정하거나 아래와 같이 '*'를 사용하여 빌드 번호 및 수정 번호가 자동으로
// 지정되도록 할 수 있습니다. // 지정되도록 할 수 있습니다.
// [assembly: AssemblyVersion("1.0.*")] // [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("21.05.22.1350")] [assembly: AssemblyVersion("21.05.25.1500")]
[assembly: AssemblyFileVersion("21.05.22.1350")] [assembly: AssemblyFileVersion("21.05.25.1500")]

View File

@@ -53,6 +53,8 @@ namespace Project
[Description("Full Screen Window")] [Description("Full Screen Window")]
public Boolean FullScreen { get; set; } public Boolean FullScreen { get; set; }
public string SharedDataPath { get; set; }
[Category("Barcode"), DisplayName("Port Name")] [Category("Barcode"), DisplayName("Port Name")]
public string Barcode { get; set; } public string Barcode { get; set; }
@@ -68,6 +70,8 @@ namespace Project
public Setting() : this(Util.CurrentPath + "setting.xml") {} public Setting() : this(Util.CurrentPath + "setting.xml") {}
public Setting(string file) public Setting(string file)
{ {
this.filename = file; this.filename = file;

View File

@@ -1,44 +1,44 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.ComponentModel; using System.ComponentModel;
using System.Data; using System.Data;
using System.Drawing; using System.Drawing;
using System.Linq; using System.Linq;
using System.Text; using System.Text;
using System.Windows.Forms; using System.Windows.Forms;
namespace Project._Common namespace Project._Common
{ {
public partial class fNewID : Form public partial class fNewID : Form
{ {
public fNewID(string userid) public fNewID(string userid)
{ {
InitializeComponent(); InitializeComponent();
this.tbIDO.Text = userid; this.tbIDO.Text = userid;
} }
private void fNewPassword_Load(object sender, EventArgs e) private void fNewPassword_Load(object sender, EventArgs e)
{ {
} }
private void button1_Click(object sender, EventArgs e) private void button1_Click(object sender, EventArgs e)
{ {
if (tbIDN.Text.isEmpty()) if (tbIDN.Text.isEmpty())
{ {
Util.MsgE("Enter New ID"); Util.MsgE("Enter New ID");
tbIDN.Focus(); tbIDN.Focus();
return; return;
} }
if (tbIDN.Text == tbIDO.Text) if (tbIDN.Text == tbIDO.Text)
{ {
Util.MsgE("Same ID"); Util.MsgE("Same ID");
tbIDN.Focus(); tbIDN.Focus();
tbIDN.SelectAll(); tbIDN.SelectAll();
return; return;
} }
DialogResult = System.Windows.Forms.DialogResult.OK; DialogResult = System.Windows.Forms.DialogResult.OK;
} }
} }
} }

View File

@@ -1,55 +1,55 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.ComponentModel; using System.ComponentModel;
using System.Data; using System.Data;
using System.Drawing; using System.Drawing;
using System.Linq; using System.Linq;
using System.Text; using System.Text;
using System.Windows.Forms; using System.Windows.Forms;
namespace Project._Common namespace Project._Common
{ {
public partial class fNewPassword : Form public partial class fNewPassword : Form
{ {
public fNewPassword(string userid) public fNewPassword(string userid)
{ {
InitializeComponent(); InitializeComponent();
this.tbUserID.Text = userid; this.tbUserID.Text = userid;
} }
private void fNewPassword_Load(object sender, EventArgs e) private void fNewPassword_Load(object sender, EventArgs e)
{ {
} }
private void button1_Click(object sender, EventArgs e) private void button1_Click(object sender, EventArgs e)
{ {
if(tbPassO.Text.isEmpty()) if(tbPassO.Text.isEmpty())
{ {
Util.MsgE("OLd Password Error"); Util.MsgE("OLd Password Error");
tbPassO.Focus(); tbPassO.Focus();
return; return;
} }
if(tbPass1.Text.isEmpty()) if(tbPass1.Text.isEmpty())
{ {
Util.MsgE("NEW Password Error"); Util.MsgE("NEW Password Error");
tbPass1.Focus(); tbPass1.Focus();
return; return;
} }
if(tbPass2.Text.isEmpty()) if(tbPass2.Text.isEmpty())
{ {
Util.MsgE("New Password Verify Error"); Util.MsgE("New Password Verify Error");
tbPass2.Focus(); tbPass2.Focus();
return; return;
} }
if(tbPass2.Text != tbPass1.Text) if(tbPass2.Text != tbPass1.Text)
{ {
Util.MsgE("Password is not Same"); Util.MsgE("Password is not Same");
tbPass2.Focus(); tbPass2.Focus();
tbPass2.SelectAll(); tbPass2.SelectAll();
return; return;
} }
DialogResult = System.Windows.Forms.DialogResult.OK; DialogResult = System.Windows.Forms.DialogResult.OK;
} }
} }
} }

View File

@@ -30,7 +30,7 @@
</dependentAssembly> </dependentAssembly>
<dependentAssembly> <dependentAssembly>
<assemblyIdentity name="Microsoft.Owin" publicKeyToken="31bf3856ad364e35" culture="neutral" /> <assemblyIdentity name="Microsoft.Owin" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.1.1.0" newVersion="4.1.1.0" /> <bindingRedirect oldVersion="0.0.0.0-4.2.0.0" newVersion="4.2.0.0" />
</dependentAssembly> </dependentAssembly>
<dependentAssembly> <dependentAssembly>
<assemblyIdentity name="Microsoft.ReportViewer.Common" publicKeyToken="89845dcd8080cc91" culture="neutral" /> <assemblyIdentity name="Microsoft.ReportViewer.Common" publicKeyToken="89845dcd8080cc91" culture="neutral" />

View File

@@ -4,7 +4,7 @@
<xs:appinfo source="urn:schemas-microsoft-com:xml-msdatasource"> <xs:appinfo source="urn:schemas-microsoft-com:xml-msdatasource">
<DataSource DefaultConnectionIndex="0" FunctionsComponentName="QueriesTableAdapter" Modifier="AutoLayout, AnsiClass, Class, Public" SchemaSerializationMode="IncludeSchema" xmlns="urn:schemas-microsoft-com:xml-msdatasource"> <DataSource DefaultConnectionIndex="0" FunctionsComponentName="QueriesTableAdapter" Modifier="AutoLayout, AnsiClass, Class, Public" SchemaSerializationMode="IncludeSchema" xmlns="urn:schemas-microsoft-com:xml-msdatasource">
<Connections> <Connections>
<Connection AppSettingsObjectName="Settings" AppSettingsPropertyName="csAccess" ConnectionStringObject="" IsAppSettingsProperty="true" Modifier="Assembly" Name="csAccess (Settings)" ParameterPrefix="@" PropertyReference="ApplicationSettings.Project.Properties.Settings.GlobalReference.Default.csAccess" Provider="System.Data.SqlClient" /> <Connection AppSettingsObjectName="Settings" AppSettingsPropertyName="csAccess" IsAppSettingsProperty="true" Modifier="Assembly" Name="csAccess (Settings)" ParameterPrefix="@" PropertyReference="ApplicationSettings.WebServer.Properties.Settings.GlobalReference.Default.csAccess" Provider="System.Data.SqlClient" />
</Connections> </Connections>
<Tables> <Tables>
<TableAdapter BaseClass="System.ComponentModel.Component" DataAccessorModifier="AutoLayout, AnsiClass, Class, Public" DataAccessorName="GrpListTableAdapter" GeneratorDataComponentClassName="GrpListTableAdapter" Name="GrpList" UserDataComponentName="GrpListTableAdapter"> <TableAdapter BaseClass="System.ComponentModel.Component" DataAccessorModifier="AutoLayout, AnsiClass, Class, Public" DataAccessorName="GrpListTableAdapter" GeneratorDataComponentClassName="GrpListTableAdapter" Name="GrpList" UserDataComponentName="GrpListTableAdapter">
@@ -79,7 +79,7 @@ and isnull(PersonUser2,'') = @dept</CommandText>
<xs:element name="dsAccess" msdata:IsDataSet="true" msdata:UseCurrentLocale="true" msprop:EnableTableAdapterManager="true" msprop:Generator_DataSetName="dsAccess" msprop:Generator_UserDSName="dsAccess"> <xs:element name="dsAccess" msdata:IsDataSet="true" msdata:UseCurrentLocale="true" msprop:EnableTableAdapterManager="true" msprop:Generator_DataSetName="dsAccess" msprop:Generator_UserDSName="dsAccess">
<xs:complexType> <xs:complexType>
<xs:choice minOccurs="0" maxOccurs="unbounded"> <xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element name="GrpList" msprop:Generator_TableClassName="GrpListDataTable" msprop:Generator_TableVarName="tableGrpList" msprop:Generator_TablePropName="GrpList" msprop:Generator_RowDeletingName="GrpListRowDeleting" msprop:Generator_RowChangingName="GrpListRowChanging" msprop:Generator_RowEvHandlerName="GrpListRowChangeEventHandler" msprop:Generator_RowDeletedName="GrpListRowDeleted" msprop:Generator_UserTableName="GrpList" msprop:Generator_RowChangedName="GrpListRowChanged" msprop:Generator_RowEvArgName="GrpListRowChangeEvent" msprop:Generator_RowClassName="GrpListRow"> <xs:element name="GrpList" msprop:Generator_TableClassName="GrpListDataTable" msprop:Generator_TableVarName="tableGrpList" msprop:Generator_RowChangedName="GrpListRowChanged" msprop:Generator_TablePropName="GrpList" msprop:Generator_RowDeletingName="GrpListRowDeleting" msprop:Generator_RowChangingName="GrpListRowChanging" msprop:Generator_RowEvHandlerName="GrpListRowChangeEventHandler" msprop:Generator_RowDeletedName="GrpListRowDeleted" msprop:Generator_RowClassName="GrpListRow" msprop:Generator_UserTableName="GrpList" msprop:Generator_RowEvArgName="GrpListRowChangeEvent">
<xs:complexType> <xs:complexType>
<xs:sequence> <xs:sequence>
<xs:element name="PersonUser2" msprop:Generator_ColumnVarNameInTable="columnPersonUser2" msprop:Generator_ColumnPropNameInRow="PersonUser2" msprop:Generator_ColumnPropNameInTable="PersonUser2Column" msprop:Generator_UserColumnName="PersonUser2" minOccurs="0"> <xs:element name="PersonUser2" msprop:Generator_ColumnVarNameInTable="columnPersonUser2" msprop:Generator_ColumnPropNameInRow="PersonUser2" msprop:Generator_ColumnPropNameInTable="PersonUser2Column" msprop:Generator_UserColumnName="PersonUser2" minOccurs="0">
@@ -92,7 +92,7 @@ and isnull(PersonUser2,'') = @dept</CommandText>
</xs:sequence> </xs:sequence>
</xs:complexType> </xs:complexType>
</xs:element> </xs:element>
<xs:element name="VIEW_CARD_PERSON" msprop:Generator_TableClassName="VIEW_CARD_PERSONDataTable" msprop:Generator_TableVarName="tableVIEW_CARD_PERSON" msprop:Generator_TablePropName="VIEW_CARD_PERSON" msprop:Generator_RowDeletingName="VIEW_CARD_PERSONRowDeleting" msprop:Generator_RowChangingName="VIEW_CARD_PERSONRowChanging" msprop:Generator_RowEvHandlerName="VIEW_CARD_PERSONRowChangeEventHandler" msprop:Generator_RowDeletedName="VIEW_CARD_PERSONRowDeleted" msprop:Generator_UserTableName="VIEW_CARD_PERSON" msprop:Generator_RowChangedName="VIEW_CARD_PERSONRowChanged" msprop:Generator_RowEvArgName="VIEW_CARD_PERSONRowChangeEvent" msprop:Generator_RowClassName="VIEW_CARD_PERSONRow"> <xs:element name="VIEW_CARD_PERSON" msprop:Generator_TableClassName="VIEW_CARD_PERSONDataTable" msprop:Generator_TableVarName="tableVIEW_CARD_PERSON" msprop:Generator_RowChangedName="VIEW_CARD_PERSONRowChanged" msprop:Generator_TablePropName="VIEW_CARD_PERSON" msprop:Generator_RowDeletingName="VIEW_CARD_PERSONRowDeleting" msprop:Generator_RowChangingName="VIEW_CARD_PERSONRowChanging" msprop:Generator_RowEvHandlerName="VIEW_CARD_PERSONRowChangeEventHandler" msprop:Generator_RowDeletedName="VIEW_CARD_PERSONRowDeleted" msprop:Generator_RowClassName="VIEW_CARD_PERSONRow" msprop:Generator_UserTableName="VIEW_CARD_PERSON" msprop:Generator_RowEvArgName="VIEW_CARD_PERSONRowChangeEvent">
<xs:complexType> <xs:complexType>
<xs:sequence> <xs:sequence>
<xs:element name="CardFullNo" msprop:Generator_ColumnVarNameInTable="columnCardFullNo" msprop:Generator_ColumnPropNameInRow="CardFullNo" msprop:Generator_ColumnPropNameInTable="CardFullNoColumn" msprop:Generator_UserColumnName="CardFullNo"> <xs:element name="CardFullNo" msprop:Generator_ColumnVarNameInTable="columnCardFullNo" msprop:Generator_ColumnPropNameInRow="CardFullNo" msprop:Generator_ColumnPropNameInTable="CardFullNoColumn" msprop:Generator_UserColumnName="CardFullNo">

File diff suppressed because it is too large Load Diff

View File

@@ -123,7 +123,13 @@ namespace Project
Func_Login(); Func_Login();
if(Pub.setting.SharedDataPath.isEmpty() && FCOMMON.info.Login.gcode == "EET1P") //210524
{
FCOMMON.info.datapath = @"\\k4fs3201n\k4bpartcenter$";
Pub.setting.SharedDataPath = FCOMMON.info.datapath;
Pub.setting.Save();
}
Update_Site(); Update_Site();
bw.RunWorkerAsync(); //background worker bw.RunWorkerAsync(); //background worker

View File

@@ -9,14 +9,19 @@
<package id="EntityFramework.ko" version="6.2.0" targetFramework="net45" /> <package id="EntityFramework.ko" version="6.2.0" targetFramework="net45" />
<package id="HtmlAgilityPack" version="1.4.9" targetFramework="net452" /> <package id="HtmlAgilityPack" version="1.4.9" targetFramework="net452" />
<package id="HtmlAgilityPack.CssSelectors" version="1.0.2" targetFramework="net452" /> <package id="HtmlAgilityPack.CssSelectors" version="1.0.2" targetFramework="net452" />
<package id="Microsoft.AspNet.Cors" version="5.0.0" targetFramework="net46" />
<package id="Microsoft.AspNet.WebApi.Client" version="5.2.7" targetFramework="net452" /> <package id="Microsoft.AspNet.WebApi.Client" version="5.2.7" targetFramework="net452" />
<package id="Microsoft.AspNet.WebApi.Core" version="5.2.7" targetFramework="net452" /> <package id="Microsoft.AspNet.WebApi.Core" version="5.2.7" targetFramework="net452" />
<package id="Microsoft.AspNet.WebApi.Owin" version="5.2.7" targetFramework="net452" /> <package id="Microsoft.AspNet.WebApi.Owin" version="5.2.7" targetFramework="net452" />
<package id="Microsoft.AspNet.WebApi.OwinSelfHost" version="5.2.7" targetFramework="net452" /> <package id="Microsoft.AspNet.WebApi.OwinSelfHost" version="5.2.7" targetFramework="net452" />
<package id="Microsoft.CSharp" version="4.7.0" targetFramework="net46" /> <package id="Microsoft.CSharp" version="4.7.0" targetFramework="net46" />
<package id="Microsoft.Owin" version="4.1.1" targetFramework="net452" /> <package id="Microsoft.Owin" version="4.2.0" targetFramework="net46" />
<package id="Microsoft.Owin.Cors" version="4.2.0" targetFramework="net46" />
<package id="Microsoft.Owin.FileSystems" version="4.2.0" targetFramework="net46" />
<package id="Microsoft.Owin.Host.HttpListener" version="4.1.1" targetFramework="net452" /> <package id="Microsoft.Owin.Host.HttpListener" version="4.1.1" targetFramework="net452" />
<package id="Microsoft.Owin.Hosting" version="4.1.1" targetFramework="net452" /> <package id="Microsoft.Owin.Hosting" version="4.1.1" targetFramework="net452" />
<package id="Microsoft.Owin.StaticFiles" version="4.2.0" targetFramework="net46" />
<package id="Microsoft.Owin.StaticFiles.ko" version="4.2.0" targetFramework="net46" />
<package id="Microsoft.ReportingServices.ReportViewerControl.Winforms" version="150.1449.0" targetFramework="net452" /> <package id="Microsoft.ReportingServices.ReportViewerControl.Winforms" version="150.1449.0" targetFramework="net452" />
<package id="Microsoft.SqlServer.Types" version="14.0.314.76" targetFramework="net452" /> <package id="Microsoft.SqlServer.Types" version="14.0.314.76" targetFramework="net452" />
<package id="Newtonsoft.Json" version="12.0.3" targetFramework="net452" /> <package id="Newtonsoft.Json" version="12.0.3" targetFramework="net452" />

View File

@@ -56,10 +56,10 @@ namespace FCOMMON
public static string libxlCompany = "Amkor Technology korea, Inc"; public static string libxlCompany = "Amkor Technology korea, Inc";
public static string libxlKey = "windows-282b2b0800c5e0016bb06a6fafjfd6o8"; public static string libxlKey = "windows-282b2b0800c5e0016bb06a6fafjfd6o8";
public static int camIndex = 0; public static int camIndex = 0;
public static string serverip = "10.131.32.33"; public static string datapath;
public static string ftp_id = "project"; //public static string ftp_id = "project";
public static string ftp_pw = "Amkor1234"; //public static string ftp_pw = "Amkor1234";
public static int ftp_port = 2121; //public static int ftp_port = 2121;
public static bool ftp_passive = true; //public static bool ftp_passive = true;
} }
} }

View File

@@ -20,7 +20,7 @@
<EntityTypeShape EntityType="EEModel.JobReport" Width="1.5" PointX="13.375" PointY="0.75" /> <EntityTypeShape EntityType="EEModel.JobReport" Width="1.5" PointX="13.375" PointY="0.75" />
<EntityTypeShape EntityType="EEModel.vGroupUser" Width="1.5" PointX="13.75" PointY="6.375" /> <EntityTypeShape EntityType="EEModel.vGroupUser" Width="1.5" PointX="13.75" PointY="6.375" />
<EntityTypeShape EntityType="EEModel.vJobReportForUser" Width="1.5" PointX="11.375" PointY="13.75" /> <EntityTypeShape EntityType="EEModel.vJobReportForUser" Width="1.5" PointX="11.375" PointY="13.75" />
<EntityTypeShape EntityType="EEModel.EETGW_ProjectsSchedule" Width="1.5" PointX="0.75" PointY="4.75" /> <EntityTypeShape EntityType="EEModel.EETGW_ProjectsSchedule" Width="3.125" PointX="0.75" PointY="4.75" />
<EntityTypeShape EntityType="EEModel.Auth" Width="1.5" PointX="5.375" PointY="9.75" /> <EntityTypeShape EntityType="EEModel.Auth" Width="1.5" PointX="5.375" PointY="9.75" />
<EntityTypeShape EntityType="EEModel.Projects" Width="1.5" PointX="13.375" PointY="12.75" /> <EntityTypeShape EntityType="EEModel.Projects" Width="1.5" PointX="13.375" PointY="12.75" />
<EntityTypeShape EntityType="EEModel.vEETGW_Project_LayoutList" Width="1.5" PointX="15.375" PointY="0.75" /> <EntityTypeShape EntityType="EEModel.vEETGW_Project_LayoutList" Width="1.5" PointX="15.375" PointY="0.75" />

View File

@@ -32,7 +32,7 @@ namespace FPJ0000.Note
Boolean binit = false; Boolean binit = false;
private void __Load(object sender, EventArgs e) private void __Load(object sender, EventArgs e)
{ {
this.dtSD.Text = DateTime.Now.AddYears(-1).ToString("yyyy-MM-01"); this.dtSD.Text = DateTime.Now.AddYears(-1).ToString("yyyy-MM-01");
@@ -56,7 +56,7 @@ namespace FPJ0000.Note
foreach (FarPoint.Win.Spread.Column col in fpSpread1.ActiveSheet.Columns) foreach (FarPoint.Win.Spread.Column col in fpSpread1.ActiveSheet.Columns)
col.Locked = true; col.Locked = true;
} }
refreshData(); refreshData();
binit = true; binit = true;
@@ -71,7 +71,7 @@ namespace FPJ0000.Note
{ {
} }
void dtSD_KeyDown(object sender, KeyEventArgs e) void dtSD_KeyDown(object sender, KeyEventArgs e)
{ {
if (e.KeyCode != Keys.Enter) return; if (e.KeyCode != Keys.Enter) return;
@@ -109,7 +109,7 @@ namespace FPJ0000.Note
{ {
// string state = "%"; // string state = "%";
// if (cmbState.SelectedIndex > 0) state = cmbState.Text.Split(',')[0].Substring(1); // if (cmbState.SelectedIndex > 0) state = cmbState.Text.Split(',')[0].Substring(1);
//var cmd = new System.Data.SqlClient.SqlCommand("select idx,gcode,pdate,uid,'' as description,'' as description2,share,wuid,wdate from eetgw_note where gcode = @gcode and pdate between @sd and @ed and (uid=@uid or isnull(share,0) = 1)",ta.Connection); //var cmd = new System.Data.SqlClient.SqlCommand("select idx,gcode,pdate,uid,'' as description,'' as description2,share,wuid,wdate from eetgw_note where gcode = @gcode and pdate between @sd and @ed and (uid=@uid or isnull(share,0) = 1)",ta.Connection);
//cmd.Parameters.Add("gcode", SqlDbType.VarChar).Value = FCOMMON.info.Login.gcode; //cmd.Parameters.Add("gcode", SqlDbType.VarChar).Value = FCOMMON.info.Login.gcode;
//cmd.Parameters.Add("sd", SqlDbType.VarChar).Value = dtSD.Text; //cmd.Parameters.Add("sd", SqlDbType.VarChar).Value = dtSD.Text;
@@ -137,7 +137,7 @@ namespace FPJ0000.Note
var stateStr = false; var stateStr = false;
if (state != null) stateStr = (bool)state; if (state != null) stateStr = (bool)state;
if(stateStr == true) if (stateStr == true)
this.fpSpread1.ActiveSheet.Rows[i].BackColor = Color.WhiteSmoke; this.fpSpread1.ActiveSheet.Rows[i].BackColor = Color.WhiteSmoke;
else else
this.fpSpread1.ActiveSheet.Rows[i].BackColor = Color.SkyBlue; this.fpSpread1.ActiveSheet.Rows[i].BackColor = Color.SkyBlue;
@@ -259,7 +259,7 @@ namespace FPJ0000.Note
{ {
if (filter != "") filter += " or "; if (filter != "") filter += " or ";
filter += col + " like ?"; filter += col + " like ?";
} }
filter = filter.Replace("?", "'%" + search + "%'"); filter = filter.Replace("?", "'%" + search + "%'");
this.bs.Filter = filter; this.bs.Filter = filter;
tbFind.BackColor = Color.Lime; tbFind.BackColor = Color.Lime;
@@ -319,7 +319,7 @@ namespace FPJ0000.Note
private void btCopy_Click(object sender, EventArgs e) private void btCopy_Click(object sender, EventArgs e)
{ {
// funcCopy(); //190509 // funcCopy(); //190509
} }
//void funcCopy() //void funcCopy()
//{ //{
@@ -419,7 +419,7 @@ namespace FPJ0000.Note
private void toolStripButton1_Click(object sender, EventArgs e) private void toolStripButton1_Click(object sender, EventArgs e)
{ {
} }
private void toolStripButton2_Click(object sender, EventArgs e) private void toolStripButton2_Click(object sender, EventArgs e)
@@ -443,15 +443,15 @@ namespace FPJ0000.Note
var dr = drv.Row as DSNote.EETGW_NoteRow; var dr = drv.Row as DSNote.EETGW_NoteRow;
var serverpath = Properties.Settings.Default.SharePath; // @"\\10.131.32.29\Data\Project"; //var serverpath = Properties.Settings.Default.SharePath; // @"\\10.131.32.29\Data\Project";
if (System.IO.Directory.Exists(serverpath) == false) //if (System.IO.Directory.Exists(serverpath) == false)
{ //{
FCOMMON.Util.MsgE("프로젝트 기본경로가 존재하지 않아 진행할 수 없습니다\n\n" + // FCOMMON.Util.MsgE("프로젝트 기본경로가 존재하지 않아 진행할 수 없습니다\n\n" +
serverpath); // serverpath);
return; // return;
} //}
var path = serverpath + "\\Note\\" + dr.guid; var path = System.IO.Path.Combine(FCOMMON.info.datapath,"Data","Note", dr.guid);
if (System.IO.Directory.Exists(path) == false) if (System.IO.Directory.Exists(path) == false)
{ {
try try

View File

@@ -210,7 +210,7 @@ namespace FPJ0000.Note
private void button1_Click_1(object sender, EventArgs e) private void button1_Click_1(object sender, EventArgs e)
{ {
var serverpath = Properties.Settings.Default.SharePath; // @"\\10.131.32.29\Data\Project"; var serverpath = FCOMMON.info.datapath; // @"\\10.131.32.29\Data\Project";
if (System.IO.Directory.Exists(serverpath) == false) if (System.IO.Directory.Exists(serverpath) == false)
{ {
FCOMMON.Util.MsgE("프로젝트 기본경로가 존재하지 않아 진행할 수 없습니다\n\n" + FCOMMON.Util.MsgE("프로젝트 기본경로가 존재하지 않아 진행할 수 없습니다\n\n" +

View File

@@ -770,9 +770,9 @@ namespace FPJ0000
var drv = this.bsPart.Current as DataRowView; var drv = this.bsPart.Current as DataRowView;
if (drv == null) return; if (drv == null) return;
var dr = drv.Row as dsPRJ.ProjectPartStatusRow; var dr = drv.Row as dsPRJ.ProjectPartStatusRow;
var serverpath = System.IO.Path.Combine(FCOMMON.info.datapath, "Data", "Project");
// var serverpath = Properties.Settings.Default.SharePath + @"\Project"; //
var serverpath = Properties.Settings.Default.SharePath + @"\Project"; //
if (dr.path.isEmpty() == false) if (dr.path.isEmpty() == false)
{ {

View File

@@ -96,14 +96,14 @@ namespace FPJ0000
btSendMail.Enabled = false; btSendMail.Enabled = false;
tabControl2.Enabled = false; tabControl2.Enabled = false;
} }
else else
{ {
//디비에서 조회한다. //디비에서 조회한다.
var dtMessage = ta.GetbyIDX(dr.idx); var dtMessage = ta.GetbyIDX(dr.idx);
if(dtMessage.Rows.Count > 0) if (dtMessage.Rows.Count > 0)
{ {
var dr2 = dtMessage.Rows[0] as dsPRJ.ProjectsRow; var dr2 = dtMessage.Rows[0] as dsPRJ.ProjectsRow;
if (string.IsNullOrEmpty(dr2.CMP_After) == false) rtAft.Rtf = dr2.CMP_After; if (string.IsNullOrEmpty(dr2.CMP_After) == false) rtAft.Rtf = dr2.CMP_After;
@@ -111,7 +111,7 @@ namespace FPJ0000
if (string.IsNullOrEmpty(dr2.CMP_Description) == false) rtDesc.Rtf = dr2.CMP_Description; if (string.IsNullOrEmpty(dr2.CMP_Description) == false) rtDesc.Rtf = dr2.CMP_Description;
if (string.IsNullOrEmpty(dr2.CMP_Background) == false) rtBack.Rtf = dr2.CMP_Background; if (string.IsNullOrEmpty(dr2.CMP_Background) == false) rtBack.Rtf = dr2.CMP_Background;
} }
} }
btIO.Enabled = btPart.Enabled; btIO.Enabled = btPart.Enabled;
@@ -145,10 +145,10 @@ namespace FPJ0000
//신규데이터일때에만 완료 자료를 처리한다. //신규데이터일때에만 완료 자료를 처리한다.
//if(this.dr.RowState == DataRowState.Detached || dr.RowState == DataRowState.Deleted) //if(this.dr.RowState == DataRowState.Detached || dr.RowState == DataRowState.Deleted)
//{ //{
this.dr.CMP_After = rtAft.Rtf; this.dr.CMP_After = rtAft.Rtf;
this.dr.CMP_Before = rtBef.Rtf; this.dr.CMP_Before = rtBef.Rtf;
this.dr.CMP_Description = rtDesc.Rtf; this.dr.CMP_Description = rtDesc.Rtf;
this.dr.CMP_Background = rtBack.Rtf; this.dr.CMP_Background = rtBack.Rtf;
//} //}
//else //else
//{ //{
@@ -156,7 +156,7 @@ namespace FPJ0000
// var taq = new dsPRJTableAdapters.QueriesTableAdapter(); // var taq = new dsPRJTableAdapters.QueriesTableAdapter();
// var ucnt = taq.UpdateProjectCompleteMessage(rtBack.Rtf, rtDesc.Rtf, rtBef.Rtf, rtAft.Rtf, dr.idx); // var ucnt = taq.UpdateProjectCompleteMessage(rtBack.Rtf, rtDesc.Rtf, rtBef.Rtf, rtAft.Rtf, dr.idx);
//} //}
this.dr.crdue = tbDue.Text.Trim(); this.dr.crdue = tbDue.Text.Trim();
@@ -329,7 +329,7 @@ namespace FPJ0000
else tbPath.Text = "\\" + tbPath.Text; else tbPath.Text = "\\" + tbPath.Text;
} }
var serverpath = Properties.Settings.Default.SharePath + "\\Project"; var serverpath = System.IO.Path.Combine(FCOMMON.info.datapath, "Data","Project");
if (System.IO.Directory.Exists(serverpath) == false) if (System.IO.Directory.Exists(serverpath) == false)
{ {
FCOMMON.Util.MsgE("프로젝트 기본경로가 존재하지 않아 진행할 수 없습니다\n\n" + FCOMMON.Util.MsgE("프로젝트 기본경로가 존재하지 않아 진행할 수 없습니다\n\n" +

View File

@@ -388,15 +388,29 @@ namespace FPJ0000
var dr = db.EETGW_Project_Layout.Where(t => t.no == this.no && t.project == this.project).FirstOrDefault(); var dr = db.EETGW_Project_Layout.Where(t => t.no == this.no && t.project == this.project).FirstOrDefault();
if (dr == null) if (dr == null)
{ {
util.MsgE("기존 레이아웃 자료를 확인 할 수 없습니다"); //없으면 추가 해야하마
var newdr = new EETGW_Project_Layout();
newdr.gcode = FCOMMON.info.Login.gcode;
newdr.no = this.no;
newdr.project = f.Index;
newdr.remark = string.Empty;
newdr.reserve = string.Empty;
newdr.row = 1;
newdr.col = 1;
newdr.rowspan = 1;
newdr.colspan = 1;
newdr.wdate = DateTime.Now;
newdr.wuid = FCOMMON.info.Login.no;
db.EETGW_Project_Layout.Add(newdr);
db.SaveChanges();
} }
else else
{ {
dr.project = f.Index; dr.project = f.Index;
db.SaveChanges(); db.SaveChanges();
util.MsgI("프로젝트를 변경했습니다"); util.MsgI("프로젝트를 변경했습니다");
refreshData();
} }
refreshData();
} }
} }
@@ -502,7 +516,7 @@ namespace FPJ0000
else tbPath = "\\" + tbPath; else tbPath = "\\" + tbPath;
} }
//\\10.131.32.29\Data //\\10.131.32.29\Data
var serverpath = Properties.Settings.Default.SharePath + @"\Project"; var serverpath = System.IO.Path.Combine(FCOMMON.info.datapath, "Data", "Project");
if (System.IO.Directory.Exists(serverpath) == false) if (System.IO.Directory.Exists(serverpath) == false)
{ {
FCOMMON.Util.MsgE("프로젝트 기본경로가 존재하지 않아 진행할 수 없습니다\n\n" + FCOMMON.Util.MsgE("프로젝트 기본경로가 존재하지 않아 진행할 수 없습니다\n\n" +

View File

@@ -127,7 +127,7 @@ namespace FPJ0000
if (state.EndsWith("(") == false) state += ","; if (state.EndsWith("(") == false) state += ",";
state += "'완료'"; state += "'완료'";
} }
if(chk완료보고.Checked) if (chk완료보고.Checked)
{ {
if (state.EndsWith("(") == false) state += ","; if (state.EndsWith("(") == false) state += ",";
state += "'완료(보고)'"; state += "'완료(보고)'";
@@ -146,7 +146,7 @@ namespace FPJ0000
// var orgQuery = this.ta.Adapter.SelectCommand.CommandText; // var orgQuery = this.ta.Adapter.SelectCommand.CommandText;
string State_Select = " SELECT [idx],[pidx],[gcode],[isdel],[status],[asset],[level],[rev],[process],[part],[pdate],[name],[userManager],[usermain],[usersub],[userhw2],[reqstaff],[costo],[costn],[cnt],[remark_req],[remark_ans],[sdate],[ddate],[edate],[odate],[progress],[memo],[wuid],[wdate],[orderno],[crdue],[import],[path],[userprocess],[bCost],[bFanOut],[div],dbo.getScheduleProgress(idx) as ProgressPrj, dbo.getLastHistory(idx) AS lasthistory,'' AS wws, '' AS wwo, '' AS wwe, '' AS wwd FROM Projects"; string State_Select = " SELECT [idx],[pidx],[gcode],[isdel],[status],[asset],[level],[rev],[process],[part],[pdate],[name],[userManager],[usermain],[usersub],[userhw2],[reqstaff],[costo],[costn],[cnt],[remark_req],[remark_ans],[sdate],[ddate],[edate],[odate],[progress],[memo],[wuid],[wdate],[orderno],[crdue],[import],[path],[userprocess],[bCost],[bFanOut],[div],dbo.getScheduleProgress(idx) as ProgressPrj, dbo.getLastHistory(idx) AS lasthistory,'' AS wws, '' AS wwo, '' AS wwe, '' AS wwd FROM Projects";
//string State_Select = " SELECT [idx],[pidx],[gcode],[isdel],[status],[asset],[level],[rev],[process],[part],[pdate],[name],[userManager],[usermain],[usersub],[userhw2],[reqstaff],[costo],[costn],[cnt],[remark_req],[remark_ans],[sdate],[ddate],[edate],[odate],[progress],[memo],[wuid],[wdate],[orderno],[crdue],[import],[path],[userprocess],[bCost],[bFanOut],[div],dbo.getScheduleProgress(idx) as ProgressPrj, dbo.getLastHistory(idx) AS lasthistory, dbo.getWorkWeek(sdate) AS wws, dbo.getWorkWeek(odate) AS wwo, dbo.getWorkWeek(edate) AS wwe, dbo.getWorkWeek(ddate) AS wwd FROM Projects"; //string State_Select = " SELECT [idx],[pidx],[gcode],[isdel],[status],[asset],[level],[rev],[process],[part],[pdate],[name],[userManager],[usermain],[usersub],[userhw2],[reqstaff],[costo],[costn],[cnt],[remark_req],[remark_ans],[sdate],[ddate],[edate],[odate],[progress],[memo],[wuid],[wdate],[orderno],[crdue],[import],[path],[userprocess],[bCost],[bFanOut],[div],dbo.getScheduleProgress(idx) as ProgressPrj, dbo.getLastHistory(idx) AS lasthistory, dbo.getWorkWeek(sdate) AS wws, dbo.getWorkWeek(odate) AS wwo, dbo.getWorkWeek(edate) AS wwe, dbo.getWorkWeek(ddate) AS wwd FROM Projects";
string State_where = " WHERE gcode=@gcode and isnull(div,'') <> 'EB' and "; string State_where = " WHERE gcode=@gcode and isnull(div,'') <> 'EB' and ";
@@ -521,7 +521,7 @@ namespace FPJ0000
this.prb1.ProgressMax = 100; this.prb1.ProgressMax = 100;
this.prb1.ProgressValue = perc; this.prb1.ProgressValue = perc;
} }
try try
{ {
taHist.Fill(this.dsMSSQL.ProjectsHistory, dr.idx); taHist.Fill(this.dsMSSQL.ProjectsHistory, dr.idx);
@@ -705,7 +705,7 @@ namespace FPJ0000
else tbPath = "\\" + tbPath; else tbPath = "\\" + tbPath;
} }
//\\10.131.32.29\Data //\\10.131.32.29\Data
var serverpath = Properties.Settings.Default.SharePath + @"\Project"; var serverpath = System.IO.Path.Combine(FCOMMON.info.datapath, "Data", "Project");
if (System.IO.Directory.Exists(serverpath) == false) if (System.IO.Directory.Exists(serverpath) == false)
{ {
FCOMMON.Util.MsgE("프로젝트 기본경로가 존재하지 않아 진행할 수 없습니다\n\n" + FCOMMON.Util.MsgE("프로젝트 기본경로가 존재하지 않아 진행할 수 없습니다\n\n" +

View File

@@ -230,34 +230,34 @@
<data name="toolStripButton3.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> <data name="toolStripButton3.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value> <value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAIwSURBVDhPpZL/SxNxHMbvPwoClVIkFrTKUtcmLY0WGChF YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAIwSURBVDhPpZL/SxNxHMbvPwoClVKkFrTKUtcmLY0WGChF
SKESs3ZTl5qMigpL15TLXClrrcWoTLd0MjV1aUv6al9mX7Zbm5utrYzu6e6zQ3fLn+oFDwf3fp6HNx/e SKESs3bThpqMigpL15TLXClrrcWoNLd0MjVtaUv6al9mX7Zbm9taWxnd091nh+6WP9ULHg7u/TwPbz68
1H9jdHxE2+0ADNb30Pcv4FTfG2iZV4/FsYTe0aiuZ2RpsedRBGZXGF1DYVCJ1C9kq/b0ECdmJDDu6Pds qf/G6PiI9lsBGKzvoR9YwMn+N9Ayrx6JYwl9Y1Fd7+jSYu/DCMyuMLofhEEl07+Qq3rDMCdmJDDu6Pdc
L3XG2wSDRwf9iBYnXfXkZ43pGcSMhG73VzLvm78Kxn8F5tlLoJCFYDh8eW7dAtNwmMwzoSyeEDIlGA5d L3Xa2wKDRwf9qBYnXI3kZ53pGcSMhB73VzLvn78Cxn8Z5tmLoJCDYDh0aW7NAtNImMyzoSyeELIlGA5e
9EkKKiwKVRmzGyWdcqi7FBI/ZR0Pil1pwvEUNOemVgsqLMUqZXMR1zjcgNbRRpSe30mCAv1jwXSBfTIE 8EkKqiwKVQWzC2Vdcqi7FRI/ZZ0Iil0ZwvE0NGenVwqqLKUqZUsJ1zzShLaxZpSf20GCAgPjwUyBfSoE
+0QQzukg3n5Zxr72CVKg7i1WKfQ7OO39Wuw1laKwOQ/ylq0Y8IZgFTTO/r3B609xlLV4oWJ2lZfQcq7e +2QQzpkg3n5JYG/HJClQ95WqFPR2TnuvHntM5Sg+VQB56xYMekOwCppg/97g9ac4Klq9UDE7K8toOdfo
WQMZnc8V0DnbjXcWEU+uwDbJEq+d/5ICsgW/gY1XlfUglN1FqLyxH8ccR7CF3sRtpjduEzZqtX1ALLEC rIOMLuSK6LxtxtuLiKeWYZtiidfOf0kB2YLfwMarxnoAyp4SVF/fh6OOw9hEb+A20uu3Chu12T4gllyG
xxSLu9NpUYNPWCwn115Wc60cercWR+1VKKTzuNyGdFigaeAdlr79xD1feoOHs/whOWdYZErdqYSsLR8F Y5rFnZmMqKEnLBKp1ZfVXK2E3q3FEXsNiukCLr8pExZoGXyHpW8/cdeX2WB4lj8k52MW2VJ3KSFrL0SR
+hzkntiwGhbQ3VwgBYN8UAiTglv8Q2TyIhCDxuhd9w60118iyhe4noaJ1+3nC4RAtmTt7t9iRkId8xyR Pg/5x9ethAV0NxZIwRAfFMKk4Cb/ENm8CMSgMXrXvAPttZeI8gWup2Hidfv5AiGQq80d7t9iRkID8xyR
5R9gYyl8jiQRYBOg9hg8yJas7oFdzEg4bp4fq+7wJ6o75lB5wYcDZ9fu5R+hqD9WXyzOjc3mIgAAAABJ xA+wsTQ+R1IIsElQuw0e5ErWcN8uZiQcM8+P13b6k7Wdc6g+78P+M6v38o9Q1B9KNyzJq/t++QAAAABJ
RU5ErkJggg== RU5ErkJggg==
</value> </value>
</data> </data>
<data name="toolStripButton4.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> <data name="toolStripButton4.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value> <value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAJ1SURBVDhPpZFLTNNwHMd78M7NuwcvIhJFpjcOJiYmHjwZ YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAJ1SURBVDhPpZFJTBNhHMXn4J2bdw9eRCSKVG8cTExMPHgy
Eg8mGi9gosGEgweQGBAlAXmoySQYBXkLypCwGUIwsA0QhqxiGdvsHkw6gY52fazr+vW/UUVNTHx802/6 JB5MNF7ARIMJBw8sMSBiAmFRIyJGQXZBKRJaQwgG2gJCkY44dHNaSmUqMGWms3Q6nefXMoqamLi8zMss
yP/z/T1K/bdWRouWQiNntfAvXhs7GfC/OLI/0F+U95PfFOVNTpbsM3GKcndaVMPIADDIlfXuc1qJIzpZ +X7vvwz131oZLVgKjZzVwr/YN3Yy4H9xZH+gvyDnJ78pyJmcLNpn4hTl6rSohpEGYJAr493nlBJDZLIk
loq4LqjfHFu4poRcFSHm1bHzJk5R9HBxwtAVqNFGSMFmSOwTyKFBGGmeZCVh6CLxzu57ehscx6WYIQtt uea8oH5zdOGaEnKWhZhXx86bOEXRw4VxQ1egRhogBZsgsU8ghwZhpHiSlYChi8Q7u++pbXAcl2SGLLSJ
4hTl6z4qZLQdArch6W+F8KEGW3NliM9fBe+tBb98C/zSTWx7KokrSGccfEPHRRMnAQPFWlreAE+3YXux U5S3+6iQ1nYI3IqEvwXCh2pszZUgNn8VvKcG/HIV+KWb2HaXE5eRzjh4h46LJk4CBgq1lLwBnm7F9mId
HtzUDcjcLKkqmNWz98T3DrLjeQYKFRPPdnBCy82fUYllQJdyoC4zUGMPQNN9sDnd6Jhg0TO9DocnjOze uKkbkLlZUlUwq2fu8e8dZMZzD+QrJp7p4ISWnT+tEsuALmVBXWagRu+BpvtgdbjQMcGiZ3oddncYmb2Z
TJwEtFlShi5DF9xI83Zom4NIbbRDiTTAu9yJ0QUOa58lfNpUMRsQML70BSO2Jt3EyV+wWtSMJkDbsiHF OAlotSQNXYYuuJDibdA2B5HcaIeydhee5U6MLnDwfZbwaVPFbEDA+NIXjFgbdBMnf6HNoqY1AdqWFUmu
deWqKuFayMFK9DtjWImKmGNlOIMSZoi9MRW9b1mYOEV5mgoVQ+MJ/BTqejOUUA2BKyD5Lufa9sdVOANJ K1tVCddADpaj3xHFSkTEHCvDEZQwQ+yJquh9y8LEKcrdmK8YGk/gp1DXm6CEqglcBsl7Odu2P6bCEUhg
TPuTmGBELIRVdE1F9wJW7xbE5ASd8M/0ZJJrHRB9DyEyjRA/1qGXzLyyLmHKtwtn/S6iwjq2uhfA1OVf 2p/ABCNiIayiayqyF7B6Jy8qx+m4b7onnfB1QPTeh8g0QPxYi14y88q6hCnvLpzxuzUVbWOrewFMbe51
Z+oPd9N3DsU99QXKj349fF+f9QtYJJCLVTBPqtvei6hpsBr2qlMXzYjfq8XOHrA62OoBsou+mRgeO1yZ pu5wN337UMxdl6f86NfDjfqsX8AigZysgnlS3fpeRFX9Q8NWceqiGfF7NdvYA212tnKA7KJvJopHdke6
6oYOwzveDndrqfC8PL/UPPrnell15orr0SU+aG/B2O0Syfz8d3pWfrB0vPq07Lh3bm8X/yaK+gpWVSQu sv6x4Rlvh6ulWHhemltsHv1zvaw4c8X54BIftDVj7FaRZH7+Oz0rPVg8Xnlattef29vFv4mivgJKfyQk
F4AiQgAAAABJRU5ErkJggg== 67tT2wAAAABJRU5ErkJggg==
</value> </value>
</data> </data>
<metadata name="cm.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> <metadata name="cm.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">

View File

@@ -45,30 +45,6 @@ namespace FPJ0000.Properties {
} }
} }
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("10.131")]
public string ServerIP {
get {
return ((string)(this["ServerIP"]));
}
set {
this["ServerIP"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("\\\\10.131.32.33\\Data")]
public string SharePath {
get {
return ((string)(this["SharePath"]));
}
set {
this["SharePath"] = value;
}
}
[global::System.Configuration.ApplicationScopedSettingAttribute()] [global::System.Configuration.ApplicationScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()] [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.SpecialSettingAttribute(global::System.Configuration.SpecialSetting.ConnectionString)] [global::System.Configuration.SpecialSettingAttribute(global::System.Configuration.SpecialSetting.ConnectionString)]

View File

@@ -18,12 +18,6 @@
&lt;/SerializableConnectionString&gt;</DesignTimeValue> &lt;/SerializableConnectionString&gt;</DesignTimeValue>
<Value Profile="(Default)">Data Source=10.131.15.18;Initial Catalog=EE;Persist Security Info=True;User ID=eeuser;Password=Amkor123!</Value> <Value Profile="(Default)">Data Source=10.131.15.18;Initial Catalog=EE;Persist Security Info=True;User ID=eeuser;Password=Amkor123!</Value>
</Setting> </Setting>
<Setting Name="ServerIP" Type="System.String" Scope="User">
<Value Profile="(Default)">10.131</Value>
</Setting>
<Setting Name="SharePath" Type="System.String" Scope="User">
<Value Profile="(Default)">\\10.131.32.33\Data</Value>
</Setting>
<Setting Name="EEEntitiesLayout" Type="(Connection string)" Scope="Application"> <Setting Name="EEEntitiesLayout" Type="(Connection string)" Scope="Application">
<DesignTimeValue Profile="(Default)">&lt;?xml version="1.0" encoding="utf-16"?&gt; <DesignTimeValue Profile="(Default)">&lt;?xml version="1.0" encoding="utf-16"?&gt;
&lt;SerializableConnectionString xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"&gt; &lt;SerializableConnectionString xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"&gt;

View File

@@ -3,9 +3,6 @@
<configSections> <configSections>
<section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" /> <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
<!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 --> <!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 -->
<sectionGroup name="userSettings" type="System.Configuration.UserSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<section name="FPJ0000.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false" />
</sectionGroup>
</configSections> </configSections>
<connectionStrings> <connectionStrings>
<add name="FEQ0000.Properties.Settings.gwcs" connectionString="Data Source=10.131.32.33;Initial Catalog=GroupWare;Persist Security Info=True;User ID=gw;Password=Amkor123!" <add name="FEQ0000.Properties.Settings.gwcs" connectionString="Data Source=10.131.32.33;Initial Catalog=GroupWare;Persist Security Info=True;User ID=gw;Password=Amkor123!"
@@ -33,14 +30,4 @@
<provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" /> <provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
</providers> </providers>
</entityFramework> </entityFramework>
<userSettings>
<FPJ0000.Properties.Settings>
<setting name="ServerIP" serializeAs="String">
<value>10.131</value>
</setting>
<setting name="SharePath" serializeAs="String">
<value>\\10.131.32.33\Data</value>
</setting>
</FPJ0000.Properties.Settings>
</userSettings>
</configuration> </configuration>

View File

@@ -0,0 +1,35 @@
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<configSections>
<!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 -->
<section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
</configSections>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.7" />
</startup>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Net.Http" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.1.1.3" newVersion="4.1.1.3" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Microsoft.Owin" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.2.0.0" newVersion="4.2.0.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
<connectionStrings>
<add name="EEEntities" connectionString="metadata=res://*/Model1.csdl|res://*/Model1.ssdl|res://*/Model1.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=10.131.15.18;initial catalog=EE;user id=eeuser;password=Amkor123!;MultipleActiveResultSets=True;App=EntityFramework&quot;" providerName="System.Data.EntityClient" />
</connectionStrings>
<entityFramework>
<defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework">
<parameters>
<parameter value="mssqllocaldb" />
</parameters>
</defaultConnectionFactory>
<providers>
<provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
</providers>
</entityFramework>
</configuration>

View File

@@ -0,0 +1,27 @@
//------------------------------------------------------------------------------
// <auto-generated>
// 이 코드는 템플릿에서 생성되었습니다.
//
// 이 파일을 수동으로 변경하면 응용 프로그램에서 예기치 않은 동작이 발생할 수 있습니다.
// 이 파일을 수동으로 변경하면 코드가 다시 생성될 때 변경 내용을 덮어씁니다.
// </auto-generated>
//------------------------------------------------------------------------------
namespace WebServer
{
using System;
using System.Collections.Generic;
public partial class Auth
{
public int idx { get; set; }
public string user { get; set; }
public string gcode { get; set; }
public Nullable<int> purchase { get; set; }
public Nullable<int> holyday { get; set; }
public Nullable<int> project { get; set; }
public Nullable<int> jobreport { get; set; }
public Nullable<int> savecost { get; set; }
public Nullable<int> scheapp { get; set; }
}
}

View File

@@ -0,0 +1,314 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Web.Http;
using agi = HtmlAgilityPack;
namespace WebServer
{
public struct MethodResult : IEquatable<MethodResult>
{
public string Content;
public byte[] Contentb;
public string Redirecturl;
public override bool Equals(object obj)
{
if (!(obj is MethodResult))
return false;
return Equals((MethodResult)obj);
}
public override int GetHashCode()
{
if (Contentb == null)
return Content.GetHashCode() ^ Redirecturl.GetHashCode();
else
return Content.GetHashCode() ^ Redirecturl.GetHashCode() ^ Contentb.GetHexString().GetHashCode();
}
public bool Equals(MethodResult other)
{
if (Content != other.Content)
return false;
if (Redirecturl != other.Redirecturl)
return false;
return Contentb == other.Contentb;
}
public static bool operator ==(MethodResult point1, MethodResult point2)
{
return point1.Equals(point2);
}
public static bool operator !=(MethodResult point1, MethodResult point2)
{
return !point1.Equals(point2);
}
}
sealed class PostRequest : Attribute
{
}
public class BaseController : ApiController
{
public string QueryString { get; set; }
public string PostData { get; set; }
public string ParamData { get; set; }
protected string Trig_Ctrl { get; set; }
protected string Trig_func { get; set; }
public PageModel GetGlobalModel()
{
var config = RequestContext.Configuration;
var routeData = config.Routes.GetRouteData(Request).Values.ToList();
var name_ctrl = routeData[0].Value.ToString();
var name_action = routeData[1].Value.ToString();
return new PageModel
{
RouteData = routeData,
urlcontrol = name_ctrl,
urlaction = name_action
};
}
public MethodResult View()
{
var config = RequestContext.Configuration;
if (config != null)
{
var routeData = config.Routes.GetRouteData(Request).Values.ToList();
var name_ctrl = routeData[0].Value.ToString();
var name_action = routeData[1].Value.ToString();
return View(name_ctrl, name_action);
}
else
{
return View(Trig_Ctrl + "/" + Trig_func);
}
}
public static void ApplyCommonValue(ref string contents)
{
//메뉴 푸터 - 개발자 정보
}
public MethodResult View(string Controller, string Action, Boolean applydefaultview = true)
{
var retval = new MethodResult();
if (Action.IndexOf(".") == -1)
Action += ".html"; //기본값 html 을 넣는다
var file = System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "View", Controller, Action);
var contents = string.Empty;
if (System.IO.File.Exists(file) == false)
{
//error 폴더의 404.html 파일을 찾는다.
var file404 = System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "View", "Error", "404.html");
if (System.IO.File.Exists(file404))
{
contents = System.IO.File.ReadAllText(file404, System.Text.Encoding.UTF8);
contents = contents.Replace("{errorfilename}", file);
}
else
contents = "ERROR CODE - 404 (NOT FOUND) <br />" + file;
Console.WriteLine("view File not found : " + file);
}
else
{
//디폴트뷰의 내용을 가져온다 (있다면 적용한다)
if (applydefaultview)
{
//뷰파일이 있다면 그것을 적용한다
var laytoutfile = System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "View", "Layout", "default.html");
if (System.IO.File.Exists(laytoutfile))
contents = System.IO.File.ReadAllText(laytoutfile, System.Text.Encoding.UTF8);
var fileContents = System.IO.File.ReadAllText(file, System.Text.Encoding.UTF8);
if (String.IsNullOrEmpty(contents)) contents = fileContents;
else contents = contents.Replace("{contents}", fileContents);
}
else
{
//해당 뷰를 가져와서 반환한다
contents = System.IO.File.ReadAllText(file, System.Text.Encoding.UTF8);
}
}
agi.HtmlDocument doc = new agi.HtmlDocument();
doc.LoadHtml(contents);
//파일참조 태그를 모두 가져옴
var tags_include = doc.QuerySelectorAll("include");
foreach (var item in tags_include)
{
var filename = item.InnerText;
var load_file = String.Concat(AppDomain.CurrentDomain.BaseDirectory, "View", filename.Replace("/", "\\"));
load_file = load_file.Replace("\\\\", "\\");
String fileContents;// = String.Empty;
Console.WriteLine("## " + item.OuterHtml);
if (System.IO.File.Exists(load_file))
{
fileContents = System.IO.File.ReadAllText(load_file, System.Text.Encoding.UTF8);
}
else
{
fileContents = string.Format("<div class=\"fg-red\">#include Error:nofile:{0}</div>",
filename); //파일이없다면 해당 부분은 오류 처리한다.
}
contents = contents.Replace(item.OuterHtml, fileContents);
}
//콘텐츠내의 file 을 찾아서 처리한다. ; 정규식의 처리속도가 느릴듯하여, 그냥 처리해본다
//시스템변수 replace
contents = contents.Replace("{param_control}", Trig_Ctrl);
contents = contents.Replace("{param_function}", Trig_func);
retval.Content = contents;
return retval;
}
public MethodResult View(string viewfilename, Boolean applydefaultview = true)
{
var retval = new MethodResult();
if (viewfilename.IndexOf(".") == -1)
viewfilename += ".html"; //기본값 html 을 넣는다
var file = AppDomain.CurrentDomain.BaseDirectory + "View" + viewfilename.Replace("/", "\\");
var contents = string.Empty;
if (System.IO.File.Exists(file) == false)
{
//error 폴더의 404.html 파일을 찾는다.
var file404 = System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "View", "Error", "404.html");
if (System.IO.File.Exists(file404))
{
contents = System.IO.File.ReadAllText(file404, System.Text.Encoding.UTF8);
contents = contents.Replace("{errorfilename}", file);
}
else
contents = "ERROR CODE - 404 (NOT FOUND) <br />" + file;
Console.WriteLine("view File not found : " + file);
}
else
{
//디폴트뷰의 내용을 가져온다 (있다면 적용한다)
if (applydefaultview)
{
//뷰파일이 있다면 그것을 적용한다
var laytoutfile = System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "View", "Layout", "default.html");
if (System.IO.File.Exists(laytoutfile))
contents = System.IO.File.ReadAllText(laytoutfile, System.Text.Encoding.UTF8);
var fileContents = System.IO.File.ReadAllText(file, System.Text.Encoding.UTF8);
if (String.IsNullOrEmpty(contents)) contents = fileContents;
else contents = contents.Replace("{contents}", fileContents);
}
else
{
//해당 뷰를 가져와서 반환한다
contents = System.IO.File.ReadAllText(file, System.Text.Encoding.UTF8);
}
}
agi.HtmlDocument doc = new agi.HtmlDocument();
doc.LoadHtml(contents);
//파일참조 태그를 모두 가져옴
var tags_include = doc.QuerySelectorAll("include");
foreach (var item in tags_include)
{
var filename = item.InnerText;
var load_file = String.Concat(AppDomain.CurrentDomain.BaseDirectory, "View", filename.Replace("/", "\\"));
load_file = load_file.Replace("\\\\", "\\");
String fileContents;// = String.Empty;
Console.WriteLine("## " + item.OuterHtml);
if (System.IO.File.Exists(load_file))
{
fileContents = System.IO.File.ReadAllText(load_file, System.Text.Encoding.UTF8);
}
else
{
fileContents = string.Format("<div class=\"fg-red\">#include Error:nofile:{0}</div>",
filename); //파일이없다면 해당 부분은 오류 처리한다.
}
contents = contents.Replace(item.OuterHtml, fileContents);
}
//콘텐츠내의 file 을 찾아서 처리한다. ; 정규식의 처리속도가 느릴듯하여, 그냥 처리해본다
while (true)
{
var fileindexS = contents.IndexOf("{file:");
if (fileindexS == -1) break;
var fileindexE = contents.IndexOf("}", fileindexS);
if (fileindexE == -1) break;
if (fileindexE <= fileindexS + 5) break;
var inlinestr = contents.Substring(fileindexS, fileindexE - fileindexS + 1);
var filename = contents.Substring(fileindexS + 7, fileindexE - fileindexS - 8);
var load_file = String.Concat(AppDomain.CurrentDomain.BaseDirectory, "View", "\\", filename.Replace("/", "\\"));
load_file = load_file.Replace("\\\\", "\\");
String fileContents;// = String.Empty;
Console.WriteLine("file impot : " + load_file);
if (System.IO.File.Exists(load_file))
{
fileContents = System.IO.File.ReadAllText(load_file, System.Text.Encoding.UTF8);
}
else
{
fileContents = "{FileNotFound:" + filename + "}"; //파일이없다면 해당 부분은 오류 처리한다.
}
contents = contents.Replace(inlinestr, fileContents);
}
//시스템변수 replace
contents = contents.Replace("{param_control}", Trig_Ctrl);
contents = contents.Replace("{param_function}", Trig_func);
retval.Content = contents;
return retval;
}
protected class Parameter
{
public string Key { get; set; }
public string Value { get; set; }
public Parameter(string key_, string value_)
{
Key = key_;
Value = value_;
}
}
}
}

View File

@@ -0,0 +1,28 @@
//------------------------------------------------------------------------------
// <auto-generated>
// 이 코드는 템플릿에서 생성되었습니다.
//
// 이 파일을 수동으로 변경하면 응용 프로그램에서 예기치 않은 동작이 발생할 수 있습니다.
// 이 파일을 수동으로 변경하면 코드가 다시 생성될 때 변경 내용을 덮어씁니다.
// </auto-generated>
//------------------------------------------------------------------------------
namespace WebServer
{
using System;
using System.Collections.Generic;
public partial class Common
{
public int idx { get; set; }
public string gcode { get; set; }
public string grp { get; set; }
public string code { get; set; }
public string svalue { get; set; }
public Nullable<int> ivalue { get; set; }
public Nullable<double> fvalue { get; set; }
public string memo { get; set; }
public string wuid { get; set; }
public System.DateTime wdate { get; set; }
}
}

View File

@@ -0,0 +1,199 @@
using System;
using System.Linq;
using System.Net.Http;
using System.Web.Http;
namespace WebServer.OWIN
{
public class CustomerController : BaseController
{
// PUT api/values/5
public void Put(int id, [FromBody] string value)
{
}
// DELETE api/values/5
public void Delete(int id)
{
}
[HttpGet]
public string Test()
{
return "test";
}
[HttpGet]
public HttpResponseMessage Find()
{
//로그인이 되어있지않다면 로그인을 가져온다
MethodResult result;
result = View();
var gets = Request.GetQueryNameValuePairs();// GetParameters(data);
var key_search = gets.Where(t => t.Key == "search").FirstOrDefault();
var model = GetGlobalModel();
var getParams = Request.GetQueryNameValuePairs();// GetParameters(data);
//기본값을 찾아서 없애줘야한다
var searchkey = string.Empty;
if (key_search.Key != null && key_search.Value.isEmpty() == false) searchkey = key_search.Value.Trim();
var tbody = new System.Text.StringBuilder();
//테이블데이터생성
var itemcnt = 0;
if (searchkey.isEmpty() == false)
{
var db = new EEEntities();
var rows = db.Customs.Where(t => t.gcode == FCOMMON.info.Login.gcode).OrderBy(t => t.name);
itemcnt = rows.Count();
foreach (var item in rows)
{
tbody.AppendLine("<tr>");
tbody.AppendLine($"<th scope='row'>{item.name}</th>");
tbody.AppendLine($"<td>{item.name2}</td>");
tbody.AppendLine($"<td>{item.name}</td>");
//tbody.AppendLine($"<td>{item.model}</td>");
//if (item.price == null)
// tbody.AppendLine($"<td>--</td>");
//else
//{
// var price = (double)item.price / 1000.0;
// tbody.AppendLine($"<td>{price.ToString("N0")}</td>");
//}
//tbody.AppendLine($"<td>{item.manu}</td>");
//tbody.AppendLine($"<td>{item.supply}</td>");
//if (item.remark.Length > 10)
// tbody.AppendLine($"<td>{item.remark.Substring(0, 10)}...</td>");
//else
// tbody.AppendLine($"<td>{item.remark}</td>");
tbody.AppendLine("</tr>");
}
}
//아잍쳄이 없는경우
if (itemcnt == 0)
{
tbody.AppendLine("<tr>");
tbody.AppendLine("<th scope='row'>1</th>");
tbody.AppendLine("<td colspan='6'>자료가 없습니다</td>");
tbody.AppendLine("</tr>");
}
var contents = result.Content.Replace("{search}", searchkey);
contents = contents.Replace("{tabledata}", tbody.ToString());
contents = contents.Replace("{cnt}", itemcnt.ToString());
//공용값 적용
ApplyCommonValue(ref contents);
//최종문자 적용
result.Content = contents;
var resp = new HttpResponseMessage()
{
Content = new StringContent(
result.Content,
System.Text.Encoding.UTF8,
"text/html")
};
return resp;
}
[HttpGet]
public HttpResponseMessage Index()
{
//로그인이 되어있지않다면 로그인을 가져온다
MethodResult result;
result = View();
var gets = Request.GetQueryNameValuePairs();// GetParameters(data);
var key_search = gets.Where(t => t.Key == "search").FirstOrDefault();
var model = GetGlobalModel();
var getParams = Request.GetQueryNameValuePairs();// GetParameters(data);
//기본값을 찾아서 없애줘야한다
var searchkey = string.Empty;
if (key_search.Key != null && key_search.Value.isEmpty() == false) searchkey = key_search.Value.Trim();
var tbody = new System.Text.StringBuilder();
//테이블데이터생성
var itemcnt = 0;
//if (searchkey.isEmpty() == false)
{
var db = new EEEntities();
var sd = DateTime.Now.ToString("yyyy-MM-01");
var rows = db.Customs.AsNoTracking().Where(t => t.gcode == FCOMMON.info.Login.gcode).OrderBy(t=>t.name);
itemcnt = rows.Count();
foreach (var item in rows)
{
tbody.AppendLine("<tr>");
tbody.AppendLine($"<th scope='row'>{item.grp}</th>");
tbody.AppendLine($"<td>{item.name}</td>");
tbody.AppendLine($"<td>{item.name2}</td>");
tbody.AppendLine($"<td>{item.tel}</td>");
tbody.AppendLine($"<td>{item.fax}</td>");
tbody.AppendLine($"<td>{item.email}</td>");
tbody.AppendLine($"<td>{item.address}</td>");
if (string.IsNullOrEmpty( item.memo)==false && item.memo.Length > 10) tbody.AppendLine($"<td>{item.memo.Substring(0, 10)}...</td>");
else tbody.AppendLine($"<td>{item.memo}</td>");
tbody.AppendLine("</tr>");
}
}
//아잍쳄이 없는경우
if (itemcnt == 0)
{
tbody.AppendLine("<tr>");
tbody.AppendLine("<th scope='row'>1</th>");
tbody.AppendLine("<td colspan='6'>자료가 없습니다</td>");
tbody.AppendLine("</tr>");
}
var contents = result.Content.Replace("{search}", searchkey);
contents = contents.Replace("{tabledata}", tbody.ToString());
contents = contents.Replace("{cnt}", itemcnt.ToString());
//공용값 적용
ApplyCommonValue(ref contents);
//최종문자 적용
result.Content = contents;
var resp = new HttpResponseMessage()
{
Content = new StringContent(
result.Content,
System.Text.Encoding.UTF8,
"text/html")
};
return resp;
}
}
}

View File

@@ -0,0 +1,93 @@
using System;
using System.Linq;
using System.Net.Http;
using System.Web.Http;
namespace WebServer
{
public class HomeController : BaseController
{
[HttpPost]
public void Index([FromBody]string value)
{
}
// PUT api/values/5
public void Put(int id, [FromBody]string value)
{
}
// DELETE api/values/5
public void Delete(int id)
{
}
[HttpGet]
public string Test()
{
return "test";
}
[HttpGet]
public HttpResponseMessage Login()
{
//로그인이 되어있지않다면 로그인을 가져온다
MethodResult result;
result = View();
var model = GetGlobalModel();
var getParams = Request.GetQueryNameValuePairs();// GetParameters(data);
//기본값을 찾아서 없애줘야한다
var contents = result.Content;
//공용값 적용
ApplyCommonValue(ref contents);
//최종문자 적용
result.Content = contents;
var resp = new HttpResponseMessage()
{
Content = new StringContent(
result.Content,
System.Text.Encoding.UTF8,
"text/html")
};
return resp;
}
[HttpGet]
public HttpResponseMessage Index()
{
//로그인이 되어있지않다면 로그인을 가져온다
MethodResult result;
result = View();
var model = GetGlobalModel();
var getParams = Request.GetQueryNameValuePairs();// GetParameters(data);
//기본값을 찾아서 없애줘야한다
var contents = result.Content;
//공용값 적용
ApplyCommonValue(ref contents);
//최종문자 적용
result.Content = contents;
var resp = new HttpResponseMessage()
{
Content = new StringContent(
result.Content,
System.Text.Encoding.UTF8,
"text/html")
};
return resp;
}
}
}

View File

@@ -0,0 +1,148 @@
using System;
using System.Linq;
using System.Net.Http;
using System.Web.Http;
namespace WebServer
{
public class ItemController : BaseController
{
// PUT api/values/5
public void Put(int id, [FromBody] string value)
{
}
// DELETE api/values/5
public void Delete(int id)
{
}
[HttpGet]
public string Test()
{
return "test";
}
[HttpGet]
public HttpResponseMessage Find()
{
//로그인이 되어있지않다면 로그인을 가져온다
MethodResult result;
result = View();
var gets = Request.GetQueryNameValuePairs();// GetParameters(data);
var key_search = gets.Where(t => t.Key == "search").FirstOrDefault();
var model = GetGlobalModel();
var getParams = Request.GetQueryNameValuePairs();// GetParameters(data);
//기본값을 찾아서 없애줘야한다
var searchkey = string.Empty;
if (key_search.Key != null && key_search.Value.isEmpty() == false) searchkey = key_search.Value.Trim();
var tbody = new System.Text.StringBuilder();
//테이블데이터생성
var itemcnt = 0;
if (searchkey.isEmpty() == false)
{
var db = new EEEntities();
var rows = db.vFindSID.Where(t => t.sid.Contains(searchkey) || t.name.Contains(searchkey) || t.manu.Contains(searchkey) || t.model.Contains(searchkey));
itemcnt = rows.Count();
foreach (var item in rows)
{
tbody.AppendLine("<tr>");
tbody.AppendLine($"<th scope='row'>{item.Location}</th>");
tbody.AppendLine($"<td>{item.sid}</td>");
tbody.AppendLine($"<td>{item.name}</td>");
tbody.AppendLine($"<td>{item.model}</td>");
if (item.price == null)
tbody.AppendLine($"<td>--</td>");
else
{
var price = (double)item.price / 1000.0;
tbody.AppendLine($"<td>{price.ToString("N0")}</td>");
}
tbody.AppendLine($"<td>{item.manu}</td>");
tbody.AppendLine($"<td>{item.supply}</td>");
if (item.remark.Length > 10)
tbody.AppendLine($"<td>{item.remark.Substring(0, 10)}...</td>");
else
tbody.AppendLine($"<td>{item.remark}</td>");
tbody.AppendLine("</tr>");
}
}
//아잍쳄이 없는경우
if (itemcnt == 0)
{
tbody.AppendLine("<tr>");
tbody.AppendLine("<th scope='row'>1</th>");
tbody.AppendLine("<td colspan='6'>자료가 없습니다</td>");
tbody.AppendLine("</tr>");
}
var contents = result.Content.Replace("{search}", searchkey);
contents = contents.Replace("{tabledata}", tbody.ToString());
contents = contents.Replace("{cnt}", itemcnt.ToString());
//공용값 적용
ApplyCommonValue(ref contents);
//최종문자 적용
result.Content = contents;
var resp = new HttpResponseMessage()
{
Content = new StringContent(
result.Content,
System.Text.Encoding.UTF8,
"text/html")
};
return resp;
}
[HttpGet]
public HttpResponseMessage Index()
{
//로그인이 되어있지않다면 로그인을 가져온다
MethodResult result;
result = View();
var model = GetGlobalModel();
var getParams = Request.GetQueryNameValuePairs();// GetParameters(data);
//기본값을 찾아서 없애줘야한다
var contents = result.Content;
//공용값 적용
ApplyCommonValue(ref contents);
//최종문자 적용
result.Content = contents;
var resp = new HttpResponseMessage()
{
Content = new StringContent(
result.Content,
System.Text.Encoding.UTF8,
"text/html")
};
return resp;
}
}
}

View File

@@ -0,0 +1,290 @@
using Microsoft.Owin;
using System;
using System.Linq;
using System.Net.Http;
using System.Web;
using System.Web.Http;
namespace WebServer
{
public class JobreportController : BaseController
{
// PUT api/values/5
public void Put(int id, [FromBody] string value)
{
}
// DELETE api/values/5
public void Delete(int id)
{
}
[HttpPost]
public string Add(FormCollection tbpdate)
{
var vals = Request.GetQueryNameValuePairs();
return string.Empty;
}
[HttpGet]
public HttpResponseMessage Add()
{
//로그인이 되어있지않다면 로그인을 가져온다
MethodResult result;
result = View("/jobreport/add");
var gets = Request.GetQueryNameValuePairs();// GetParameters(data);
var key_search = gets.Where(t => t.Key == "search").FirstOrDefault();
var model = GetGlobalModel();
var getParams = Request.GetQueryNameValuePairs();// GetParameters(data);
//기본값을 찾아서 없애줘야한다
var searchkey = string.Empty;
if (key_search.Key != null && key_search.Value.isEmpty() == false) searchkey = key_search.Value.Trim();
var tbody = new System.Text.StringBuilder();
//테이블데이터생성
var itemcnt = 0;
//if (searchkey.isEmpty() == false)
{
var db = new EEEntities();
var sd = DateTime.Now.ToString("yyyy-MM-01");
var ed = DateTime.Now.ToShortDateString();
var rows = db.vJobReportForUser.AsNoTracking().Where(t => t.gcode == FCOMMON.info.Login.gcode && t.id == FCOMMON.info.Login.no && t.pdate.CompareTo(sd) >= 0 && t.pdate.CompareTo(ed) <= 1).OrderByDescending(t => t.pdate);
itemcnt = rows.Count();
foreach (var item in rows)
{
tbody.AppendLine("<tr>");
tbody.AppendLine($"<th scope='row'>{item.pdate.Substring(5)}</th>");
tbody.AppendLine($"<td>{item.ww}</td>");
tbody.AppendLine($"<td>{item.name}</td>");
if (item.status == "진행 중" || item.status.EndsWith("%"))
tbody.AppendLine($"<td class='table-info text-center'>{item.status}</td>");
else
tbody.AppendLine($"<td class='text-center'>{item.status}</td>");
tbody.AppendLine($"<td>{item.type}</td>");
tbody.AppendLine($"<td>{item.projectName}</td>");
tbody.AppendLine($"<td>{item.hrs}</td>");
tbody.AppendLine($"<td>{item.ot}</td>");
tbody.AppendLine("<td><span class='d-inline-block text-truncate' style='max-width: 150px;'>");
tbody.AppendLine(item.description);
tbody.AppendLine("</span></td>");
tbody.AppendLine("</tr>");
}
}
//아잍쳄이 없는경우
if (itemcnt == 0)
{
tbody.AppendLine("<tr>");
tbody.AppendLine("<th scope='row'>1</th>");
tbody.AppendLine("<td colspan='6'>자료가 없습니다</td>");
tbody.AppendLine("</tr>");
}
var contents = result.Content.Replace("{search}", searchkey);
contents = contents.Replace("{tabledata}", tbody.ToString());
contents = contents.Replace("{cnt}", itemcnt.ToString());
//공용값 적용
ApplyCommonValue(ref contents);
//최종문자 적용
result.Content = contents;
var resp = new HttpResponseMessage()
{
Content = new StringContent(
result.Content,
System.Text.Encoding.UTF8,
"text/html")
};
return resp;
}
[HttpGet]
public HttpResponseMessage Find()
{
//로그인이 되어있지않다면 로그인을 가져온다
MethodResult result;
result = View();
var gets = Request.GetQueryNameValuePairs();// GetParameters(data);
var key_search = gets.Where(t => t.Key == "search").FirstOrDefault();
var model = GetGlobalModel();
var getParams = Request.GetQueryNameValuePairs();// GetParameters(data);
//기본값을 찾아서 없애줘야한다
var searchkey = string.Empty;
if (key_search.Key != null && key_search.Value.isEmpty() == false) searchkey = key_search.Value.Trim();
var tbody = new System.Text.StringBuilder();
//테이블데이터생성
var itemcnt = 0;
if (searchkey.isEmpty() == false)
{
var db = new EEEntities();
var sd = DateTime.Now.ToShortDateString();
var rows = db.vJobReportForUser.Where(t => t.gcode == FCOMMON.info.Login.gcode && t.pdate.CompareTo(sd) == 0).OrderBy(t => t.name);
itemcnt = rows.Count();
foreach (var item in rows)
{
tbody.AppendLine("<tr>");
tbody.AppendLine($"<th scope='row'>{item.pdate}</th>");
tbody.AppendLine($"<td>{item.status}</td>");
tbody.AppendLine($"<td>{item.name}</td>");
tbody.AppendLine($"<td>{item.projectName}</td>");
tbody.AppendLine($"<td>{item.hrs}</td>");
tbody.AppendLine($"<td>{item.ot}</td>");
tbody.AppendLine($"<td>{item.description}</td>");
if (item.description.Length > 10)
tbody.AppendLine($"<td>{item.description.Substring(0, 10)}...</td>");
else
tbody.AppendLine($"<td>{item.description}</td>");
tbody.AppendLine("</tr>");
}
}
//아잍쳄이 없는경우
if (itemcnt == 0)
{
tbody.AppendLine("<tr>");
tbody.AppendLine("<th scope='row'>1</th>");
tbody.AppendLine("<td colspan='6'>자료가 없습니다</td>");
tbody.AppendLine("</tr>");
}
var contents = result.Content.Replace("{search}", searchkey);
contents = contents.Replace("{tabledata}", tbody.ToString());
contents = contents.Replace("{cnt}", itemcnt.ToString());
//공용값 적용
ApplyCommonValue(ref contents);
//최종문자 적용
result.Content = contents;
var resp = new HttpResponseMessage()
{
Content = new StringContent(
result.Content,
System.Text.Encoding.UTF8,
"text/html")
};
return resp;
}
[HttpGet]
public HttpResponseMessage Index()
{
//로그인이 되어있지않다면 로그인을 가져온다
MethodResult result;
result = View();
var gets = Request.GetQueryNameValuePairs();// GetParameters(data);
var key_search = gets.Where(t => t.Key == "search").FirstOrDefault();
var model = GetGlobalModel();
var getParams = Request.GetQueryNameValuePairs();// GetParameters(data);
//기본값을 찾아서 없애줘야한다
var searchkey = string.Empty;
if (key_search.Key != null && key_search.Value.isEmpty() == false) searchkey = key_search.Value.Trim();
var tbody = new System.Text.StringBuilder();
//테이블데이터생성
var itemcnt = 0;
//if (searchkey.isEmpty() == false)
{
var db = new EEEntities();
var sd = DateTime.Now.ToString("yyyy-MM-01");
var ed = DateTime.Now.ToShortDateString();
var rows = db.vJobReportForUser.AsNoTracking().Where(t => t.gcode == FCOMMON.info.Login.gcode && t.id == FCOMMON.info.Login.no && t.pdate.CompareTo(sd) >= 0 && t.pdate.CompareTo(ed) <= 1).OrderByDescending(t => t.pdate);
itemcnt = rows.Count();
foreach (var item in rows)
{
tbody.AppendLine("<tr>");
tbody.AppendLine($"<th scope='row'>{item.pdate.Substring(5)}</th>");
tbody.AppendLine($"<td>{item.ww}</td>");
tbody.AppendLine($"<td>{item.name}</td>");
if (item.status == "진행 중" || item.status.EndsWith("%"))
tbody.AppendLine($"<td class='table-info text-center'>{item.status}</td>");
else
tbody.AppendLine($"<td class='text-center'>{item.status}</td>");
tbody.AppendLine($"<td>{item.type}</td>");
tbody.AppendLine($"<td>{item.projectName}</td>");
tbody.AppendLine($"<td>{item.hrs}</td>");
tbody.AppendLine($"<td>{item.ot}</td>");
tbody.AppendLine("<td><span class='d-inline-block text-truncate' style='max-width: 150px;'>");
tbody.AppendLine(item.description);
tbody.AppendLine("</span></td>");
tbody.AppendLine("</tr>");
}
}
//아잍쳄이 없는경우
if (itemcnt == 0)
{
tbody.AppendLine("<tr>");
tbody.AppendLine("<th scope='row'>1</th>");
tbody.AppendLine("<td colspan='6'>자료가 없습니다</td>");
tbody.AppendLine("</tr>");
}
var contents = result.Content.Replace("{search}", searchkey);
contents = contents.Replace("{tabledata}", tbody.ToString());
contents = contents.Replace("{cnt}", itemcnt.ToString());
//공용값 적용
ApplyCommonValue(ref contents);
//최종문자 적용
result.Content = contents;
var resp = new HttpResponseMessage()
{
Content = new StringContent(
result.Content,
System.Text.Encoding.UTF8,
"text/html")
};
return resp;
}
}
}

View File

@@ -0,0 +1,467 @@
using System;
using System.Linq;
using System.Net.Http;
using System.Web.Http;
namespace WebServer
{
public class ProjectController : BaseController
{
// PUT api/values/5
public void Put(int id, [FromBody] string value)
{
}
// DELETE api/values/5
public void Delete(int id)
{
}
[HttpGet]
public string Test()
{
return "test";
}
[HttpGet]
public HttpResponseMessage Find()
{
//로그인이 되어있지않다면 로그인을 가져온다
MethodResult result;
result = View();
var gets = Request.GetQueryNameValuePairs();// GetParameters(data);
var key_search = gets.Where(t => t.Key == "search").FirstOrDefault();
var model = GetGlobalModel();
var getParams = Request.GetQueryNameValuePairs();// GetParameters(data);
//기본값을 찾아서 없애줘야한다
var searchkey = string.Empty;
if (key_search.Key != null && key_search.Value.isEmpty() == false) searchkey = key_search.Value.Trim();
var tbody = new System.Text.StringBuilder();
//테이블데이터생성
var itemcnt = 0;
if (searchkey.isEmpty() == false)
{
var db = new EEEntities();
var rows = db.Projects.Where(t => t.gcode == FCOMMON.info.Login.gcode && t.status.Contains("완료") == false).OrderByDescending(t => t.pdate).Take(50);
itemcnt = rows.Count();
foreach (var item in rows)
{
tbody.AppendLine("<tr>");
tbody.AppendLine($"<th scope='row'>{item.pdate}</th>");
tbody.AppendLine($"<td>{item.name}</td>");
//if (item.description.Length > 10)
// tbody.AppendLine($"<td>{item.description.Substring(0, 10)}...</td>");
//else
// tbody.AppendLine($"<td>{item.description}</td>");
tbody.AppendLine("</tr>");
}
}
//아잍쳄이 없는경우
if (itemcnt == 0)
{
tbody.AppendLine("<tr>");
tbody.AppendLine("<th scope='row'>1</th>");
tbody.AppendLine("<td colspan='6'>자료가 없습니다</td>");
tbody.AppendLine("</tr>");
}
var contents = result.Content.Replace("{search}", searchkey);
contents = contents.Replace("{tabledata}", tbody.ToString());
contents = contents.Replace("{cnt}", itemcnt.ToString());
//공용값 적용
ApplyCommonValue(ref contents);
//최종문자 적용
result.Content = contents;
var resp = new HttpResponseMessage()
{
Content = new StringContent(
result.Content,
System.Text.Encoding.UTF8,
"text/html")
};
return resp;
}
[HttpGet]
public HttpResponseMessage ScheduleConfirm(int? id)
{
//로그인이 되어있지않다면 로그인을 가져온다
MethodResult result;
result = View();
var project = (int)id;
//데이터를 조회해서 표시를 해준다.
var db = new EEEntities();
var prjinfo = db.Projects.Where(t => t.gcode == FCOMMON.info.Login.gcode && t.idx == project).FirstOrDefault();
var schrows = db.EETGW_ProjectsSchedule.Where(t => t.gcode == FCOMMON.info.Login.gcode && t.project == project).OrderByDescending(t => t.project).OrderByDescending(t => t.no).OrderBy(t => t.seq);
var gets = Request.GetQueryNameValuePairs();// GetParameters(data);
System.Text.StringBuilder tinfo = new System.Text.StringBuilder();
//프로젝트정보를 표시합니다.
tinfo.AppendLine("<tr>");
tinfo.AppendLine(string.Format("<td>{0}</td>", prjinfo.idx));
tinfo.AppendLine(string.Format("<td>{0}</td>", prjinfo.status));
tinfo.AppendLine(string.Format("<td>{0}</td>", prjinfo.progress));
tinfo.AppendLine(string.Format("<td>{0}</td>", prjinfo.name));
tinfo.AppendLine(string.Format("<td>{0}</td>", prjinfo.reqstaff));
tinfo.AppendLine(string.Format("<td>{0}</td>", prjinfo.userManager));
tinfo.AppendLine(string.Format("<td>{0}</td>", prjinfo.orderno));
tinfo.AppendLine("</tr>");
var contents = result.Content.Replace("{search}", "");
contents = contents.Replace("{tableinfo}", tinfo.ToString());
tinfo.Clear();
foreach (var item in schrows)
{
tinfo.AppendLine("<tr>");
tinfo.AppendLine(string.Format("<td>{0}</td>", item.no));
tinfo.AppendLine(string.Format("<td>{0}</td>", item.seq));
tinfo.AppendLine(string.Format("<td>{0}</td>", item.title));
tinfo.AppendLine(string.Format("<td>{0}</td>", item.sw));
tinfo.AppendLine(string.Format("<td>{0}</td>", item.ew));
tinfo.AppendLine(string.Format("<td>{0}</td>", item.swa));
tinfo.AppendLine(string.Format("<td>{0}</td>", item.ewa));
tinfo.AppendLine(string.Format("<td>{0}</td>", item.progress));
tinfo.AppendLine(string.Format("<td>{0}</td>", item.uid));
tinfo.AppendLine(string.Format("<td>{0}</td>", item.memo));
tinfo.AppendLine("</tr>");
}
contents = contents.Replace("{scheinfo}", tinfo.ToString());
//공용값 적용
ApplyCommonValue(ref contents);
//최종문자 적용
result.Content = contents;
var resp = new HttpResponseMessage()
{
Content = new StringContent(
result.Content,
System.Text.Encoding.UTF8,
"text/html")
};
return resp;
}
[HttpGet]
public HttpResponseMessage Index()
{
//로그인이 되어있지않다면 로그인을 가져온다
MethodResult result;
result = View();
var gets = Request.GetQueryNameValuePairs();// GetParameters(data);
var key_search = gets.Where(t => t.Key == "search").FirstOrDefault();
var model = GetGlobalModel();
var getParams = Request.GetQueryNameValuePairs();// GetParameters(data);
//기본값을 찾아서 없애줘야한다
var searchkey = string.Empty;
if (key_search.Key != null && key_search.Value.isEmpty() == false) searchkey = key_search.Value.Trim();
var tbody = new System.Text.StringBuilder();
//테이블데이터생성
var itemcnt = 0;
//if (searchkey.isEmpty() == false)
{
var db = new EEEntities();
var rows = db.Projects.Where(t => t.gcode == FCOMMON.info.Login.gcode && t.status.Contains("완료") == false).OrderByDescending(t => t.pdate).Take(50);
itemcnt = rows.Count();
foreach (var item in rows)
{
tbody.AppendLine("<tr>");
tbody.AppendLine($"<th scope='row'>{item.idx}</th>");
tbody.AppendLine($"<td>{item.status}</td>");
tbody.AppendLine($"<td>{item.progress}</td>");
tbody.AppendLine($"<td>{item.name}</td>");
tbody.AppendLine($"<td>{item.reqstaff}</td>");
tbody.AppendLine($"<td>{item.userManager}</td>");
tbody.AppendLine($"<td>{item.cnt}</td>");
tbody.AppendLine($"<td>{item.costo}</td>");
tbody.AppendLine($"<td>{item.costn}</td>");
tbody.AppendLine($"<td>{item.costo - item.costn}</td>");
tbody.AppendLine($"<td>{item.orderno}</td>");
if (item.memo != null)
tbody.AppendLine($"<td>{item.memo}</td>");
else
tbody.AppendLine($"<td>&nbsp;</td>");
//if (item.description.Length > 10)
// tbody.AppendLine($"<td>{item.description.Substring(0, 10)}...</td>");
//else
// tbody.AppendLine($"<td>{item.description}</td>");
tbody.AppendLine("</tr>");
}
}
//아잍쳄이 없는경우
if (itemcnt == 0)
{
tbody.AppendLine("<tr>");
tbody.AppendLine("<th scope='row'>1</th>");
tbody.AppendLine("<td colspan='6'>자료가 없습니다</td>");
tbody.AppendLine("</tr>");
}
var contents = result.Content.Replace("{search}", searchkey);
contents = contents.Replace("{tabledata}", tbody.ToString());
contents = contents.Replace("{cnt}", itemcnt.ToString());
//공용값 적용
ApplyCommonValue(ref contents);
//최종문자 적용
result.Content = contents;
var resp = new HttpResponseMessage()
{
Content = new StringContent(
result.Content,
System.Text.Encoding.UTF8,
"text/html")
};
return resp;
}
[HttpGet]
public HttpResponseMessage detail(int id)
{
//로그인이 되어있지않다면 로그인을 가져온다
MethodResult result;
result = View();
var gets = Request.GetQueryNameValuePairs();// GetParameters(data);
var key_search = gets.Where(t => t.Key == "search").FirstOrDefault();
var model = GetGlobalModel();
var getParams = Request.GetQueryNameValuePairs();// GetParameters(data);
//기본값을 찾아서 없애줘야한다
var searchkey = string.Empty;
if (key_search.Key != null && key_search.Value.isEmpty() == false) searchkey = key_search.Value.Trim();
var tbody = new System.Text.StringBuilder();
//테이블데이터생성
var itemcnt = 0;
//if (searchkey.isEmpty() == false)
{
var db = new EEEntities();
var rows = db.Projects.Where(t => t.gcode == FCOMMON.info.Login.gcode && t.status.Contains("완료") == false).OrderByDescending(t => t.pdate).Take(50);
itemcnt = rows.Count();
foreach (var item in rows)
{
tbody.AppendLine("<tr>");
tbody.AppendLine($"<th scope='row'>{item.idx}</th>");
tbody.AppendLine($"<td>{item.status}</td>");
tbody.AppendLine($"<td>{item.progress}</td>");
tbody.AppendLine($"<td>{item.name}</td>");
tbody.AppendLine($"<td>{item.reqstaff}</td>");
tbody.AppendLine($"<td>{item.userManager}</td>");
tbody.AppendLine($"<td>{item.cnt}</td>");
tbody.AppendLine($"<td>{item.costo}</td>");
tbody.AppendLine($"<td>{item.costn}</td>");
tbody.AppendLine($"<td>{item.costo - item.costn}</td>");
tbody.AppendLine($"<td>{item.orderno}</td>");
if (item.memo != null)
tbody.AppendLine($"<td>{item.memo}</td>");
else
tbody.AppendLine($"<td>&nbsp;</td>");
//if (item.description.Length > 10)
// tbody.AppendLine($"<td>{item.description.Substring(0, 10)}...</td>");
//else
// tbody.AppendLine($"<td>{item.description}</td>");
tbody.AppendLine("</tr>");
}
}
//아잍쳄이 없는경우
if (itemcnt == 0)
{
tbody.AppendLine("<tr>");
tbody.AppendLine("<th scope='row'>1</th>");
tbody.AppendLine("<td colspan='6'>자료가 없습니다</td>");
tbody.AppendLine("</tr>");
}
var contents = result.Content.Replace("{search}", searchkey);
contents = contents.Replace("{tabledata}", tbody.ToString());
contents = contents.Replace("{cnt}", itemcnt.ToString());
contents = contents.Replace("{pidx}", id.ToString());
//공용값 적용
ApplyCommonValue(ref contents);
//최종문자 적용
result.Content = contents;
var resp = new HttpResponseMessage()
{
Content = new StringContent(
result.Content,
System.Text.Encoding.UTF8,
"text/html")
};
return resp;
}
[HttpGet]
public HttpResponseMessage partlist(int id)
{
//로그인이 되어있지않다면 로그인을 가져온다
MethodResult result;
result = View();
var gets = Request.GetQueryNameValuePairs();// GetParameters(data);
var key_search = gets.Where(t => t.Key == "search").FirstOrDefault();
var model = GetGlobalModel();
var getParams = Request.GetQueryNameValuePairs();// GetParameters(data);
//기본값을 찾아서 없애줘야한다
var searchkey = string.Empty;
if (key_search.Key != null && key_search.Value.isEmpty() == false) searchkey = key_search.Value.Trim();
var tbody = new System.Text.StringBuilder();
var contents = result.Content.Replace("{search}", searchkey);
//테이블데이터생성
var itemcnt = 0;
//if (searchkey.isEmpty() == false)
{
var db = new EEEntities();
var prjinfo = db.Projects.Where(t => t.gcode == FCOMMON.info.Login.gcode && t.idx == id).FirstOrDefault();
System.Text.StringBuilder tinfo = new System.Text.StringBuilder();
//프로젝트정보를 표시합니다.
tinfo.AppendLine("<tr>");
tinfo.AppendLine(string.Format("<td>{0}</td>", prjinfo.idx));
tinfo.AppendLine(string.Format("<td>{0}</td>", prjinfo.status));
tinfo.AppendLine(string.Format("<td>{0}</td>", prjinfo.progress));
tinfo.AppendLine(string.Format("<td>{0}</td>", prjinfo.name));
tinfo.AppendLine(string.Format("<td>{0}</td>", prjinfo.reqstaff));
tinfo.AppendLine(string.Format("<td>{0}</td>", prjinfo.userManager));
tinfo.AppendLine(string.Format("<td>{0}</td>", prjinfo.orderno));
tinfo.AppendLine("</tr>");
contents = contents.Replace("{tableinfo}", tinfo.ToString());
var rows = db.ProjectsPart.Where(t => t.Project == id).OrderBy(t=>t.no);
itemcnt = rows.Count();
foreach (var item in rows)
{
tbody.AppendLine("<tr>");
tbody.AppendLine($"<th scope='row'>{item.no}</th>");
tbody.AppendLine($"<td>{item.ItemGroup}</td>");
tbody.AppendLine($"<td>{item.ItemModel}</td>");
tbody.AppendLine($"<td>{item.ItemUnit}</td>");
tbody.AppendLine($"<td>{item.ItemName}</td>");
tbody.AppendLine($"<td>{item.ItemSid}</td>");
tbody.AppendLine($"<td>{item.ItemManu}</td>");
tbody.AppendLine($"<td>{item.qty}</td>");
tbody.AppendLine($"<td>{item.qtyn}</td>");
tbody.AppendLine($"<td>{item.price}</td>");
tbody.AppendLine($"<td>{item.amt}</td>");
tbody.AppendLine($"<td>{item.amtn}</td>");
tbody.AppendLine($"<td>{item.remark}</td>");
tbody.AppendLine($"<td>{item.qtybuy}</td>");
tbody.AppendLine($"<td>{item.qtyin}</td>");
tbody.AppendLine($"<td>{item.bbuy}</td>");
tbody.AppendLine($"<td>{item.bconfirm}</td>");
tbody.AppendLine("</tr>");
}
}
//아잍쳄이 없는경우
if (itemcnt == 0)
{
tbody.AppendLine("<tr>");
tbody.AppendLine("<th scope='row'>1</th>");
tbody.AppendLine("<td colspan='6'>자료가 없습니다</td>");
tbody.AppendLine("</tr>");
}
contents = contents.Replace("{tabledata}", tbody.ToString());
contents = contents.Replace("{cnt}", itemcnt.ToString());
contents = contents.Replace("{pidx}", id.ToString());
//공용값 적용
ApplyCommonValue(ref contents);
//최종문자 적용
result.Content = contents;
var resp = new HttpResponseMessage()
{
Content = new StringContent(
result.Content,
System.Text.Encoding.UTF8,
"text/html")
};
return resp;
}
}
}

View File

@@ -0,0 +1,208 @@
using System;
using System.Linq;
using System.Net.Http;
using System.Web.Http;
namespace WebServer
{
public class PurchaseController : BaseController
{
// PUT api/values/5
public void Put(int id, [FromBody] string value)
{
}
// DELETE api/values/5
public void Delete(int id)
{
}
[HttpGet]
public string Test()
{
return "test";
}
[HttpGet]
public HttpResponseMessage Find()
{
//로그인이 되어있지않다면 로그인을 가져온다
MethodResult result;
result = View();
var gets = Request.GetQueryNameValuePairs();// GetParameters(data);
var key_search = gets.Where(t => t.Key == "search").FirstOrDefault();
var model = GetGlobalModel();
var getParams = Request.GetQueryNameValuePairs();// GetParameters(data);
//기본값을 찾아서 없애줘야한다
var searchkey = string.Empty;
if (key_search.Key != null && key_search.Value.isEmpty() == false) searchkey = key_search.Value.Trim();
var tbody = new System.Text.StringBuilder();
//테이블데이터생성
var itemcnt = 0;
if (searchkey.isEmpty() == false)
{
var db = new EEEntities();
var rows = db.vFindSID.Where(t => t.sid.Contains(searchkey) || t.name.Contains(searchkey) || t.manu.Contains(searchkey) || t.model.Contains(searchkey));
itemcnt = rows.Count();
foreach (var item in rows)
{
tbody.AppendLine("<tr>");
tbody.AppendLine($"<th scope='row'>{item.Location}</th>");
tbody.AppendLine($"<td>{item.sid}</td>");
tbody.AppendLine($"<td>{item.name}</td>");
tbody.AppendLine($"<td>{item.model}</td>");
if (item.price == null)
tbody.AppendLine($"<td>--</td>");
else
{
var price = (double)item.price / 1000.0;
tbody.AppendLine($"<td>{price.ToString("N0")}</td>");
}
tbody.AppendLine($"<td>{item.manu}</td>");
tbody.AppendLine($"<td>{item.supply}</td>");
if (item.remark.Length > 10)
tbody.AppendLine($"<td>{item.remark.Substring(0, 10)}...</td>");
else
tbody.AppendLine($"<td>{item.remark}</td>");
tbody.AppendLine("</tr>");
}
}
//아잍쳄이 없는경우
if (itemcnt == 0)
{
tbody.AppendLine("<tr>");
tbody.AppendLine("<th scope='row'>1</th>");
tbody.AppendLine("<td colspan='6'>자료가 없습니다</td>");
tbody.AppendLine("</tr>");
}
var contents = result.Content.Replace("{search}", searchkey);
contents = contents.Replace("{tabledata}", tbody.ToString());
contents = contents.Replace("{cnt}", itemcnt.ToString());
//공용값 적용
ApplyCommonValue(ref contents);
//최종문자 적용
result.Content = contents;
var resp = new HttpResponseMessage()
{
Content = new StringContent(
result.Content,
System.Text.Encoding.UTF8,
"text/html")
};
return resp;
}
[HttpGet]
public HttpResponseMessage Index()
{
//로그인이 되어있지않다면 로그인을 가져온다
MethodResult result;
result = View();
var gets = Request.GetQueryNameValuePairs();// GetParameters(data);
var key_search = gets.Where(t => t.Key == "search").FirstOrDefault();
var model = GetGlobalModel();
var getParams = Request.GetQueryNameValuePairs();// GetParameters(data);
//기본값을 찾아서 없애줘야한다
var searchkey = string.Empty;
if (key_search.Key != null && key_search.Value.isEmpty() == false) searchkey = key_search.Value.Trim();
var tbody = new System.Text.StringBuilder();
//테이블데이터생성
var itemcnt = 0;
//if (searchkey.isEmpty() == false)
{
var db = new EEEntities();
var sd = DateTime.Now.ToString("yyyy-MM-01");
var rows = db.vPurchase.AsNoTracking().Where(t => t.gcode == FCOMMON.info.Login.gcode && t.pdate.CompareTo(sd) >= 0).OrderByDescending(t => t.pdate);
itemcnt = rows.Count();
foreach (var item in rows)
{
tbody.AppendLine("<tr>");
tbody.AppendLine($"<th scope='row'>{item.pdate.Substring(5)}</th>");
if (item.state == "---") tbody.AppendLine($"<td class='table-info'>{item.state}</td>");
else if (item.state == "Received") tbody.AppendLine($"<td class='table-success'>{item.state}</td>");
else tbody.AppendLine($"<td>{item.state}</td>");
tbody.AppendLine($"<td>{item.name}</td>");
tbody.AppendLine($"<td>{item.sid}</td>");
tbody.AppendLine($"<td>{item.pumname}</td>");
if (item.pumscale.Length > 10) tbody.AppendLine($"<td>{item.pumscale.Substring(0, 10)}...</td>");
else tbody.AppendLine($"<td>{item.pumscale}</td>");
tbody.AppendLine($"<td>{item.pumqty}</td>");
tbody.AppendLine($"<td>{item.pumprice}</td>");
tbody.AppendLine($"<td>{item.pumamt}</td>");
tbody.AppendLine($"<td>{item.supply}</td>");
if (item.project.Length > 10) tbody.AppendLine($"<td>{item.project.Substring(0, 10)}...</td>");
else tbody.AppendLine($"<td>{item.project}</td>");
if (item.bigo.Length > 10) tbody.AppendLine($"<td>{item.bigo.Substring(0, 10)}...</td>");
else tbody.AppendLine($"<td>{item.bigo}</td>");
tbody.AppendLine("</tr>");
}
}
//아잍쳄이 없는경우
if (itemcnt == 0)
{
tbody.AppendLine("<tr>");
tbody.AppendLine("<th scope='row'>1</th>");
tbody.AppendLine("<td colspan='6'>자료가 없습니다</td>");
tbody.AppendLine("</tr>");
}
var contents = result.Content.Replace("{search}", searchkey);
contents = contents.Replace("{tabledata}", tbody.ToString());
contents = contents.Replace("{cnt}", itemcnt.ToString());
//공용값 적용
ApplyCommonValue(ref contents);
//최종문자 적용
result.Content = contents;
var resp = new HttpResponseMessage()
{
Content = new StringContent(
result.Content,
System.Text.Encoding.UTF8,
"text/html")
};
return resp;
}
}
}

View File

@@ -0,0 +1,114 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Text;
using System.Threading.Tasks;
using System.Web.Http;
namespace WebServer
{
public class ResourceController : BaseController
{
[HttpGet]
public HttpResponseMessage file()
{
var config = RequestContext.Configuration;
var routeData = config.Routes.GetRouteData(Request).Values.ToList();
var p_resource = routeData.Where(t => t.Key == "resource").FirstOrDefault();
var p_path = routeData.Where(t => t.Key == "path").FirstOrDefault();
var p_ext = routeData.Where(t => t.Key == "ext").FirstOrDefault();
var p_subdir = routeData.Where(t => t.Key == "subdir").FirstOrDefault();
var v_resource = string.Empty;
var v_path = string.Empty;
var v_ext = string.Empty;
var v_subdir = string.Empty;
if (p_resource.Key == "resource") v_resource = p_resource.Value.ToString();
if (p_path.Key == "path") v_path = p_path.Value.ToString();
if (p_ext.Key == "ext") v_ext = p_ext.Value.ToString();
if (p_subdir.Key == "subdir") v_subdir = p_subdir.Value.ToString();
//var file_ext = routeData[0].Value.ToString();
//var name_resource = routeData[1].Value.ToString() + "." + file_ext;
//var name_action = routeData[3].Value.ToString();
Boolean isBinary = true;
string content_type = "text/plain";
if (v_ext == "json")
{
isBinary = false;
content_type = "application/json";
}
else if(v_ext == "vue")
{
isBinary = false;
content_type = "application/js";
}
else if (v_ext == "js")
{
isBinary = false;
content_type = "application/js";
}
else if (v_ext == "css")
{
isBinary = false;
content_type = "text/css";
}
else if (v_ext == "csv")
{
isBinary = false;
content_type = "text/csv";
}
else if (v_ext == "ico")
{
isBinary = true;
content_type = "image/x-icon";
}
else if(v_ext == "ttf" || v_ext == "otf")
{
isBinary = true;
content_type = "application/octet-stream";
}
HttpContent resultContent = null;
var file = System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "View", v_path, v_subdir, v_resource + "." + v_ext);
if (isBinary)
{
if (System.IO.File.Exists(file))
{
var buffer = System.IO.File.ReadAllBytes(file);
resultContent = new ByteArrayContent(buffer);
Console.WriteLine(">>File(B) : " + file);
}
else Console.WriteLine("no resouoir file " + file);
}
else
{
if (System.IO.File.Exists(file))
{
var buffer = System.IO.File.ReadAllText(file, System.Text.Encoding.UTF8);
resultContent = new StringContent(buffer, System.Text.Encoding.UTF8, content_type);
Console.WriteLine(">>File(S) : " + file);
}
else Console.WriteLine("no resouoir file " + file);
}
return new HttpResponseMessage()
{
Content = resultContent
};
}
}
}

View File

@@ -0,0 +1,64 @@
using System;
using System.Linq;
using System.Net.Http;
using System.Web.Http;
namespace WebServer
{
public class ResultController : BaseController
{
[HttpPost]
public void Index([FromBody]string value)
{
}
// PUT api/values/5
public void Put(int id, [FromBody]string value)
{
}
// DELETE api/values/5
public void Delete(int id)
{
}
[HttpGet]
public string Test()
{
return "test";
}
[HttpGet]
public HttpResponseMessage Index()
{
//로그인이 되어있지않다면 로그인을 가져온다
MethodResult result;
result = View();
var model = GetGlobalModel();
var getParams = Request.GetQueryNameValuePairs();// GetParameters(data);
//기본값을 찾아서 없애줘야한다
var contents = result.Content;
//공용값 적용
ApplyCommonValue(ref contents);
//최종문자 적용
result.Content = contents;
var resp = new HttpResponseMessage()
{
Content = new StringContent(
result.Content,
System.Text.Encoding.UTF8,
"text/html")
};
return resp;
}
}
}

View File

@@ -0,0 +1,63 @@
using System;
using System.Linq;
using System.Net.Http;
using System.Web.Http;
namespace WebServer
{
public class SettingController : BaseController
{
[HttpPost]
public void Index([FromBody]string value)
{
}
// PUT api/values/5
public void Put(int id, [FromBody]string value)
{
}
// DELETE api/values/5
public void Delete(int id)
{
}
[HttpGet]
public string Test()
{
return "test";
}
[HttpGet]
public HttpResponseMessage Index()
{
//로그인이 되어있지않다면 로그인을 가져온다
MethodResult result;
result = View();
var model = GetGlobalModel();
var getParams = Request.GetQueryNameValuePairs();// GetParameters(data);
//기본값을 찾아서 없애줘야한다
var contents = result.Content;
//공용값 적용
ApplyCommonValue(ref contents);
//최종문자 적용
result.Content = contents;
var resp = new HttpResponseMessage()
{
Content = new StringContent(
result.Content,
System.Text.Encoding.UTF8,
"text/html")
};
return resp;
}
}
}

View File

@@ -0,0 +1,35 @@
//------------------------------------------------------------------------------
// <auto-generated>
// 이 코드는 템플릿에서 생성되었습니다.
//
// 이 파일을 수동으로 변경하면 응용 프로그램에서 예기치 않은 동작이 발생할 수 있습니다.
// 이 파일을 수동으로 변경하면 코드가 다시 생성될 때 변경 내용을 덮어씁니다.
// </auto-generated>
//------------------------------------------------------------------------------
namespace WebServer
{
using System;
using System.Collections.Generic;
public partial class Customs
{
public int idx { get; set; }
public string gcode { get; set; }
public string grp { get; set; }
public string uptae { get; set; }
public string name { get; set; }
public string name2 { get; set; }
public string owner { get; set; }
public string ownertel { get; set; }
public string address { get; set; }
public string tel { get; set; }
public string fax { get; set; }
public string email { get; set; }
public string memo { get; set; }
public string staff { get; set; }
public string stafftel { get; set; }
public string wuid { get; set; }
public System.DateTime wdate { get; set; }
}
}

View File

@@ -0,0 +1,28 @@
//------------------------------------------------------------------------------
// <auto-generated>
// 이 코드는 템플릿에서 생성되었습니다.
//
// 이 파일을 수동으로 변경하면 응용 프로그램에서 예기치 않은 동작이 발생할 수 있습니다.
// 이 파일을 수동으로 변경하면 코드가 다시 생성될 때 변경 내용을 덮어씁니다.
// </auto-generated>
//------------------------------------------------------------------------------
namespace WebServer
{
using System;
using System.Collections.Generic;
public partial class EETGW_GroupUser
{
public int idx { get; set; }
public string gcode { get; set; }
public string uid { get; set; }
public Nullable<short> level { get; set; }
public string Process { get; set; }
public string state { get; set; }
public Nullable<bool> useJobReport { get; set; }
public Nullable<bool> useUserState { get; set; }
public string wuid { get; set; }
public System.DateTime wdate { get; set; }
}
}

View File

@@ -0,0 +1,30 @@
//------------------------------------------------------------------------------
// <auto-generated>
// 이 코드는 템플릿에서 생성되었습니다.
//
// 이 파일을 수동으로 변경하면 응용 프로그램에서 예기치 않은 동작이 발생할 수 있습니다.
// 이 파일을 수동으로 변경하면 코드가 다시 생성될 때 변경 내용을 덮어씁니다.
// </auto-generated>
//------------------------------------------------------------------------------
namespace WebServer
{
using System;
using System.Collections.Generic;
public partial class EETGW_Project_Layout
{
public int idx { get; set; }
public string gcode { get; set; }
public int no { get; set; }
public int row { get; set; }
public int col { get; set; }
public int rowspan { get; set; }
public int colspan { get; set; }
public Nullable<int> project { get; set; }
public string reserve { get; set; }
public string remark { get; set; }
public string wuid { get; set; }
public System.DateTime wdate { get; set; }
}
}

View File

@@ -0,0 +1,34 @@
//------------------------------------------------------------------------------
// <auto-generated>
// 이 코드는 템플릿에서 생성되었습니다.
//
// 이 파일을 수동으로 변경하면 응용 프로그램에서 예기치 않은 동작이 발생할 수 있습니다.
// 이 파일을 수동으로 변경하면 코드가 다시 생성될 때 변경 내용을 덮어씁니다.
// </auto-generated>
//------------------------------------------------------------------------------
namespace WebServer
{
using System;
using System.Collections.Generic;
public partial class EETGW_ProjectsSchedule
{
public int idx { get; set; }
public string gcode { get; set; }
public Nullable<int> project { get; set; }
public Nullable<int> no { get; set; }
public Nullable<int> seq { get; set; }
public string title { get; set; }
public Nullable<int> sw { get; set; }
public Nullable<int> ew { get; set; }
public Nullable<int> swa { get; set; }
public Nullable<int> ewa { get; set; }
public string uid { get; set; }
public string memo { get; set; }
public Nullable<int> appoval { get; set; }
public Nullable<int> progress { get; set; }
public string wuid { get; set; }
public System.DateTime wdate { get; set; }
}
}

View File

@@ -0,0 +1,24 @@
//------------------------------------------------------------------------------
// <auto-generated>
// 이 코드는 템플릿에서 생성되었습니다.
//
// 이 파일을 수동으로 변경하면 응용 프로그램에서 예기치 않은 동작이 발생할 수 있습니다.
// 이 파일을 수동으로 변경하면 코드가 다시 생성될 때 변경 내용을 덮어씁니다.
// </auto-generated>
//------------------------------------------------------------------------------
namespace WebServer
{
using System;
using System.Collections.Generic;
public partial class HolidayLIst
{
public int idx { get; set; }
public string pdate { get; set; }
public Nullable<bool> free { get; set; }
public string memo { get; set; }
public string wuid { get; set; }
public System.DateTime wdate { get; set; }
}
}

View File

@@ -0,0 +1,38 @@
//------------------------------------------------------------------------------
// <auto-generated>
// 이 코드는 템플릿에서 생성되었습니다.
//
// 이 파일을 수동으로 변경하면 응용 프로그램에서 예기치 않은 동작이 발생할 수 있습니다.
// 이 파일을 수동으로 변경하면 코드가 다시 생성될 때 변경 내용을 덮어씁니다.
// </auto-generated>
//------------------------------------------------------------------------------
namespace WebServer
{
using System;
using System.Collections.Generic;
public partial class Holyday
{
public int idx { get; set; }
public string gcode { get; set; }
public string cate { get; set; }
public string result { get; set; }
public Nullable<System.DateTime> sdate { get; set; }
public Nullable<System.DateTime> edate { get; set; }
public Nullable<double> term { get; set; }
public Nullable<double> termDr { get; set; }
public Nullable<double> DrTime { get; set; }
public Nullable<double> CrTime { get; set; }
public string title { get; set; }
public string contents { get; set; }
public string uid { get; set; }
public string tolist { get; set; }
public Nullable<bool> mail { get; set; }
public Nullable<bool> mailsend { get; set; }
public string tag { get; set; }
public string reason { get; set; }
public string wuid { get; set; }
public System.DateTime wdate { get; set; }
}
}

View File

@@ -0,0 +1,40 @@
//------------------------------------------------------------------------------
// <auto-generated>
// 이 코드는 템플릿에서 생성되었습니다.
//
// 이 파일을 수동으로 변경하면 응용 프로그램에서 예기치 않은 동작이 발생할 수 있습니다.
// 이 파일을 수동으로 변경하면 코드가 다시 생성될 때 변경 내용을 덮어씁니다.
// </auto-generated>
//------------------------------------------------------------------------------
namespace WebServer
{
using System;
using System.Collections.Generic;
public partial class Items
{
public int idx { get; set; }
public Nullable<bool> disable { get; set; }
public string gcode { get; set; }
public string cate { get; set; }
public string name { get; set; }
public string sid { get; set; }
public string model { get; set; }
public string manu { get; set; }
public Nullable<double> scale { get; set; }
public string unit { get; set; }
public string supply { get; set; }
public Nullable<int> supplyidx { get; set; }
public Nullable<decimal> price { get; set; }
public string memo { get; set; }
public byte[] image { get; set; }
public Nullable<bool> bparam1 { get; set; }
public Nullable<int> iparam1 { get; set; }
public string import { get; set; }
public string wuid { get; set; }
public System.DateTime wdate { get; set; }
public Nullable<bool> bEstimate { get; set; }
public Nullable<bool> bSAP { get; set; }
}
}

View File

@@ -0,0 +1,39 @@
//------------------------------------------------------------------------------
// <auto-generated>
// 이 코드는 템플릿에서 생성되었습니다.
//
// 이 파일을 수동으로 변경하면 응용 프로그램에서 예기치 않은 동작이 발생할 수 있습니다.
// 이 파일을 수동으로 변경하면 코드가 다시 생성될 때 변경 내용을 덮어씁니다.
// </auto-generated>
//------------------------------------------------------------------------------
namespace WebServer
{
using System;
using System.Collections.Generic;
public partial class JobReport
{
public int idx { get; set; }
public string gcode { get; set; }
public string pdate { get; set; }
public Nullable<int> pidx { get; set; }
public string projectName { get; set; }
public string uid { get; set; }
public string requestpart { get; set; }
public string package { get; set; }
public string status { get; set; }
public string type { get; set; }
public string process { get; set; }
public string description { get; set; }
public string remark { get; set; }
public Nullable<double> hrs { get; set; }
public Nullable<double> ot { get; set; }
public Nullable<bool> import { get; set; }
public string wuid { get; set; }
public System.DateTime wdate { get; set; }
public string description2 { get; set; }
public string tag { get; set; }
public Nullable<bool> autoinput { get; set; }
}
}

View File

@@ -0,0 +1,28 @@
//------------------------------------------------------------------------------
// <auto-generated>
// 이 코드는 템플릿에서 생성되었습니다.
//
// 이 파일을 수동으로 변경하면 응용 프로그램에서 예기치 않은 동작이 발생할 수 있습니다.
// 이 파일을 수동으로 변경하면 코드가 다시 생성될 때 변경 내용을 덮어씁니다.
// </auto-generated>
//------------------------------------------------------------------------------
namespace WebServer
{
using System;
using System.Collections.Generic;
public partial class LineCode
{
public int idx { get; set; }
public string code { get; set; }
public string team { get; set; }
public string part { get; set; }
public string plant { get; set; }
public string grp2 { get; set; }
public Nullable<bool> except { get; set; }
public string memo { get; set; }
public string wuid { get; set; }
public System.DateTime wdate { get; set; }
}
}

View File

@@ -0,0 +1,35 @@
//------------------------------------------------------------------------------
// <auto-generated>
// 이 코드는 템플릿에서 생성되었습니다.
//
// 이 파일을 수동으로 변경하면 응용 프로그램에서 예기치 않은 동작이 발생할 수 있습니다.
// 이 파일을 수동으로 변경하면 코드가 다시 생성될 때 변경 내용을 덮어씁니다.
// </auto-generated>
//------------------------------------------------------------------------------
namespace WebServer
{
using System;
using System.Collections.Generic;
public partial class MailData
{
public int idx { get; set; }
public Nullable<int> project { get; set; }
public string gcode { get; set; }
public string cate { get; set; }
public string pdate { get; set; }
public string subject { get; set; }
public string fromlist { get; set; }
public string tolist { get; set; }
public string bcc { get; set; }
public string cc { get; set; }
public string body { get; set; }
public Nullable<bool> SendOK { get; set; }
public string SendMsg { get; set; }
public Nullable<int> aidx { get; set; }
public string atime { get; set; }
public string wuid { get; set; }
public System.DateTime wdate { get; set; }
}
}

View File

@@ -0,0 +1,35 @@
//------------------------------------------------------------------------------
// <auto-generated>
// 이 코드는 템플릿에서 생성되었습니다.
//
// 이 파일을 수동으로 변경하면 응용 프로그램에서 예기치 않은 동작이 발생할 수 있습니다.
// 이 파일을 수동으로 변경하면 코드가 다시 생성될 때 변경 내용을 덮어씁니다.
// </auto-generated>
//------------------------------------------------------------------------------
namespace WebServer
{
using System;
using System.Collections.Generic;
public partial class MailForm
{
public int idx { get; set; }
public string gcode { get; set; }
public string cate { get; set; }
public string title { get; set; }
public string tolist { get; set; }
public string bcc { get; set; }
public string cc { get; set; }
public string subject { get; set; }
public string tail { get; set; }
public string body { get; set; }
public Nullable<bool> selfTo { get; set; }
public Nullable<bool> selfCC { get; set; }
public Nullable<bool> selfBCC { get; set; }
public string wuid { get; set; }
public System.DateTime wdate { get; set; }
public string exceptmail { get; set; }
public string exceptmailcc { get; set; }
}
}

View File

@@ -0,0 +1,140 @@
//180917 chi makefilepath,MakeFTPPath 입력
//180705 chi GetHexStringNoSpace 다시 추가 ,UrlPathEncode 추가
// getDateValue 추가
//180625 chi GetHexStringNoSpace 삭제(이것은 util.cs로 이동)
//180614 chi Map 명령추가
using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.InteropServices;
using System.Text;
using System.Text.RegularExpressions;
using System.Threading.Tasks;
namespace WebServer
{
/// <summary>
/// generic method Extension
/// </summary>
public static class MethodExtensions
{
public static string MakeFilePath(this string value,params string[] param)
{
System.Text.StringBuilder sb = new System.Text.StringBuilder();
sb.Append(value.Replace("/", "\\"));
foreach (var item in param)
{
if (sb.Length > 0 && sb.ToString().EndsWith("\\") == false) sb.Append("\\");
sb.Append(item.Replace("/", "\\"));
}
var retval = sb.ToString().Replace("/", "\\").Replace("\\\\", "\\");
return retval.ToString();
}
public static string MakeFTPPath(this string value, params string[] param)
{
System.Text.StringBuilder sb = new System.Text.StringBuilder();
sb.Append(value.Replace("\\", "/"));
foreach (var item in param)
{
if (sb.Length > 0 && sb.ToString().EndsWith("/") == false) sb.Append("/");
sb.Append(item.Replace("\\", "/"));
}
var retval = sb.ToString().Replace("//", "/");
return retval.ToString();
}
public static double map(this double x, int in_min, int in_max, int out_min, int out_max)
{
return (x - in_min) * (out_max - out_min) / (in_max - in_min) + out_min;
}
public static string Base64Encode(this string src)
{
string base64enc = Convert.ToBase64String(System.Text.Encoding.UTF8.GetBytes(src));
return base64enc;
}
public static string Base64Decode(this string src)
{
var base64dec = Convert.FromBase64String(src);
return System.Text.Encoding.UTF8.GetString(base64dec);
}
/// <summary>
/// 0101이 반복되는 문자열 형태로 전환합니다.
/// </summary>
/// <param name="arr"></param>
/// <returns></returns>
public static string BitString(this System.Collections.BitArray arr)
{
System.Text.StringBuilder sb = new System.Text.StringBuilder();
for (int i = arr.Length; i > 0; i--)
sb.Append(arr[i - 1] ? "1" : "0");
return sb.ToString();
}
/// <summary>
/// int 값으로 변환합니다.
/// </summary>
/// <param name="arr"></param>
/// <returns></returns>
public static int ValueI(this System.Collections.BitArray arr)
{
byte[] buf = new byte[4];
arr.CopyTo(buf, 0);
return BitConverter.ToInt32(buf, 0);
}
/// <summary>
/// 숫자인지 검사합니다.
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
public static bool IsNumeric(this string input)
{
double data;
return double.TryParse(input, out data);
//return Regex.IsMatch(input, @"^\d+$");
}
/// <summary>
/// isnullorempty 를 수행합니다.
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
public static Boolean isEmpty(this string input)
{
return string.IsNullOrEmpty(input);
}
/// <summary>
/// default 인코딩을 사용하여 문자열로 반환합니다.
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
public static string GetString(this Byte[] input)
{
return System.Text.Encoding.Default.GetString(input);
}
/// <summary>
/// 16진수 문자열 형태로 반환합니다.
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
public static string GetHexString(this Byte[] input)
{
System.Text.StringBuilder sb = new System.Text.StringBuilder();
foreach (byte b in input)
sb.Append(" " + b.ToString("X2"));
return sb.ToString();
}
}
}

View File

@@ -0,0 +1,18 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace WebServer
{
public class PageModel
{
public List<KeyValuePair<string, object>> RouteData { get; set; }
public string urlcontrol { get; set; }
public string urlaction { get; set; }
}
}

View File

@@ -0,0 +1,51 @@
//------------------------------------------------------------------------------
// <auto-generated>
// 이 코드는 템플릿에서 생성되었습니다.
//
// 이 파일을 수동으로 변경하면 응용 프로그램에서 예기치 않은 동작이 발생할 수 있습니다.
// 이 파일을 수동으로 변경하면 코드가 다시 생성될 때 변경 내용을 덮어씁니다.
// </auto-generated>
//------------------------------------------------------------------------------
namespace WebServer
{
using System;
using System.Data.Entity;
using System.Data.Entity.Infrastructure;
public partial class EEEntities : DbContext
{
public EEEntities()
: base("name=EEEntities")
{
}
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
throw new UnintentionalCodeFirstException();
}
public virtual DbSet<EETGW_GroupUser> EETGW_GroupUser { get; set; }
public virtual DbSet<Items> Items { get; set; }
public virtual DbSet<JobReport> JobReport { get; set; }
public virtual DbSet<MailData> MailData { get; set; }
public virtual DbSet<MailForm> MailForm { get; set; }
public virtual DbSet<Projects> Projects { get; set; }
public virtual DbSet<ProjectsPart> ProjectsPart { get; set; }
public virtual DbSet<Purchase> Purchase { get; set; }
public virtual DbSet<UserGroup> UserGroup { get; set; }
public virtual DbSet<Users> Users { get; set; }
public virtual DbSet<vGroupUser> vGroupUser { get; set; }
public virtual DbSet<vJobReportForUser> vJobReportForUser { get; set; }
public virtual DbSet<vPurchase> vPurchase { get; set; }
public virtual DbSet<Auth> Auth { get; set; }
public virtual DbSet<Common> Common { get; set; }
public virtual DbSet<Customs> Customs { get; set; }
public virtual DbSet<EETGW_Project_Layout> EETGW_Project_Layout { get; set; }
public virtual DbSet<HolidayLIst> HolidayLIst { get; set; }
public virtual DbSet<Holyday> Holyday { get; set; }
public virtual DbSet<LineCode> LineCode { get; set; }
public virtual DbSet<EETGW_ProjectsSchedule> EETGW_ProjectsSchedule { get; set; }
public virtual DbSet<vFindSID> vFindSID { get; set; }
}
}

View File

@@ -0,0 +1,636 @@
<#@ template language="C#" debug="false" hostspecific="true"#>
<#@ include file="EF6.Utility.CS.ttinclude"#><#@
output extension=".cs"#><#
const string inputFile = @"Model1.edmx";
var textTransform = DynamicTextTransformation.Create(this);
var code = new CodeGenerationTools(this);
var ef = new MetadataTools(this);
var typeMapper = new TypeMapper(code, ef, textTransform.Errors);
var loader = new EdmMetadataLoader(textTransform.Host, textTransform.Errors);
var itemCollection = loader.CreateEdmItemCollection(inputFile);
var modelNamespace = loader.GetModelNamespace(inputFile);
var codeStringGenerator = new CodeStringGenerator(code, typeMapper, ef);
var container = itemCollection.OfType<EntityContainer>().FirstOrDefault();
if (container == null)
{
return string.Empty;
}
#>
//------------------------------------------------------------------------------
// <auto-generated>
// <#=CodeGenerationTools.GetResourceString("Template_GeneratedCodeCommentLine1")#>
//
// <#=CodeGenerationTools.GetResourceString("Template_GeneratedCodeCommentLine2")#>
// <#=CodeGenerationTools.GetResourceString("Template_GeneratedCodeCommentLine3")#>
// </auto-generated>
//------------------------------------------------------------------------------
<#
var codeNamespace = code.VsNamespaceSuggestion();
if (!String.IsNullOrEmpty(codeNamespace))
{
#>
namespace <#=code.EscapeNamespace(codeNamespace)#>
{
<#
PushIndent(" ");
}
#>
using System;
using System.Data.Entity;
using System.Data.Entity.Infrastructure;
<#
if (container.FunctionImports.Any())
{
#>
using System.Data.Entity.Core.Objects;
using System.Linq;
<#
}
#>
<#=Accessibility.ForType(container)#> partial class <#=code.Escape(container)#> : DbContext
{
public <#=code.Escape(container)#>()
: base("name=<#=container.Name#>")
{
<#
if (!loader.IsLazyLoadingEnabled(container))
{
#>
this.Configuration.LazyLoadingEnabled = false;
<#
}
foreach (var entitySet in container.BaseEntitySets.OfType<EntitySet>())
{
// Note: the DbSet members are defined below such that the getter and
// setter always have the same accessibility as the DbSet definition
if (Accessibility.ForReadOnlyProperty(entitySet) != "public")
{
#>
<#=codeStringGenerator.DbSetInitializer(entitySet)#>
<#
}
}
#>
}
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
throw new UnintentionalCodeFirstException();
}
<#
foreach (var entitySet in container.BaseEntitySets.OfType<EntitySet>())
{
#>
<#=codeStringGenerator.DbSet(entitySet)#>
<#
}
foreach (var edmFunction in container.FunctionImports)
{
WriteFunctionImport(typeMapper, codeStringGenerator, edmFunction, modelNamespace, includeMergeOption: false);
}
#>
}
<#
if (!String.IsNullOrEmpty(codeNamespace))
{
PopIndent();
#>
}
<#
}
#>
<#+
private void WriteFunctionImport(TypeMapper typeMapper, CodeStringGenerator codeStringGenerator, EdmFunction edmFunction, string modelNamespace, bool includeMergeOption)
{
if (typeMapper.IsComposable(edmFunction))
{
#>
[DbFunction("<#=edmFunction.NamespaceName#>", "<#=edmFunction.Name#>")]
<#=codeStringGenerator.ComposableFunctionMethod(edmFunction, modelNamespace)#>
{
<#+
codeStringGenerator.WriteFunctionParameters(edmFunction, WriteFunctionParameter);
#>
<#=codeStringGenerator.ComposableCreateQuery(edmFunction, modelNamespace)#>
}
<#+
}
else
{
#>
<#=codeStringGenerator.FunctionMethod(edmFunction, modelNamespace, includeMergeOption)#>
{
<#+
codeStringGenerator.WriteFunctionParameters(edmFunction, WriteFunctionParameter);
#>
<#=codeStringGenerator.ExecuteFunction(edmFunction, modelNamespace, includeMergeOption)#>
}
<#+
if (typeMapper.GenerateMergeOptionFunction(edmFunction, includeMergeOption))
{
WriteFunctionImport(typeMapper, codeStringGenerator, edmFunction, modelNamespace, includeMergeOption: true);
}
}
}
public void WriteFunctionParameter(string name, string isNotNull, string notNullInit, string nullInit)
{
#>
var <#=name#> = <#=isNotNull#> ?
<#=notNullInit#> :
<#=nullInit#>;
<#+
}
public const string TemplateId = "CSharp_DbContext_Context_EF6";
public class CodeStringGenerator
{
private readonly CodeGenerationTools _code;
private readonly TypeMapper _typeMapper;
private readonly MetadataTools _ef;
public CodeStringGenerator(CodeGenerationTools code, TypeMapper typeMapper, MetadataTools ef)
{
ArgumentNotNull(code, "code");
ArgumentNotNull(typeMapper, "typeMapper");
ArgumentNotNull(ef, "ef");
_code = code;
_typeMapper = typeMapper;
_ef = ef;
}
public string Property(EdmProperty edmProperty)
{
return string.Format(
CultureInfo.InvariantCulture,
"{0} {1} {2} {{ {3}get; {4}set; }}",
Accessibility.ForProperty(edmProperty),
_typeMapper.GetTypeName(edmProperty.TypeUsage),
_code.Escape(edmProperty),
_code.SpaceAfter(Accessibility.ForGetter(edmProperty)),
_code.SpaceAfter(Accessibility.ForSetter(edmProperty)));
}
public string NavigationProperty(NavigationProperty navProp)
{
var endType = _typeMapper.GetTypeName(navProp.ToEndMember.GetEntityType());
return string.Format(
CultureInfo.InvariantCulture,
"{0} {1} {2} {{ {3}get; {4}set; }}",
AccessibilityAndVirtual(Accessibility.ForNavigationProperty(navProp)),
navProp.ToEndMember.RelationshipMultiplicity == RelationshipMultiplicity.Many ? ("ICollection<" + endType + ">") : endType,
_code.Escape(navProp),
_code.SpaceAfter(Accessibility.ForGetter(navProp)),
_code.SpaceAfter(Accessibility.ForSetter(navProp)));
}
public string AccessibilityAndVirtual(string accessibility)
{
return accessibility + (accessibility != "private" ? " virtual" : "");
}
public string EntityClassOpening(EntityType entity)
{
return string.Format(
CultureInfo.InvariantCulture,
"{0} {1}partial class {2}{3}",
Accessibility.ForType(entity),
_code.SpaceAfter(_code.AbstractOption(entity)),
_code.Escape(entity),
_code.StringBefore(" : ", _typeMapper.GetTypeName(entity.BaseType)));
}
public string EnumOpening(SimpleType enumType)
{
return string.Format(
CultureInfo.InvariantCulture,
"{0} enum {1} : {2}",
Accessibility.ForType(enumType),
_code.Escape(enumType),
_code.Escape(_typeMapper.UnderlyingClrType(enumType)));
}
public void WriteFunctionParameters(EdmFunction edmFunction, Action<string, string, string, string> writeParameter)
{
var parameters = FunctionImportParameter.Create(edmFunction.Parameters, _code, _ef);
foreach (var parameter in parameters.Where(p => p.NeedsLocalVariable))
{
var isNotNull = parameter.IsNullableOfT ? parameter.FunctionParameterName + ".HasValue" : parameter.FunctionParameterName + " != null";
var notNullInit = "new ObjectParameter(\"" + parameter.EsqlParameterName + "\", " + parameter.FunctionParameterName + ")";
var nullInit = "new ObjectParameter(\"" + parameter.EsqlParameterName + "\", typeof(" + TypeMapper.FixNamespaces(parameter.RawClrTypeName) + "))";
writeParameter(parameter.LocalVariableName, isNotNull, notNullInit, nullInit);
}
}
public string ComposableFunctionMethod(EdmFunction edmFunction, string modelNamespace)
{
var parameters = _typeMapper.GetParameters(edmFunction);
return string.Format(
CultureInfo.InvariantCulture,
"{0} IQueryable<{1}> {2}({3})",
AccessibilityAndVirtual(Accessibility.ForMethod(edmFunction)),
_typeMapper.GetTypeName(_typeMapper.GetReturnType(edmFunction), modelNamespace),
_code.Escape(edmFunction),
string.Join(", ", parameters.Select(p => TypeMapper.FixNamespaces(p.FunctionParameterType) + " " + p.FunctionParameterName).ToArray()));
}
public string ComposableCreateQuery(EdmFunction edmFunction, string modelNamespace)
{
var parameters = _typeMapper.GetParameters(edmFunction);
return string.Format(
CultureInfo.InvariantCulture,
"return ((IObjectContextAdapter)this).ObjectContext.CreateQuery<{0}>(\"[{1}].[{2}]({3})\"{4});",
_typeMapper.GetTypeName(_typeMapper.GetReturnType(edmFunction), modelNamespace),
edmFunction.NamespaceName,
edmFunction.Name,
string.Join(", ", parameters.Select(p => "@" + p.EsqlParameterName).ToArray()),
_code.StringBefore(", ", string.Join(", ", parameters.Select(p => p.ExecuteParameterName).ToArray())));
}
public string FunctionMethod(EdmFunction edmFunction, string modelNamespace, bool includeMergeOption)
{
var parameters = _typeMapper.GetParameters(edmFunction);
var returnType = _typeMapper.GetReturnType(edmFunction);
var paramList = String.Join(", ", parameters.Select(p => TypeMapper.FixNamespaces(p.FunctionParameterType) + " " + p.FunctionParameterName).ToArray());
if (includeMergeOption)
{
paramList = _code.StringAfter(paramList, ", ") + "MergeOption mergeOption";
}
return string.Format(
CultureInfo.InvariantCulture,
"{0} {1} {2}({3})",
AccessibilityAndVirtual(Accessibility.ForMethod(edmFunction)),
returnType == null ? "int" : "ObjectResult<" + _typeMapper.GetTypeName(returnType, modelNamespace) + ">",
_code.Escape(edmFunction),
paramList);
}
public string ExecuteFunction(EdmFunction edmFunction, string modelNamespace, bool includeMergeOption)
{
var parameters = _typeMapper.GetParameters(edmFunction);
var returnType = _typeMapper.GetReturnType(edmFunction);
var callParams = _code.StringBefore(", ", String.Join(", ", parameters.Select(p => p.ExecuteParameterName).ToArray()));
if (includeMergeOption)
{
callParams = ", mergeOption" + callParams;
}
return string.Format(
CultureInfo.InvariantCulture,
"return ((IObjectContextAdapter)this).ObjectContext.ExecuteFunction{0}(\"{1}\"{2});",
returnType == null ? "" : "<" + _typeMapper.GetTypeName(returnType, modelNamespace) + ">",
edmFunction.Name,
callParams);
}
public string DbSet(EntitySet entitySet)
{
return string.Format(
CultureInfo.InvariantCulture,
"{0} virtual DbSet<{1}> {2} {{ get; set; }}",
Accessibility.ForReadOnlyProperty(entitySet),
_typeMapper.GetTypeName(entitySet.ElementType),
_code.Escape(entitySet));
}
public string DbSetInitializer(EntitySet entitySet)
{
return string.Format(
CultureInfo.InvariantCulture,
"{0} = Set<{1}>();",
_code.Escape(entitySet),
_typeMapper.GetTypeName(entitySet.ElementType));
}
public string UsingDirectives(bool inHeader, bool includeCollections = true)
{
return inHeader == string.IsNullOrEmpty(_code.VsNamespaceSuggestion())
? string.Format(
CultureInfo.InvariantCulture,
"{0}using System;{1}" +
"{2}",
inHeader ? Environment.NewLine : "",
includeCollections ? (Environment.NewLine + "using System.Collections.Generic;") : "",
inHeader ? "" : Environment.NewLine)
: "";
}
}
public class TypeMapper
{
private const string ExternalTypeNameAttributeName = @"http://schemas.microsoft.com/ado/2006/04/codegeneration:ExternalTypeName";
private readonly System.Collections.IList _errors;
private readonly CodeGenerationTools _code;
private readonly MetadataTools _ef;
public static string FixNamespaces(string typeName)
{
return typeName.Replace("System.Data.Spatial.", "System.Data.Entity.Spatial.");
}
public TypeMapper(CodeGenerationTools code, MetadataTools ef, System.Collections.IList errors)
{
ArgumentNotNull(code, "code");
ArgumentNotNull(ef, "ef");
ArgumentNotNull(errors, "errors");
_code = code;
_ef = ef;
_errors = errors;
}
public string GetTypeName(TypeUsage typeUsage)
{
return typeUsage == null ? null : GetTypeName(typeUsage.EdmType, _ef.IsNullable(typeUsage), modelNamespace: null);
}
public string GetTypeName(EdmType edmType)
{
return GetTypeName(edmType, isNullable: null, modelNamespace: null);
}
public string GetTypeName(TypeUsage typeUsage, string modelNamespace)
{
return typeUsage == null ? null : GetTypeName(typeUsage.EdmType, _ef.IsNullable(typeUsage), modelNamespace);
}
public string GetTypeName(EdmType edmType, string modelNamespace)
{
return GetTypeName(edmType, isNullable: null, modelNamespace: modelNamespace);
}
public string GetTypeName(EdmType edmType, bool? isNullable, string modelNamespace)
{
if (edmType == null)
{
return null;
}
var collectionType = edmType as CollectionType;
if (collectionType != null)
{
return String.Format(CultureInfo.InvariantCulture, "ICollection<{0}>", GetTypeName(collectionType.TypeUsage, modelNamespace));
}
var typeName = _code.Escape(edmType.MetadataProperties
.Where(p => p.Name == ExternalTypeNameAttributeName)
.Select(p => (string)p.Value)
.FirstOrDefault())
?? (modelNamespace != null && edmType.NamespaceName != modelNamespace ?
_code.CreateFullName(_code.EscapeNamespace(edmType.NamespaceName), _code.Escape(edmType)) :
_code.Escape(edmType));
if (edmType is StructuralType)
{
return typeName;
}
if (edmType is SimpleType)
{
var clrType = UnderlyingClrType(edmType);
if (!IsEnumType(edmType))
{
typeName = _code.Escape(clrType);
}
typeName = FixNamespaces(typeName);
return clrType.IsValueType && isNullable == true ?
String.Format(CultureInfo.InvariantCulture, "Nullable<{0}>", typeName) :
typeName;
}
throw new ArgumentException("edmType");
}
public Type UnderlyingClrType(EdmType edmType)
{
ArgumentNotNull(edmType, "edmType");
var primitiveType = edmType as PrimitiveType;
if (primitiveType != null)
{
return primitiveType.ClrEquivalentType;
}
if (IsEnumType(edmType))
{
return GetEnumUnderlyingType(edmType).ClrEquivalentType;
}
return typeof(object);
}
public object GetEnumMemberValue(MetadataItem enumMember)
{
ArgumentNotNull(enumMember, "enumMember");
var valueProperty = enumMember.GetType().GetProperty("Value");
return valueProperty == null ? null : valueProperty.GetValue(enumMember, null);
}
public string GetEnumMemberName(MetadataItem enumMember)
{
ArgumentNotNull(enumMember, "enumMember");
var nameProperty = enumMember.GetType().GetProperty("Name");
return nameProperty == null ? null : (string)nameProperty.GetValue(enumMember, null);
}
public System.Collections.IEnumerable GetEnumMembers(EdmType enumType)
{
ArgumentNotNull(enumType, "enumType");
var membersProperty = enumType.GetType().GetProperty("Members");
return membersProperty != null
? (System.Collections.IEnumerable)membersProperty.GetValue(enumType, null)
: Enumerable.Empty<MetadataItem>();
}
public bool EnumIsFlags(EdmType enumType)
{
ArgumentNotNull(enumType, "enumType");
var isFlagsProperty = enumType.GetType().GetProperty("IsFlags");
return isFlagsProperty != null && (bool)isFlagsProperty.GetValue(enumType, null);
}
public bool IsEnumType(GlobalItem edmType)
{
ArgumentNotNull(edmType, "edmType");
return edmType.GetType().Name == "EnumType";
}
public PrimitiveType GetEnumUnderlyingType(EdmType enumType)
{
ArgumentNotNull(enumType, "enumType");
return (PrimitiveType)enumType.GetType().GetProperty("UnderlyingType").GetValue(enumType, null);
}
public string CreateLiteral(object value)
{
if (value == null || value.GetType() != typeof(TimeSpan))
{
return _code.CreateLiteral(value);
}
return string.Format(CultureInfo.InvariantCulture, "new TimeSpan({0})", ((TimeSpan)value).Ticks);
}
public bool VerifyCaseInsensitiveTypeUniqueness(IEnumerable<string> types, string sourceFile)
{
ArgumentNotNull(types, "types");
ArgumentNotNull(sourceFile, "sourceFile");
var hash = new HashSet<string>(StringComparer.InvariantCultureIgnoreCase);
if (types.Any(item => !hash.Add(item)))
{
_errors.Add(
new CompilerError(sourceFile, -1, -1, "6023",
String.Format(CultureInfo.CurrentCulture, CodeGenerationTools.GetResourceString("Template_CaseInsensitiveTypeConflict"))));
return false;
}
return true;
}
public IEnumerable<SimpleType> GetEnumItemsToGenerate(IEnumerable<GlobalItem> itemCollection)
{
return GetItemsToGenerate<SimpleType>(itemCollection)
.Where(e => IsEnumType(e));
}
public IEnumerable<T> GetItemsToGenerate<T>(IEnumerable<GlobalItem> itemCollection) where T: EdmType
{
return itemCollection
.OfType<T>()
.Where(i => !i.MetadataProperties.Any(p => p.Name == ExternalTypeNameAttributeName))
.OrderBy(i => i.Name);
}
public IEnumerable<string> GetAllGlobalItems(IEnumerable<GlobalItem> itemCollection)
{
return itemCollection
.Where(i => i is EntityType || i is ComplexType || i is EntityContainer || IsEnumType(i))
.Select(g => GetGlobalItemName(g));
}
public string GetGlobalItemName(GlobalItem item)
{
if (item is EdmType)
{
return ((EdmType)item).Name;
}
else
{
return ((EntityContainer)item).Name;
}
}
public IEnumerable<EdmProperty> GetSimpleProperties(EntityType type)
{
return type.Properties.Where(p => p.TypeUsage.EdmType is SimpleType && p.DeclaringType == type);
}
public IEnumerable<EdmProperty> GetSimpleProperties(ComplexType type)
{
return type.Properties.Where(p => p.TypeUsage.EdmType is SimpleType && p.DeclaringType == type);
}
public IEnumerable<EdmProperty> GetComplexProperties(EntityType type)
{
return type.Properties.Where(p => p.TypeUsage.EdmType is ComplexType && p.DeclaringType == type);
}
public IEnumerable<EdmProperty> GetComplexProperties(ComplexType type)
{
return type.Properties.Where(p => p.TypeUsage.EdmType is ComplexType && p.DeclaringType == type);
}
public IEnumerable<EdmProperty> GetPropertiesWithDefaultValues(EntityType type)
{
return type.Properties.Where(p => p.TypeUsage.EdmType is SimpleType && p.DeclaringType == type && p.DefaultValue != null);
}
public IEnumerable<EdmProperty> GetPropertiesWithDefaultValues(ComplexType type)
{
return type.Properties.Where(p => p.TypeUsage.EdmType is SimpleType && p.DeclaringType == type && p.DefaultValue != null);
}
public IEnumerable<NavigationProperty> GetNavigationProperties(EntityType type)
{
return type.NavigationProperties.Where(np => np.DeclaringType == type);
}
public IEnumerable<NavigationProperty> GetCollectionNavigationProperties(EntityType type)
{
return type.NavigationProperties.Where(np => np.DeclaringType == type && np.ToEndMember.RelationshipMultiplicity == RelationshipMultiplicity.Many);
}
public FunctionParameter GetReturnParameter(EdmFunction edmFunction)
{
ArgumentNotNull(edmFunction, "edmFunction");
var returnParamsProperty = edmFunction.GetType().GetProperty("ReturnParameters");
return returnParamsProperty == null
? edmFunction.ReturnParameter
: ((IEnumerable<FunctionParameter>)returnParamsProperty.GetValue(edmFunction, null)).FirstOrDefault();
}
public bool IsComposable(EdmFunction edmFunction)
{
ArgumentNotNull(edmFunction, "edmFunction");
var isComposableProperty = edmFunction.GetType().GetProperty("IsComposableAttribute");
return isComposableProperty != null && (bool)isComposableProperty.GetValue(edmFunction, null);
}
public IEnumerable<FunctionImportParameter> GetParameters(EdmFunction edmFunction)
{
return FunctionImportParameter.Create(edmFunction.Parameters, _code, _ef);
}
public TypeUsage GetReturnType(EdmFunction edmFunction)
{
var returnParam = GetReturnParameter(edmFunction);
return returnParam == null ? null : _ef.GetElementType(returnParam.TypeUsage);
}
public bool GenerateMergeOptionFunction(EdmFunction edmFunction, bool includeMergeOption)
{
var returnType = GetReturnType(edmFunction);
return !includeMergeOption && returnType != null && returnType.EdmType.BuiltInTypeKind == BuiltInTypeKind.EntityType;
}
}
public static void ArgumentNotNull<T>(T arg, string name) where T : class
{
if (arg == null)
{
throw new ArgumentNullException(name);
}
}
#>

10
SubProject/WebServer/Model1.Designer.cs generated Normal file
View File

@@ -0,0 +1,10 @@
// 모델 'D:\Source\##### 완료아이템\(014) GroupWare\Source\SubProject\WebServer\Model1.edmx'에 대해 T4 코드 생성이 사용됩니다.
// 레거시 코드 생성을 사용하려면 '코드 생성 전략' 디자이너 속성의 값을
// 'Legacy ObjectContext'로 변경하십시오. 이 속성은 모델이 디자이너에서 열릴 때
// 속성 창에서 사용할 수 있습니다.
// 컨텍스트 및 엔터티 클래스가 생성되지 않은 경우 빈 모델을 만들었기 때문일 수도 있지만
// 사용할 Entity Framework 버전을 선택하지 않았기 때문일 수도 있습니다. 모델에 맞는 컨텍스트 클래스 및
// 엔터티 클래스를 생성하려면 디자이너에서 모델을 열고 디자이너 화면에서 마우스 오른쪽 단추를 클릭한
// 다음 '데이터베이스에서 모델 업데이트...', '모델에서 데이터베이스 생성...' 또는 '코드 생성 항목 추가...'를
// 선택하십시오.

View File

@@ -0,0 +1,9 @@
//------------------------------------------------------------------------------
// <auto-generated>
// 이 코드는 템플릿에서 생성되었습니다.
//
// 이 파일을 수동으로 변경하면 응용 프로그램에서 예기치 않은 동작이 발생할 수 있습니다.
// 이 파일을 수동으로 변경하면 코드가 다시 생성될 때 변경 내용을 덮어씁니다.
// </auto-generated>
//------------------------------------------------------------------------------

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,33 @@
<?xml version="1.0" encoding="utf-8"?>
<edmx:Edmx Version="3.0" xmlns:edmx="http://schemas.microsoft.com/ado/2009/11/edmx">
<!-- EF Designer content (DO NOT EDIT MANUALLY BELOW HERE) -->
<edmx:Designer xmlns="http://schemas.microsoft.com/ado/2009/11/edmx">
<!-- Diagram content (shape and connector positions) -->
<edmx:Diagrams>
<Diagram DiagramId="95ad1f3feb7e487d80dea2be441eb26b" Name="Diagram1">
<EntityTypeShape EntityType="EEModel.EETGW_GroupUser" Width="1.5" PointX="0.75" PointY="0.75" IsExpanded="true" />
<EntityTypeShape EntityType="EEModel.Items" Width="1.5" PointX="2.75" PointY="0.75" IsExpanded="true" />
<EntityTypeShape EntityType="EEModel.JobReport" Width="1.5" PointX="4.75" PointY="0.75" IsExpanded="true" />
<EntityTypeShape EntityType="EEModel.MailData" Width="1.5" PointX="6.75" PointY="0.75" IsExpanded="true" />
<EntityTypeShape EntityType="EEModel.MailForm" Width="1.5" PointX="0.75" PointY="6.75" IsExpanded="true" />
<EntityTypeShape EntityType="EEModel.Projects" Width="1.5" PointX="2.75" PointY="6.75" IsExpanded="true" />
<EntityTypeShape EntityType="EEModel.ProjectsPart" Width="1.5" PointX="4.75" PointY="6.75" IsExpanded="true" />
<EntityTypeShape EntityType="EEModel.Purchase" Width="1.5" PointX="6.75" PointY="6.75" IsExpanded="true" />
<EntityTypeShape EntityType="EEModel.UserGroup" Width="1.5" PointX="8.75" PointY="0.75" IsExpanded="true" />
<EntityTypeShape EntityType="EEModel.Users" Width="1.5" PointX="8.75" PointY="3.75" IsExpanded="true" />
<EntityTypeShape EntityType="EEModel.vGroupUser" Width="1.5" PointX="8.75" PointY="9.75" IsExpanded="true" />
<EntityTypeShape EntityType="EEModel.vJobReportForUser" Width="1.5" PointX="10.75" PointY="0.75" IsExpanded="true" />
<EntityTypeShape EntityType="EEModel.vPurchase" Width="1.5" PointX="10.75" PointY="6.75" IsExpanded="true" />
<EntityTypeShape EntityType="EEModel.Auth" Width="1.5" PointX="13.375" PointY="0.75" />
<EntityTypeShape EntityType="EEModel.Common" Width="1.5" PointX="13.375" PointY="4.75" />
<EntityTypeShape EntityType="EEModel.Customs" Width="1.5" PointX="13.375" PointY="8.75" />
<EntityTypeShape EntityType="EEModel.EETGW_Project_Layout" Width="1.5" PointX="13.375" PointY="14.75" />
<EntityTypeShape EntityType="EEModel.HolidayLIst" Width="1.5" PointX="15.375" PointY="0.75" />
<EntityTypeShape EntityType="EEModel.Holyday" Width="1.5" PointX="15.375" PointY="3.75" />
<EntityTypeShape EntityType="EEModel.LineCode" Width="1.5" PointX="5.375" PointY="15.75" />
<EntityTypeShape EntityType="EEModel.EETGW_ProjectsSchedule" Width="1.5" PointX="7.375" PointY="15.75" />
<EntityTypeShape EntityType="EEModel.vFindSID" Width="1.5" PointX="15.375" PointY="9.75" />
</Diagram>
</edmx:Diagrams>
</edmx:Designer>
</edmx:Edmx>

View File

@@ -0,0 +1,733 @@
<#@ template language="C#" debug="false" hostspecific="true"#>
<#@ include file="EF6.Utility.CS.ttinclude"#><#@
output extension=".cs"#><#
const string inputFile = @"Model1.edmx";
var textTransform = DynamicTextTransformation.Create(this);
var code = new CodeGenerationTools(this);
var ef = new MetadataTools(this);
var typeMapper = new TypeMapper(code, ef, textTransform.Errors);
var fileManager = EntityFrameworkTemplateFileManager.Create(this);
var itemCollection = new EdmMetadataLoader(textTransform.Host, textTransform.Errors).CreateEdmItemCollection(inputFile);
var codeStringGenerator = new CodeStringGenerator(code, typeMapper, ef);
if (!typeMapper.VerifyCaseInsensitiveTypeUniqueness(typeMapper.GetAllGlobalItems(itemCollection), inputFile))
{
return string.Empty;
}
WriteHeader(codeStringGenerator, fileManager);
foreach (var entity in typeMapper.GetItemsToGenerate<EntityType>(itemCollection))
{
fileManager.StartNewFile(entity.Name + ".cs");
BeginNamespace(code);
#>
<#=codeStringGenerator.UsingDirectives(inHeader: false)#>
<#=codeStringGenerator.EntityClassOpening(entity)#>
{
<#
var propertiesWithDefaultValues = typeMapper.GetPropertiesWithDefaultValues(entity);
var collectionNavigationProperties = typeMapper.GetCollectionNavigationProperties(entity);
var complexProperties = typeMapper.GetComplexProperties(entity);
if (propertiesWithDefaultValues.Any() || collectionNavigationProperties.Any() || complexProperties.Any())
{
#>
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors")]
public <#=code.Escape(entity)#>()
{
<#
foreach (var edmProperty in propertiesWithDefaultValues)
{
#>
this.<#=code.Escape(edmProperty)#> = <#=typeMapper.CreateLiteral(edmProperty.DefaultValue)#>;
<#
}
foreach (var navigationProperty in collectionNavigationProperties)
{
#>
this.<#=code.Escape(navigationProperty)#> = new HashSet<<#=typeMapper.GetTypeName(navigationProperty.ToEndMember.GetEntityType())#>>();
<#
}
foreach (var complexProperty in complexProperties)
{
#>
this.<#=code.Escape(complexProperty)#> = new <#=typeMapper.GetTypeName(complexProperty.TypeUsage)#>();
<#
}
#>
}
<#
}
var simpleProperties = typeMapper.GetSimpleProperties(entity);
if (simpleProperties.Any())
{
foreach (var edmProperty in simpleProperties)
{
#>
<#=codeStringGenerator.Property(edmProperty)#>
<#
}
}
if (complexProperties.Any())
{
#>
<#
foreach(var complexProperty in complexProperties)
{
#>
<#=codeStringGenerator.Property(complexProperty)#>
<#
}
}
var navigationProperties = typeMapper.GetNavigationProperties(entity);
if (navigationProperties.Any())
{
#>
<#
foreach (var navigationProperty in navigationProperties)
{
if (navigationProperty.ToEndMember.RelationshipMultiplicity == RelationshipMultiplicity.Many)
{
#>
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly")]
<#
}
#>
<#=codeStringGenerator.NavigationProperty(navigationProperty)#>
<#
}
}
#>
}
<#
EndNamespace(code);
}
foreach (var complex in typeMapper.GetItemsToGenerate<ComplexType>(itemCollection))
{
fileManager.StartNewFile(complex.Name + ".cs");
BeginNamespace(code);
#>
<#=codeStringGenerator.UsingDirectives(inHeader: false, includeCollections: false)#>
<#=Accessibility.ForType(complex)#> partial class <#=code.Escape(complex)#>
{
<#
var complexProperties = typeMapper.GetComplexProperties(complex);
var propertiesWithDefaultValues = typeMapper.GetPropertiesWithDefaultValues(complex);
if (propertiesWithDefaultValues.Any() || complexProperties.Any())
{
#>
public <#=code.Escape(complex)#>()
{
<#
foreach (var edmProperty in propertiesWithDefaultValues)
{
#>
this.<#=code.Escape(edmProperty)#> = <#=typeMapper.CreateLiteral(edmProperty.DefaultValue)#>;
<#
}
foreach (var complexProperty in complexProperties)
{
#>
this.<#=code.Escape(complexProperty)#> = new <#=typeMapper.GetTypeName(complexProperty.TypeUsage)#>();
<#
}
#>
}
<#
}
var simpleProperties = typeMapper.GetSimpleProperties(complex);
if (simpleProperties.Any())
{
foreach(var edmProperty in simpleProperties)
{
#>
<#=codeStringGenerator.Property(edmProperty)#>
<#
}
}
if (complexProperties.Any())
{
#>
<#
foreach(var edmProperty in complexProperties)
{
#>
<#=codeStringGenerator.Property(edmProperty)#>
<#
}
}
#>
}
<#
EndNamespace(code);
}
foreach (var enumType in typeMapper.GetEnumItemsToGenerate(itemCollection))
{
fileManager.StartNewFile(enumType.Name + ".cs");
BeginNamespace(code);
#>
<#=codeStringGenerator.UsingDirectives(inHeader: false, includeCollections: false)#>
<#
if (typeMapper.EnumIsFlags(enumType))
{
#>
[Flags]
<#
}
#>
<#=codeStringGenerator.EnumOpening(enumType)#>
{
<#
var foundOne = false;
foreach (MetadataItem member in typeMapper.GetEnumMembers(enumType))
{
foundOne = true;
#>
<#=code.Escape(typeMapper.GetEnumMemberName(member))#> = <#=typeMapper.GetEnumMemberValue(member)#>,
<#
}
if (foundOne)
{
this.GenerationEnvironment.Remove(this.GenerationEnvironment.Length - 3, 1);
}
#>
}
<#
EndNamespace(code);
}
fileManager.Process();
#>
<#+
public void WriteHeader(CodeStringGenerator codeStringGenerator, EntityFrameworkTemplateFileManager fileManager)
{
fileManager.StartHeader();
#>
//------------------------------------------------------------------------------
// <auto-generated>
// <#=CodeGenerationTools.GetResourceString("Template_GeneratedCodeCommentLine1")#>
//
// <#=CodeGenerationTools.GetResourceString("Template_GeneratedCodeCommentLine2")#>
// <#=CodeGenerationTools.GetResourceString("Template_GeneratedCodeCommentLine3")#>
// </auto-generated>
//------------------------------------------------------------------------------
<#=codeStringGenerator.UsingDirectives(inHeader: true)#>
<#+
fileManager.EndBlock();
}
public void BeginNamespace(CodeGenerationTools code)
{
var codeNamespace = code.VsNamespaceSuggestion();
if (!String.IsNullOrEmpty(codeNamespace))
{
#>
namespace <#=code.EscapeNamespace(codeNamespace)#>
{
<#+
PushIndent(" ");
}
}
public void EndNamespace(CodeGenerationTools code)
{
if (!String.IsNullOrEmpty(code.VsNamespaceSuggestion()))
{
PopIndent();
#>
}
<#+
}
}
public const string TemplateId = "CSharp_DbContext_Types_EF6";
public class CodeStringGenerator
{
private readonly CodeGenerationTools _code;
private readonly TypeMapper _typeMapper;
private readonly MetadataTools _ef;
public CodeStringGenerator(CodeGenerationTools code, TypeMapper typeMapper, MetadataTools ef)
{
ArgumentNotNull(code, "code");
ArgumentNotNull(typeMapper, "typeMapper");
ArgumentNotNull(ef, "ef");
_code = code;
_typeMapper = typeMapper;
_ef = ef;
}
public string Property(EdmProperty edmProperty)
{
return string.Format(
CultureInfo.InvariantCulture,
"{0} {1} {2} {{ {3}get; {4}set; }}",
Accessibility.ForProperty(edmProperty),
_typeMapper.GetTypeName(edmProperty.TypeUsage),
_code.Escape(edmProperty),
_code.SpaceAfter(Accessibility.ForGetter(edmProperty)),
_code.SpaceAfter(Accessibility.ForSetter(edmProperty)));
}
public string NavigationProperty(NavigationProperty navProp)
{
var endType = _typeMapper.GetTypeName(navProp.ToEndMember.GetEntityType());
return string.Format(
CultureInfo.InvariantCulture,
"{0} {1} {2} {{ {3}get; {4}set; }}",
AccessibilityAndVirtual(Accessibility.ForNavigationProperty(navProp)),
navProp.ToEndMember.RelationshipMultiplicity == RelationshipMultiplicity.Many ? ("ICollection<" + endType + ">") : endType,
_code.Escape(navProp),
_code.SpaceAfter(Accessibility.ForGetter(navProp)),
_code.SpaceAfter(Accessibility.ForSetter(navProp)));
}
public string AccessibilityAndVirtual(string accessibility)
{
return accessibility + (accessibility != "private" ? " virtual" : "");
}
public string EntityClassOpening(EntityType entity)
{
return string.Format(
CultureInfo.InvariantCulture,
"{0} {1}partial class {2}{3}",
Accessibility.ForType(entity),
_code.SpaceAfter(_code.AbstractOption(entity)),
_code.Escape(entity),
_code.StringBefore(" : ", _typeMapper.GetTypeName(entity.BaseType)));
}
public string EnumOpening(SimpleType enumType)
{
return string.Format(
CultureInfo.InvariantCulture,
"{0} enum {1} : {2}",
Accessibility.ForType(enumType),
_code.Escape(enumType),
_code.Escape(_typeMapper.UnderlyingClrType(enumType)));
}
public void WriteFunctionParameters(EdmFunction edmFunction, Action<string, string, string, string> writeParameter)
{
var parameters = FunctionImportParameter.Create(edmFunction.Parameters, _code, _ef);
foreach (var parameter in parameters.Where(p => p.NeedsLocalVariable))
{
var isNotNull = parameter.IsNullableOfT ? parameter.FunctionParameterName + ".HasValue" : parameter.FunctionParameterName + " != null";
var notNullInit = "new ObjectParameter(\"" + parameter.EsqlParameterName + "\", " + parameter.FunctionParameterName + ")";
var nullInit = "new ObjectParameter(\"" + parameter.EsqlParameterName + "\", typeof(" + TypeMapper.FixNamespaces(parameter.RawClrTypeName) + "))";
writeParameter(parameter.LocalVariableName, isNotNull, notNullInit, nullInit);
}
}
public string ComposableFunctionMethod(EdmFunction edmFunction, string modelNamespace)
{
var parameters = _typeMapper.GetParameters(edmFunction);
return string.Format(
CultureInfo.InvariantCulture,
"{0} IQueryable<{1}> {2}({3})",
AccessibilityAndVirtual(Accessibility.ForMethod(edmFunction)),
_typeMapper.GetTypeName(_typeMapper.GetReturnType(edmFunction), modelNamespace),
_code.Escape(edmFunction),
string.Join(", ", parameters.Select(p => TypeMapper.FixNamespaces(p.FunctionParameterType) + " " + p.FunctionParameterName).ToArray()));
}
public string ComposableCreateQuery(EdmFunction edmFunction, string modelNamespace)
{
var parameters = _typeMapper.GetParameters(edmFunction);
return string.Format(
CultureInfo.InvariantCulture,
"return ((IObjectContextAdapter)this).ObjectContext.CreateQuery<{0}>(\"[{1}].[{2}]({3})\"{4});",
_typeMapper.GetTypeName(_typeMapper.GetReturnType(edmFunction), modelNamespace),
edmFunction.NamespaceName,
edmFunction.Name,
string.Join(", ", parameters.Select(p => "@" + p.EsqlParameterName).ToArray()),
_code.StringBefore(", ", string.Join(", ", parameters.Select(p => p.ExecuteParameterName).ToArray())));
}
public string FunctionMethod(EdmFunction edmFunction, string modelNamespace, bool includeMergeOption)
{
var parameters = _typeMapper.GetParameters(edmFunction);
var returnType = _typeMapper.GetReturnType(edmFunction);
var paramList = String.Join(", ", parameters.Select(p => TypeMapper.FixNamespaces(p.FunctionParameterType) + " " + p.FunctionParameterName).ToArray());
if (includeMergeOption)
{
paramList = _code.StringAfter(paramList, ", ") + "MergeOption mergeOption";
}
return string.Format(
CultureInfo.InvariantCulture,
"{0} {1} {2}({3})",
AccessibilityAndVirtual(Accessibility.ForMethod(edmFunction)),
returnType == null ? "int" : "ObjectResult<" + _typeMapper.GetTypeName(returnType, modelNamespace) + ">",
_code.Escape(edmFunction),
paramList);
}
public string ExecuteFunction(EdmFunction edmFunction, string modelNamespace, bool includeMergeOption)
{
var parameters = _typeMapper.GetParameters(edmFunction);
var returnType = _typeMapper.GetReturnType(edmFunction);
var callParams = _code.StringBefore(", ", String.Join(", ", parameters.Select(p => p.ExecuteParameterName).ToArray()));
if (includeMergeOption)
{
callParams = ", mergeOption" + callParams;
}
return string.Format(
CultureInfo.InvariantCulture,
"return ((IObjectContextAdapter)this).ObjectContext.ExecuteFunction{0}(\"{1}\"{2});",
returnType == null ? "" : "<" + _typeMapper.GetTypeName(returnType, modelNamespace) + ">",
edmFunction.Name,
callParams);
}
public string DbSet(EntitySet entitySet)
{
return string.Format(
CultureInfo.InvariantCulture,
"{0} virtual DbSet<{1}> {2} {{ get; set; }}",
Accessibility.ForReadOnlyProperty(entitySet),
_typeMapper.GetTypeName(entitySet.ElementType),
_code.Escape(entitySet));
}
public string UsingDirectives(bool inHeader, bool includeCollections = true)
{
return inHeader == string.IsNullOrEmpty(_code.VsNamespaceSuggestion())
? string.Format(
CultureInfo.InvariantCulture,
"{0}using System;{1}" +
"{2}",
inHeader ? Environment.NewLine : "",
includeCollections ? (Environment.NewLine + "using System.Collections.Generic;") : "",
inHeader ? "" : Environment.NewLine)
: "";
}
}
public class TypeMapper
{
private const string ExternalTypeNameAttributeName = @"http://schemas.microsoft.com/ado/2006/04/codegeneration:ExternalTypeName";
private readonly System.Collections.IList _errors;
private readonly CodeGenerationTools _code;
private readonly MetadataTools _ef;
public TypeMapper(CodeGenerationTools code, MetadataTools ef, System.Collections.IList errors)
{
ArgumentNotNull(code, "code");
ArgumentNotNull(ef, "ef");
ArgumentNotNull(errors, "errors");
_code = code;
_ef = ef;
_errors = errors;
}
public static string FixNamespaces(string typeName)
{
return typeName.Replace("System.Data.Spatial.", "System.Data.Entity.Spatial.");
}
public string GetTypeName(TypeUsage typeUsage)
{
return typeUsage == null ? null : GetTypeName(typeUsage.EdmType, _ef.IsNullable(typeUsage), modelNamespace: null);
}
public string GetTypeName(EdmType edmType)
{
return GetTypeName(edmType, isNullable: null, modelNamespace: null);
}
public string GetTypeName(TypeUsage typeUsage, string modelNamespace)
{
return typeUsage == null ? null : GetTypeName(typeUsage.EdmType, _ef.IsNullable(typeUsage), modelNamespace);
}
public string GetTypeName(EdmType edmType, string modelNamespace)
{
return GetTypeName(edmType, isNullable: null, modelNamespace: modelNamespace);
}
public string GetTypeName(EdmType edmType, bool? isNullable, string modelNamespace)
{
if (edmType == null)
{
return null;
}
var collectionType = edmType as CollectionType;
if (collectionType != null)
{
return String.Format(CultureInfo.InvariantCulture, "ICollection<{0}>", GetTypeName(collectionType.TypeUsage, modelNamespace));
}
var typeName = _code.Escape(edmType.MetadataProperties
.Where(p => p.Name == ExternalTypeNameAttributeName)
.Select(p => (string)p.Value)
.FirstOrDefault())
?? (modelNamespace != null && edmType.NamespaceName != modelNamespace ?
_code.CreateFullName(_code.EscapeNamespace(edmType.NamespaceName), _code.Escape(edmType)) :
_code.Escape(edmType));
if (edmType is StructuralType)
{
return typeName;
}
if (edmType is SimpleType)
{
var clrType = UnderlyingClrType(edmType);
if (!IsEnumType(edmType))
{
typeName = _code.Escape(clrType);
}
typeName = FixNamespaces(typeName);
return clrType.IsValueType && isNullable == true ?
String.Format(CultureInfo.InvariantCulture, "Nullable<{0}>", typeName) :
typeName;
}
throw new ArgumentException("edmType");
}
public Type UnderlyingClrType(EdmType edmType)
{
ArgumentNotNull(edmType, "edmType");
var primitiveType = edmType as PrimitiveType;
if (primitiveType != null)
{
return primitiveType.ClrEquivalentType;
}
if (IsEnumType(edmType))
{
return GetEnumUnderlyingType(edmType).ClrEquivalentType;
}
return typeof(object);
}
public object GetEnumMemberValue(MetadataItem enumMember)
{
ArgumentNotNull(enumMember, "enumMember");
var valueProperty = enumMember.GetType().GetProperty("Value");
return valueProperty == null ? null : valueProperty.GetValue(enumMember, null);
}
public string GetEnumMemberName(MetadataItem enumMember)
{
ArgumentNotNull(enumMember, "enumMember");
var nameProperty = enumMember.GetType().GetProperty("Name");
return nameProperty == null ? null : (string)nameProperty.GetValue(enumMember, null);
}
public System.Collections.IEnumerable GetEnumMembers(EdmType enumType)
{
ArgumentNotNull(enumType, "enumType");
var membersProperty = enumType.GetType().GetProperty("Members");
return membersProperty != null
? (System.Collections.IEnumerable)membersProperty.GetValue(enumType, null)
: Enumerable.Empty<MetadataItem>();
}
public bool EnumIsFlags(EdmType enumType)
{
ArgumentNotNull(enumType, "enumType");
var isFlagsProperty = enumType.GetType().GetProperty("IsFlags");
return isFlagsProperty != null && (bool)isFlagsProperty.GetValue(enumType, null);
}
public bool IsEnumType(GlobalItem edmType)
{
ArgumentNotNull(edmType, "edmType");
return edmType.GetType().Name == "EnumType";
}
public PrimitiveType GetEnumUnderlyingType(EdmType enumType)
{
ArgumentNotNull(enumType, "enumType");
return (PrimitiveType)enumType.GetType().GetProperty("UnderlyingType").GetValue(enumType, null);
}
public string CreateLiteral(object value)
{
if (value == null || value.GetType() != typeof(TimeSpan))
{
return _code.CreateLiteral(value);
}
return string.Format(CultureInfo.InvariantCulture, "new TimeSpan({0})", ((TimeSpan)value).Ticks);
}
public bool VerifyCaseInsensitiveTypeUniqueness(IEnumerable<string> types, string sourceFile)
{
ArgumentNotNull(types, "types");
ArgumentNotNull(sourceFile, "sourceFile");
var hash = new HashSet<string>(StringComparer.InvariantCultureIgnoreCase);
if (types.Any(item => !hash.Add(item)))
{
_errors.Add(
new CompilerError(sourceFile, -1, -1, "6023",
String.Format(CultureInfo.CurrentCulture, CodeGenerationTools.GetResourceString("Template_CaseInsensitiveTypeConflict"))));
return false;
}
return true;
}
public IEnumerable<SimpleType> GetEnumItemsToGenerate(IEnumerable<GlobalItem> itemCollection)
{
return GetItemsToGenerate<SimpleType>(itemCollection)
.Where(e => IsEnumType(e));
}
public IEnumerable<T> GetItemsToGenerate<T>(IEnumerable<GlobalItem> itemCollection) where T: EdmType
{
return itemCollection
.OfType<T>()
.Where(i => !i.MetadataProperties.Any(p => p.Name == ExternalTypeNameAttributeName))
.OrderBy(i => i.Name);
}
public IEnumerable<string> GetAllGlobalItems(IEnumerable<GlobalItem> itemCollection)
{
return itemCollection
.Where(i => i is EntityType || i is ComplexType || i is EntityContainer || IsEnumType(i))
.Select(g => GetGlobalItemName(g));
}
public string GetGlobalItemName(GlobalItem item)
{
if (item is EdmType)
{
return ((EdmType)item).Name;
}
else
{
return ((EntityContainer)item).Name;
}
}
public IEnumerable<EdmProperty> GetSimpleProperties(EntityType type)
{
return type.Properties.Where(p => p.TypeUsage.EdmType is SimpleType && p.DeclaringType == type);
}
public IEnumerable<EdmProperty> GetSimpleProperties(ComplexType type)
{
return type.Properties.Where(p => p.TypeUsage.EdmType is SimpleType && p.DeclaringType == type);
}
public IEnumerable<EdmProperty> GetComplexProperties(EntityType type)
{
return type.Properties.Where(p => p.TypeUsage.EdmType is ComplexType && p.DeclaringType == type);
}
public IEnumerable<EdmProperty> GetComplexProperties(ComplexType type)
{
return type.Properties.Where(p => p.TypeUsage.EdmType is ComplexType && p.DeclaringType == type);
}
public IEnumerable<EdmProperty> GetPropertiesWithDefaultValues(EntityType type)
{
return type.Properties.Where(p => p.TypeUsage.EdmType is SimpleType && p.DeclaringType == type && p.DefaultValue != null);
}
public IEnumerable<EdmProperty> GetPropertiesWithDefaultValues(ComplexType type)
{
return type.Properties.Where(p => p.TypeUsage.EdmType is SimpleType && p.DeclaringType == type && p.DefaultValue != null);
}
public IEnumerable<NavigationProperty> GetNavigationProperties(EntityType type)
{
return type.NavigationProperties.Where(np => np.DeclaringType == type);
}
public IEnumerable<NavigationProperty> GetCollectionNavigationProperties(EntityType type)
{
return type.NavigationProperties.Where(np => np.DeclaringType == type && np.ToEndMember.RelationshipMultiplicity == RelationshipMultiplicity.Many);
}
public FunctionParameter GetReturnParameter(EdmFunction edmFunction)
{
ArgumentNotNull(edmFunction, "edmFunction");
var returnParamsProperty = edmFunction.GetType().GetProperty("ReturnParameters");
return returnParamsProperty == null
? edmFunction.ReturnParameter
: ((IEnumerable<FunctionParameter>)returnParamsProperty.GetValue(edmFunction, null)).FirstOrDefault();
}
public bool IsComposable(EdmFunction edmFunction)
{
ArgumentNotNull(edmFunction, "edmFunction");
var isComposableProperty = edmFunction.GetType().GetProperty("IsComposableAttribute");
return isComposableProperty != null && (bool)isComposableProperty.GetValue(edmFunction, null);
}
public IEnumerable<FunctionImportParameter> GetParameters(EdmFunction edmFunction)
{
return FunctionImportParameter.Create(edmFunction.Parameters, _code, _ef);
}
public TypeUsage GetReturnType(EdmFunction edmFunction)
{
var returnParam = GetReturnParameter(edmFunction);
return returnParam == null ? null : _ef.GetElementType(returnParam.TypeUsage);
}
public bool GenerateMergeOptionFunction(EdmFunction edmFunction, bool includeMergeOption)
{
var returnType = GetReturnType(edmFunction);
return !includeMergeOption && returnType != null && returnType.EdmType.BuiltInTypeKind == BuiltInTypeKind.EntityType;
}
}
public static void ArgumentNotNull<T>(T arg, string name) where T : class
{
if (arg == null)
{
throw new ArgumentNullException(name);
}
}
#>

View File

@@ -0,0 +1,79 @@
using Microsoft.Owin;
using Owin;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Threading.Tasks;
using System.Web.Http;
using System.Web.Http.Routing;
namespace WebServer.OWIN
{
public class Startup
{
public void Configuration(IAppBuilder appBuilder)
{
// Configure Web API for Self-Host
HttpConfiguration config = new HttpConfiguration();
config.MapHttpAttributeRoutes();
//메인파일 처리 방법
IHttpRoute defaultRoute =
config.Routes.CreateRoute("{controller}/{action}/{id}",
new { controller = "home", action = "index", id = RouteParameter.Optional },
null);
//기타파일들 처리 방법
IHttpRoute cssRoute =
config.Routes.CreateRoute("{path}/{subdir}/{resource}.{ext}",
new { controller = "resource", action = "file", id = RouteParameter.Optional },
null);
IHttpRoute mifRoute =
config.Routes.CreateRoute("{path}/{resource}.{ext}",
new { controller = "resource", action = "file", id = RouteParameter.Optional },
null);
IHttpRoute icoRoute =
config.Routes.CreateRoute("{resource}.{ext}",
new { controller = "resource", action = "file", id = RouteParameter.Optional },
null);
config.Routes.Add("mifRoute", mifRoute);
config.Routes.Add("icoRoute", icoRoute);
config.Routes.Add("cssRoute", cssRoute);
config.Routes.Add("defaultRoute", defaultRoute);
appBuilder.UseStaticFiles();
appBuilder.UseCors(Microsoft.Owin.Cors.CorsOptions.AllowAll);
appBuilder.UseWebApi(config);
//appBuilder.UseFileServer(new FileServerOptions
//{
// RequestPath = new PathString(string.Empty),
// FileSystem = new PhysicalFileSystem("./MySubFolder"),
// EnableDirectoryBrowsing = true,
//});
//appBuilder.UseStageMarker(PipelineStage.MapHandler);
//config.Routes.MapHttpRoute(
// name: "ignore",
// routeTemplate: @".*\.(css|js|gif|jpg)(/.*)?",
// defaults: new
// {
// controller = "file",
// action = "readtext",
// id = RouteParameter.Optional
// }
// );
}
}
}

View File

@@ -0,0 +1,101 @@
using Microsoft.Owin;
using Owin;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Threading.Tasks;
using System.Web.Http;
namespace WebServer.OWIN
{
public class StartupSSE
{
public void Configuration(IAppBuilder app)
{
var api = new Api();
app.Run(context => api.Invoke(context));
}
public class Subscriber
{
private StreamWriter _writer;
private TaskCompletionSource<bool> _tcs;
public Subscriber(Stream body, TaskCompletionSource<bool> tcs)
{
this._writer = new StreamWriter(body);
this._tcs = tcs;
}
public async void WriteAsync(string message)
{
try
{
_writer.Write(message);
_writer.Flush();
}
catch (Exception e)
{
if (e.HResult == -2146232800) // non-existent connection
_tcs.SetResult(true);
else
_tcs.SetException(e);
}
}
}
public class Api
{
System.Timers.Timer _timer = new System.Timers.Timer(500);
List<Subscriber> _subscribers = new List<Subscriber>();
public Api()
{
_timer.Elapsed += _timer_Elapsed;
}
void _timer_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
{
UpdateSubscribers();
}
public void UpdateSubscribers()
{
Console.WriteLine("updating {0} subscribers", _subscribers.Count);
var subscribersCopy = _subscribers.ToList<Subscriber>();
var msg = String.Format("Hello async at {0}\n", DateTime.Now);
subscribersCopy.ForEach(w => w.WriteAsync(msg));
_timer.Start();
}
public Task Invoke(IOwinContext context)
{
SetEventHeaders(context);
System.IO.Stream responseStream = context.Environment["owin.ResponseBody"] as Stream;
var tcs = new TaskCompletionSource<bool>();
var s = CreateSubscriber(responseStream, tcs);
tcs.Task.ContinueWith(_ => _subscribers.Remove(s));
Console.WriteLine("Add subscriber. Now have {0}", _subscribers.Count);
s.WriteAsync("Registered\n");
_timer.Start();
return tcs.Task;
}
private Subscriber CreateSubscriber(System.IO.Stream responseStream, TaskCompletionSource<bool> tcs)
{
var s = new Subscriber(responseStream, tcs);
_subscribers.Add(s);
return s;
}
private static void SetEventHeaders(IOwinContext context)
{
context.Response.ContentType = "text/eventstream";
context.Response.Headers["Transfer-Encoding"] = "chunked";
context.Response.Headers["cache-control"] = "no-cache";
}
}
}
}

View File

@@ -0,0 +1,27 @@
using Microsoft.Owin.Hosting;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace WebServer
{
class Program
{
static void Main(string[] args)
{
// Start OWIN host
try
{
WebApp.Start<OWIN.Startup>(url: "http://127.0.0.1:9000");
Console.WriteLine("start webapp");
Console.ReadLine();
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
}
}
}

View File

@@ -0,0 +1,70 @@
//------------------------------------------------------------------------------
// <auto-generated>
// 이 코드는 템플릿에서 생성되었습니다.
//
// 이 파일을 수동으로 변경하면 응용 프로그램에서 예기치 않은 동작이 발생할 수 있습니다.
// 이 파일을 수동으로 변경하면 코드가 다시 생성될 때 변경 내용을 덮어씁니다.
// </auto-generated>
//------------------------------------------------------------------------------
namespace WebServer
{
using System;
using System.Collections.Generic;
public partial class Projects
{
public int idx { get; set; }
public Nullable<int> pidx { get; set; }
public string gcode { get; set; }
public Nullable<bool> isdel { get; set; }
public string category { get; set; }
public string status { get; set; }
public string asset { get; set; }
public Nullable<int> level { get; set; }
public Nullable<int> rev { get; set; }
public string process { get; set; }
public string part { get; set; }
public string pdate { get; set; }
public string name { get; set; }
public string userManager { get; set; }
public string usermain { get; set; }
public string usersub { get; set; }
public string userhw2 { get; set; }
public string reqstaff { get; set; }
public Nullable<double> costo { get; set; }
public Nullable<double> costn { get; set; }
public Nullable<int> cnt { get; set; }
public string remark_req { get; set; }
public string remark_ans { get; set; }
public string sdate { get; set; }
public string ddate { get; set; }
public string edate { get; set; }
public string odate { get; set; }
public Nullable<int> progress { get; set; }
public string memo { get; set; }
public string wuid { get; set; }
public System.DateTime wdate { get; set; }
public string orderno { get; set; }
public string crdue { get; set; }
public Nullable<bool> import { get; set; }
public string path { get; set; }
public string userprocess { get; set; }
public string CMP_Background { get; set; }
public string CMP_Description { get; set; }
public string CMP_Before { get; set; }
public string CMP_After { get; set; }
public Nullable<bool> bCost { get; set; }
public Nullable<bool> bFanOut { get; set; }
public string div { get; set; }
public string EB_Site { get; set; }
public string EB_Line { get; set; }
public string EB_Team { get; set; }
public string EB_Model { get; set; }
public string EB_OutSourceName { get; set; }
public Nullable<double> EB_RepairTime { get; set; }
public Nullable<double> EB_ConstNew { get; set; }
public string EB_BoardName { get; set; }
public Nullable<bool> bAlert { get; set; }
}
}

View File

@@ -0,0 +1,50 @@
//------------------------------------------------------------------------------
// <auto-generated>
// 이 코드는 템플릿에서 생성되었습니다.
//
// 이 파일을 수동으로 변경하면 응용 프로그램에서 예기치 않은 동작이 발생할 수 있습니다.
// 이 파일을 수동으로 변경하면 코드가 다시 생성될 때 변경 내용을 덮어씁니다.
// </auto-generated>
//------------------------------------------------------------------------------
namespace WebServer
{
using System;
using System.Collections.Generic;
public partial class ProjectsPart
{
public int idx { get; set; }
public Nullable<int> no { get; set; }
public Nullable<int> Project { get; set; }
public string ItemGroup { get; set; }
public string ItemModel { get; set; }
public string ItemUnit { get; set; }
public string ItemName { get; set; }
public string ItemSid { get; set; }
public string ItemSupply { get; set; }
public Nullable<int> ItemSupplyidx { get; set; }
public string ItemManu { get; set; }
public Nullable<int> Item { get; set; }
public string option1 { get; set; }
public string option2 { get; set; }
public string option3 { get; set; }
public Nullable<int> qty { get; set; }
public Nullable<int> qtyn { get; set; }
public Nullable<decimal> price { get; set; }
public Nullable<decimal> amt { get; set; }
public Nullable<decimal> amtn { get; set; }
public Nullable<int> jago { get; set; }
public string remark { get; set; }
public string memo { get; set; }
public string wuid { get; set; }
public System.DateTime wdate { get; set; }
public Nullable<bool> import { get; set; }
public string qtyjago { get; set; }
public Nullable<int> qtybuy { get; set; }
public Nullable<int> qtyin { get; set; }
public Nullable<bool> bbuy { get; set; }
public Nullable<bool> bconfirm { get; set; }
public Nullable<bool> bCancel { get; set; }
}
}

View File

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

View File

@@ -0,0 +1,52 @@
//------------------------------------------------------------------------------
// <auto-generated>
// 이 코드는 템플릿에서 생성되었습니다.
//
// 이 파일을 수동으로 변경하면 응용 프로그램에서 예기치 않은 동작이 발생할 수 있습니다.
// 이 파일을 수동으로 변경하면 코드가 다시 생성될 때 변경 내용을 덮어씁니다.
// </auto-generated>
//------------------------------------------------------------------------------
namespace WebServer
{
using System;
using System.Collections.Generic;
public partial class Purchase
{
public int idx { get; set; }
public string gcode { get; set; }
public string pdate { get; set; }
public string state { get; set; }
public string process { get; set; }
public string receive { get; set; }
public string sc { get; set; }
public string request { get; set; }
public string sid { get; set; }
public string pumname { get; set; }
public Nullable<int> pumidx { get; set; }
public string pumscale { get; set; }
public string pumunit { get; set; }
public Nullable<int> pumqty { get; set; }
public Nullable<decimal> pumprice { get; set; }
public Nullable<decimal> pumamt { get; set; }
public string supply { get; set; }
public Nullable<int> supplyidx { get; set; }
public string project { get; set; }
public Nullable<int> projectidx { get; set; }
public string asset { get; set; }
public string manuproc { get; set; }
public string edate { get; set; }
public string indate { get; set; }
public string po { get; set; }
public string dept { get; set; }
public string bigo { get; set; }
public Nullable<bool> import { get; set; }
public Nullable<bool> isdel { get; set; }
public string orderno { get; set; }
public string place { get; set; }
public string wuid { get; set; }
public System.DateTime wdate { get; set; }
public Nullable<int> inqty { get; set; }
}
}

View File

@@ -0,0 +1,23 @@
//------------------------------------------------------------------------------
// <auto-generated>
// 이 코드는 템플릿에서 생성되었습니다.
//
// 이 파일을 수동으로 변경하면 응용 프로그램에서 예기치 않은 동작이 발생할 수 있습니다.
// 이 파일을 수동으로 변경하면 코드가 다시 생성될 때 변경 내용을 덮어씁니다.
// </auto-generated>
//------------------------------------------------------------------------------
namespace WebServer
{
using System;
using System.Collections.Generic;
public partial class UserGroup
{
public string dept { get; set; }
public string gcode { get; set; }
public string path_kj { get; set; }
public Nullable<bool> advpurchase { get; set; }
public Nullable<int> permission { get; set; }
}
}

View File

@@ -0,0 +1,39 @@
//------------------------------------------------------------------------------
// <auto-generated>
// 이 코드는 템플릿에서 생성되었습니다.
//
// 이 파일을 수동으로 변경하면 응용 프로그램에서 예기치 않은 동작이 발생할 수 있습니다.
// 이 파일을 수동으로 변경하면 코드가 다시 생성될 때 변경 내용을 덮어씁니다.
// </auto-generated>
//------------------------------------------------------------------------------
namespace WebServer
{
using System;
using System.Collections.Generic;
public partial class Users
{
public string id { get; set; }
public string gcode { get; set; }
public string password { get; set; }
public string nameE { get; set; }
public string name { get; set; }
public string dept { get; set; }
public string grade { get; set; }
public string email { get; set; }
public Nullable<short> level { get; set; }
public string indate { get; set; }
public string outdate { get; set; }
public string tel { get; set; }
public string hp { get; set; }
public string place { get; set; }
public string ads_employNo { get; set; }
public string ads_title { get; set; }
public string ads_created { get; set; }
public string memo { get; set; }
public string wuid { get; set; }
public System.DateTime wdate { get; set; }
public string processs { get; set; }
}
}

View File

@@ -0,0 +1,258 @@
<?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>{CAFE5CD0-C055-4C77-9253-8D5EE9558D43}</ProjectGuid>
<OutputType>Exe</OutputType>
<RootNamespace>WebServer</RootNamespace>
<AssemblyName>WebServer</AssemblyName>
<TargetFrameworkVersion>v4.7</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
<Deterministic>true</Deterministic>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<PlatformTarget>AnyCPU</PlatformTarget>
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<PlatformTarget>AnyCPU</PlatformTarget>
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<ItemGroup>
<Reference Include="EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL">
<HintPath>..\..\packages\EntityFramework.6.2.0\lib\net45\EntityFramework.dll</HintPath>
</Reference>
<Reference Include="EntityFramework.SqlServer, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL">
<HintPath>..\..\packages\EntityFramework.6.2.0\lib\net45\EntityFramework.SqlServer.dll</HintPath>
</Reference>
<Reference Include="HtmlAgilityPack, Version=1.4.9.0, Culture=neutral, PublicKeyToken=bd319b19eaf3b43a, processorArchitecture=MSIL">
<HintPath>..\..\packages\HtmlAgilityPack.CssSelectors.1.0.2\lib\net45\HtmlAgilityPack.dll</HintPath>
</Reference>
<Reference Include="HtmlAgilityPack.CssSelectors, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\..\packages\HtmlAgilityPack.CssSelectors.1.0.2\lib\net45\HtmlAgilityPack.CssSelectors.dll</HintPath>
</Reference>
<Reference Include="Microsoft.AspNet.SignalR.Core, Version=1.2.2.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<HintPath>..\..\packages\Microsoft.AspNet.SignalR.Core.1.2.2\lib\net40\Microsoft.AspNet.SignalR.Core.dll</HintPath>
</Reference>
<Reference Include="Microsoft.AspNet.SignalR.Owin, Version=1.2.2.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<HintPath>..\..\packages\Microsoft.AspNet.SignalR.Owin.1.2.2\lib\net45\Microsoft.AspNet.SignalR.Owin.dll</HintPath>
</Reference>
<Reference Include="Microsoft.Owin, Version=4.2.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<HintPath>..\..\packages\Microsoft.Owin.4.2.0\lib\net45\Microsoft.Owin.dll</HintPath>
</Reference>
<Reference Include="Microsoft.Owin.Cors, Version=4.2.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<HintPath>..\..\packages\Microsoft.Owin.Cors.4.2.0\lib\net45\Microsoft.Owin.Cors.dll</HintPath>
</Reference>
<Reference Include="Microsoft.Owin.Diagnostics, Version=4.2.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<HintPath>..\..\packages\Microsoft.Owin.Diagnostics.4.2.0\lib\net45\Microsoft.Owin.Diagnostics.dll</HintPath>
</Reference>
<Reference Include="Microsoft.Owin.FileSystems, Version=4.2.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<HintPath>..\..\packages\Microsoft.Owin.FileSystems.4.2.0\lib\net45\Microsoft.Owin.FileSystems.dll</HintPath>
</Reference>
<Reference Include="Microsoft.Owin.Host.HttpListener, Version=4.2.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<HintPath>..\..\packages\Microsoft.Owin.Host.HttpListener.4.2.0\lib\net45\Microsoft.Owin.Host.HttpListener.dll</HintPath>
</Reference>
<Reference Include="Microsoft.Owin.Hosting, Version=4.2.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<HintPath>..\..\packages\Microsoft.Owin.Hosting.4.2.0\lib\net45\Microsoft.Owin.Hosting.dll</HintPath>
</Reference>
<Reference Include="Microsoft.Owin.StaticFiles, Version=4.2.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<HintPath>..\..\packages\Microsoft.Owin.StaticFiles.4.2.0\lib\net45\Microsoft.Owin.StaticFiles.dll</HintPath>
</Reference>
<Reference Include="Newtonsoft.Json, Version=6.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
<HintPath>..\..\packages\Newtonsoft.Json.6.0.4\lib\net45\Newtonsoft.Json.dll</HintPath>
</Reference>
<Reference Include="Owin, Version=1.0.0.0, Culture=neutral, PublicKeyToken=f0ebd12fd5e55cc5, processorArchitecture=MSIL">
<HintPath>..\..\packages\Owin.1.0\lib\net40\Owin.dll</HintPath>
</Reference>
<Reference Include="System" />
<Reference Include="System.ComponentModel.Composition" />
<Reference Include="System.ComponentModel.DataAnnotations" />
<Reference Include="System.Core" />
<Reference Include="System.IO, Version=4.1.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\..\packages\System.IO.4.3.0\lib\net462\System.IO.dll</HintPath>
</Reference>
<Reference Include="System.Net.Http, Version=4.1.1.3, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\..\packages\System.Net.Http.4.3.4\lib\net46\System.Net.Http.dll</HintPath>
</Reference>
<Reference Include="System.Net.Http.Formatting, Version=5.2.7.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<HintPath>..\..\packages\Microsoft.AspNet.WebApi.Client.5.2.7\lib\net45\System.Net.Http.Formatting.dll</HintPath>
</Reference>
<Reference Include="System.Runtime, Version=4.1.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\..\packages\System.Runtime.4.3.0\lib\net462\System.Runtime.dll</HintPath>
</Reference>
<Reference Include="System.Runtime.Serialization" />
<Reference Include="System.Security" />
<Reference Include="System.Security.Cryptography.Algorithms, Version=4.2.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\..\packages\System.Security.Cryptography.Algorithms.4.3.0\lib\net463\System.Security.Cryptography.Algorithms.dll</HintPath>
</Reference>
<Reference Include="System.Security.Cryptography.Encoding, Version=4.0.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\..\packages\System.Security.Cryptography.Encoding.4.3.0\lib\net46\System.Security.Cryptography.Encoding.dll</HintPath>
</Reference>
<Reference Include="System.Security.Cryptography.Primitives, Version=4.0.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\..\packages\System.Security.Cryptography.Primitives.4.3.0\lib\net46\System.Security.Cryptography.Primitives.dll</HintPath>
</Reference>
<Reference Include="System.Security.Cryptography.X509Certificates, Version=4.1.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\..\packages\System.Security.Cryptography.X509Certificates.4.3.0\lib\net461\System.Security.Cryptography.X509Certificates.dll</HintPath>
</Reference>
<Reference Include="System.Web.Cors, Version=5.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<HintPath>..\..\packages\Microsoft.AspNet.Cors.5.0.0\lib\net45\System.Web.Cors.dll</HintPath>
</Reference>
<Reference Include="System.Web.Http, Version=5.2.7.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<HintPath>..\..\packages\Microsoft.AspNet.WebApi.Core.5.2.7\lib\net45\System.Web.Http.dll</HintPath>
</Reference>
<Reference Include="System.Web.Http.Owin, Version=5.2.7.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<HintPath>..\..\packages\Microsoft.AspNet.WebApi.Owin.5.2.7\lib\net45\System.Web.Http.Owin.dll</HintPath>
</Reference>
<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="Auth.cs">
<DependentUpon>Model1.tt</DependentUpon>
</Compile>
<Compile Include="BaseController.cs" />
<Compile Include="Common.cs">
<DependentUpon>Model1.tt</DependentUpon>
</Compile>
<Compile Include="Controller\CustomerController.cs" />
<Compile Include="Controller\HomeController.cs" />
<Compile Include="Controller\ItemController.cs" />
<Compile Include="Controller\JobreportController.cs" />
<Compile Include="Controller\ProjectController.cs" />
<Compile Include="Controller\PurchaseController.cs" />
<Compile Include="Controller\ResourceController.cs" />
<Compile Include="Controller\ResultController.cs" />
<Compile Include="Controller\SettingController.cs" />
<Compile Include="Customs.cs">
<DependentUpon>Model1.tt</DependentUpon>
</Compile>
<Compile Include="EETGW_GroupUser.cs">
<DependentUpon>Model1.tt</DependentUpon>
</Compile>
<Compile Include="EETGW_ProjectsSchedule.cs">
<DependentUpon>Model1.tt</DependentUpon>
</Compile>
<Compile Include="EETGW_Project_Layout.cs">
<DependentUpon>Model1.tt</DependentUpon>
</Compile>
<Compile Include="HolidayLIst.cs">
<DependentUpon>Model1.tt</DependentUpon>
</Compile>
<Compile Include="Holyday.cs">
<DependentUpon>Model1.tt</DependentUpon>
</Compile>
<Compile Include="Items.cs">
<DependentUpon>Model1.tt</DependentUpon>
</Compile>
<Compile Include="JobReport.cs">
<DependentUpon>Model1.tt</DependentUpon>
</Compile>
<Compile Include="LineCode.cs">
<DependentUpon>Model1.tt</DependentUpon>
</Compile>
<Compile Include="MailData.cs">
<DependentUpon>Model1.tt</DependentUpon>
</Compile>
<Compile Include="MailForm.cs">
<DependentUpon>Model1.tt</DependentUpon>
</Compile>
<Compile Include="MethodExtentions.cs" />
<Compile Include="Model1.Context.cs">
<AutoGen>True</AutoGen>
<DesignTime>True</DesignTime>
<DependentUpon>Model1.Context.tt</DependentUpon>
</Compile>
<Compile Include="Model1.cs">
<AutoGen>True</AutoGen>
<DesignTime>True</DesignTime>
<DependentUpon>Model1.tt</DependentUpon>
</Compile>
<Compile Include="Model1.Designer.cs">
<AutoGen>True</AutoGen>
<DesignTime>True</DesignTime>
<DependentUpon>Model1.edmx</DependentUpon>
</Compile>
<Compile Include="Model\PageModel.cs" />
<Compile Include="OWIN\Startup.cs" />
<Compile Include="OWIN\StartupSSE.cs" />
<Compile Include="Program.cs" />
<Compile Include="Projects.cs">
<DependentUpon>Model1.tt</DependentUpon>
</Compile>
<Compile Include="ProjectsPart.cs">
<DependentUpon>Model1.tt</DependentUpon>
</Compile>
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="Purchase.cs">
<DependentUpon>Model1.tt</DependentUpon>
</Compile>
<Compile Include="UserGroup.cs">
<DependentUpon>Model1.tt</DependentUpon>
</Compile>
<Compile Include="Users.cs">
<DependentUpon>Model1.tt</DependentUpon>
</Compile>
<Compile Include="vFindSID.cs">
<DependentUpon>Model1.tt</DependentUpon>
</Compile>
<Compile Include="vGroupUser.cs">
<DependentUpon>Model1.tt</DependentUpon>
</Compile>
<Compile Include="vJobReportForUser.cs">
<DependentUpon>Model1.tt</DependentUpon>
</Compile>
<Compile Include="vPurchase.cs">
<DependentUpon>Model1.tt</DependentUpon>
</Compile>
</ItemGroup>
<ItemGroup>
<None Include="App.config" />
<EntityDeploy Include="Model1.edmx">
<Generator>EntityModelCodeGenerator</Generator>
<LastGenOutput>Model1.Designer.cs</LastGenOutput>
</EntityDeploy>
<None Include="Model1.edmx.diagram">
<DependentUpon>Model1.edmx</DependentUpon>
</None>
<None Include="packages.config" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\FCOMMON\FCOMMON.csproj">
<Project>{304bd018-194b-47da-b4e0-f16df7b606da}</Project>
<Name>FCOMMON</Name>
</ProjectReference>
</ItemGroup>
<ItemGroup>
<Content Include="Model1.Context.tt">
<Generator>TextTemplatingFileGenerator</Generator>
<LastGenOutput>Model1.Context.cs</LastGenOutput>
<DependentUpon>Model1.edmx</DependentUpon>
</Content>
<Content Include="Model1.tt">
<Generator>TextTemplatingFileGenerator</Generator>
<DependentUpon>Model1.edmx</DependentUpon>
<LastGenOutput>Model1.cs</LastGenOutput>
</Content>
</ItemGroup>
<ItemGroup>
<Service Include="{508349B6-6B84-4DF5-91F0-309BEEBAD82D}" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
</Project>

View File

@@ -0,0 +1,32 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="EntityFramework" version="6.2.0" targetFramework="net47" />
<package id="EntityFramework.ko" version="6.2.0" targetFramework="net47" />
<package id="HtmlAgilityPack" version="1.4.9" targetFramework="net47" />
<package id="HtmlAgilityPack.CssSelectors" version="1.0.2" targetFramework="net47" />
<package id="Microsoft.AspNet.Cors" version="5.0.0" targetFramework="net47" />
<package id="Microsoft.AspNet.SignalR.Core" version="1.2.2" targetFramework="net47" />
<package id="Microsoft.AspNet.SignalR.Owin" version="1.2.2" targetFramework="net47" />
<package id="Microsoft.AspNet.WebApi.Client" version="5.2.7" targetFramework="net47" />
<package id="Microsoft.AspNet.WebApi.Core" version="5.2.7" targetFramework="net47" />
<package id="Microsoft.AspNet.WebApi.Owin" version="5.2.7" targetFramework="net47" />
<package id="Microsoft.AspNet.WebApi.OwinSelfHost" version="5.2.7" targetFramework="net47" />
<package id="Microsoft.Owin" version="4.2.0" targetFramework="net47" />
<package id="Microsoft.Owin.Cors" version="4.2.0" targetFramework="net47" />
<package id="Microsoft.Owin.Diagnostics" version="4.2.0" targetFramework="net47" />
<package id="Microsoft.Owin.FileSystems" version="4.2.0" targetFramework="net47" />
<package id="Microsoft.Owin.Host.HttpListener" version="4.2.0" targetFramework="net47" />
<package id="Microsoft.Owin.Hosting" version="4.2.0" targetFramework="net47" />
<package id="Microsoft.Owin.SelfHost" version="4.2.0" targetFramework="net47" />
<package id="Microsoft.Owin.StaticFiles" version="4.2.0" targetFramework="net47" />
<package id="Microsoft.Owin.StaticFiles.ko" version="4.2.0" targetFramework="net47" />
<package id="Newtonsoft.Json" version="6.0.4" targetFramework="net47" />
<package id="Owin" version="1.0" targetFramework="net47" />
<package id="System.IO" version="4.3.0" targetFramework="net47" />
<package id="System.Net.Http" version="4.3.4" targetFramework="net47" />
<package id="System.Runtime" version="4.3.0" targetFramework="net47" />
<package id="System.Security.Cryptography.Algorithms" version="4.3.0" targetFramework="net47" />
<package id="System.Security.Cryptography.Encoding" version="4.3.0" targetFramework="net47" />
<package id="System.Security.Cryptography.Primitives" version="4.3.0" targetFramework="net47" />
<package id="System.Security.Cryptography.X509Certificates" version="4.3.0" targetFramework="net47" />
</packages>

View File

@@ -0,0 +1,30 @@
//------------------------------------------------------------------------------
// <auto-generated>
// 이 코드는 템플릿에서 생성되었습니다.
//
// 이 파일을 수동으로 변경하면 응용 프로그램에서 예기치 않은 동작이 발생할 수 있습니다.
// 이 파일을 수동으로 변경하면 코드가 다시 생성될 때 변경 내용을 덮어씁니다.
// </auto-generated>
//------------------------------------------------------------------------------
namespace WebServer
{
using System;
using System.Collections.Generic;
public partial class vFindSID
{
public int idx { get; set; }
public string Location { get; set; }
public string date { get; set; }
public string gcode { get; set; }
public string name { get; set; }
public string sid { get; set; }
public string model { get; set; }
public string manu { get; set; }
public string unit { get; set; }
public string supply { get; set; }
public Nullable<decimal> price { get; set; }
public string remark { get; set; }
}
}

View File

@@ -0,0 +1,39 @@
//------------------------------------------------------------------------------
// <auto-generated>
// 이 코드는 템플릿에서 생성되었습니다.
//
// 이 파일을 수동으로 변경하면 응용 프로그램에서 예기치 않은 동작이 발생할 수 있습니다.
// 이 파일을 수동으로 변경하면 코드가 다시 생성될 때 변경 내용을 덮어씁니다.
// </auto-generated>
//------------------------------------------------------------------------------
namespace WebServer
{
using System;
using System.Collections.Generic;
public partial class vGroupUser
{
public string gcode { get; set; }
public string dept { get; set; }
public Nullable<short> level { get; set; }
public string name { get; set; }
public string nameE { get; set; }
public string grade { get; set; }
public string email { get; set; }
public string tel { get; set; }
public string indate { get; set; }
public string outdate { get; set; }
public string hp { get; set; }
public string place { get; set; }
public string ads_employNo { get; set; }
public string ads_title { get; set; }
public string ads_created { get; set; }
public string memo { get; set; }
public string processs { get; set; }
public string id { get; set; }
public string state { get; set; }
public Nullable<bool> useJobReport { get; set; }
public Nullable<bool> useUserState { get; set; }
}
}

View File

@@ -0,0 +1,35 @@
//------------------------------------------------------------------------------
// <auto-generated>
// 이 코드는 템플릿에서 생성되었습니다.
//
// 이 파일을 수동으로 변경하면 응용 프로그램에서 예기치 않은 동작이 발생할 수 있습니다.
// 이 파일을 수동으로 변경하면 코드가 다시 생성될 때 변경 내용을 덮어씁니다.
// </auto-generated>
//------------------------------------------------------------------------------
namespace WebServer
{
using System;
using System.Collections.Generic;
public partial class vJobReportForUser
{
public int idx { get; set; }
public string pdate { get; set; }
public string gcode { get; set; }
public string id { get; set; }
public string name { get; set; }
public string process { get; set; }
public string type { get; set; }
public string svalue { get; set; }
public Nullable<double> hrs { get; set; }
public Nullable<double> ot { get; set; }
public string requestpart { get; set; }
public string package { get; set; }
public string userProcess { get; set; }
public string status { get; set; }
public string projectName { get; set; }
public string description { get; set; }
public string ww { get; set; }
}
}

View File

@@ -0,0 +1,53 @@
//------------------------------------------------------------------------------
// <auto-generated>
// 이 코드는 템플릿에서 생성되었습니다.
//
// 이 파일을 수동으로 변경하면 응용 프로그램에서 예기치 않은 동작이 발생할 수 있습니다.
// 이 파일을 수동으로 변경하면 코드가 다시 생성될 때 변경 내용을 덮어씁니다.
// </auto-generated>
//------------------------------------------------------------------------------
namespace WebServer
{
using System;
using System.Collections.Generic;
public partial class vPurchase
{
public string name { get; set; }
public int idx { get; set; }
public string gcode { get; set; }
public string pdate { get; set; }
public string state { get; set; }
public string process { get; set; }
public string receive { get; set; }
public string sc { get; set; }
public string request { get; set; }
public string sid { get; set; }
public string pumname { get; set; }
public Nullable<int> pumidx { get; set; }
public string pumscale { get; set; }
public string pumunit { get; set; }
public Nullable<int> pumqty { get; set; }
public Nullable<decimal> pumprice { get; set; }
public Nullable<decimal> pumamt { get; set; }
public string supply { get; set; }
public Nullable<int> supplyidx { get; set; }
public string project { get; set; }
public Nullable<int> projectidx { get; set; }
public string asset { get; set; }
public string manuproc { get; set; }
public string edate { get; set; }
public string indate { get; set; }
public string po { get; set; }
public string dept { get; set; }
public string bigo { get; set; }
public Nullable<bool> import { get; set; }
public Nullable<bool> isdel { get; set; }
public string orderno { get; set; }
public string place { get; set; }
public string wuid { get; set; }
public System.DateTime wdate { get; set; }
public Nullable<int> inqty { get; set; }
}
}