This commit is contained in:
杨红卫 2021-07-06 15:16:17 +08:00
parent 957d206c2b
commit 7f785d6423
13 changed files with 240 additions and 102 deletions

View File

@ -758,6 +758,20 @@ namespace BLL
return quarterly; return quarterly;
} }
public static DateTime ConvertToDateTime(Int32 d)
{
DateTime startTime = new DateTime(1970, 1, 1, 0, 0, 0);
startTime = startTime.AddSeconds(d).ToLocalTime();
return startTime;
}
public static Int32 ConvertDateTimeToInt32(DateTime dtime)
{
string dt = string.Format("{0:yyyy-MM-dd HH:mm:ss}", dtime);
DateTime dt1 = new DateTime(1970, 1, 1, 8, 0, 0);
DateTime dt2 = Convert.ToDateTime(dt);
return Convert.ToInt32((dt2 - dt1).TotalSeconds);
}
#endregion #endregion
/// <summary> /// <summary>

View File

@ -696,3 +696,28 @@ IP地址:::1
出错时间:06/18/2021 16:57:48 出错时间:06/18/2021 16:57:48
错误信息开始=====>
错误类型:HttpParseException
错误信息:基类包括字段“txtIdentityCard”但其类型(FineUIPro.TextBox)与控件(FineUIPro.TextArea)的类型不兼容。
错误堆栈:
在 System.Web.Compilation.BaseTemplateCodeDomTreeGenerator.BuildFieldDeclaration(ControlBuilder builder)
在 System.Web.Compilation.BaseTemplateCodeDomTreeGenerator.BuildSourceDataTreeFromBuilder(ControlBuilder builder, Boolean fInTemplate, Boolean topLevelControlInTemplate, PropertyEntry pse)
在 System.Web.Compilation.BaseTemplateCodeDomTreeGenerator.BuildSourceDataTreeFromBuilder(ControlBuilder builder, Boolean fInTemplate, Boolean topLevelControlInTemplate, PropertyEntry pse)
在 System.Web.Compilation.BaseTemplateCodeDomTreeGenerator.BuildSourceDataTreeFromBuilder(ControlBuilder builder, Boolean fInTemplate, Boolean topLevelControlInTemplate, PropertyEntry pse)
在 System.Web.Compilation.BaseTemplateCodeDomTreeGenerator.BuildSourceDataTreeFromBuilder(ControlBuilder builder, Boolean fInTemplate, Boolean topLevelControlInTemplate, PropertyEntry pse)
在 System.Web.Compilation.BaseTemplateCodeDomTreeGenerator.BuildSourceDataTreeFromBuilder(ControlBuilder builder, Boolean fInTemplate, Boolean topLevelControlInTemplate, PropertyEntry pse)
在 System.Web.Compilation.BaseTemplateCodeDomTreeGenerator.BuildSourceDataTreeFromBuilder(ControlBuilder builder, Boolean fInTemplate, Boolean topLevelControlInTemplate, PropertyEntry pse)
在 System.Web.Compilation.BaseTemplateCodeDomTreeGenerator.BuildSourceDataTreeFromBuilder(ControlBuilder builder, Boolean fInTemplate, Boolean topLevelControlInTemplate, PropertyEntry pse)
在 System.Web.Compilation.TemplateControlCodeDomTreeGenerator.BuildMiscClassMembers()
在 System.Web.Compilation.PageCodeDomTreeGenerator.BuildMiscClassMembers()
在 System.Web.Compilation.BaseCodeDomTreeGenerator.BuildSourceDataTree()
在 System.Web.Compilation.BaseCodeDomTreeGenerator.GetCodeDomTree(CodeDomProvider codeDomProvider, StringResourceBuilder stringResourceBuilder, VirtualPath virtualPath)
在 System.Web.Compilation.BaseTemplateBuildProvider.GenerateCode(AssemblyBuilder assemblyBuilder)
在 System.Web.Compilation.AssemblyBuilder.AddBuildProvider(BuildProvider buildProvider)
出错时间:07/06/2021 14:24:26
出错文件:http://localhost:8118/ZHGL/RealName/SynchroSet.aspx
IP地址:::1
出错时间:07/06/2021 14:24:26

View File

@ -96,6 +96,7 @@ namespace FineUIPro.Web.HSSE.SitePerson
rootNode.ToolTip = "当前项目人员总数0"; rootNode.ToolTip = "当前项目人员总数0";
} }
rootNode.Expanded = true; rootNode.Expanded = true;
rootNode.EnableClickEvent = true;
this.tvProjectAndUnit.Nodes.Add(rootNode); this.tvProjectAndUnit.Nodes.Add(rootNode);
GetUnitLists(rootNode.Nodes, this.ProjectId, personLists); GetUnitLists(rootNode.Nodes, this.ProjectId, personLists);
} }
@ -168,102 +169,99 @@ namespace FineUIPro.Web.HSSE.SitePerson
private void BindGrid() private void BindGrid()
{ {
using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString)) using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
{ {
string unitId = string.Empty;
if (this.tvProjectAndUnit != null && !string.IsNullOrEmpty(this.tvProjectAndUnit.SelectedNodeID)) if (this.tvProjectAndUnit != null && !string.IsNullOrEmpty(this.tvProjectAndUnit.SelectedNodeID))
{ {
string id = this.tvProjectAndUnit.SelectedNodeID; var str = this.tvProjectAndUnit.SelectedNodeID.Split('|');
string unitId = string.Empty;
string projectId = string.Empty;
var str = id.Split('|');
if (str.Count() > 1) if (str.Count() > 1)
{ {
unitId = str[0]; unitId = str[0];
projectId = str[1];
} }
}
string strSql = "select * from View_SitePerson_Person Where ProjectId=@ProjectId "; string strSql = "select * from View_SitePerson_Person Where ProjectId=@ProjectId ";
List<SqlParameter> listStr = new List<SqlParameter> List<SqlParameter> listStr = new List<SqlParameter>
{ {
new SqlParameter("@ProjectId", this.ProjectId) new SqlParameter("@ProjectId", this.ProjectId)
}; };
if (!string.IsNullOrEmpty(unitId) && unitId != "0") if (!string.IsNullOrEmpty(unitId) && unitId != "0")
{ {
strSql += " AND UnitId =@UnitId "; strSql += " AND UnitId =@UnitId ";
listStr.Add(new SqlParameter("@UnitId", unitId)); listStr.Add(new SqlParameter("@UnitId", unitId));
} }
else //else
{ //{
strSql += " AND UnitId IS NULL"; // strSql += " AND UnitId IS NULL";
} //}
if (!string.IsNullOrEmpty(this.txtPersonName.Text.Trim())) if (!string.IsNullOrEmpty(this.txtPersonName.Text.Trim()))
{ {
strSql += " AND PersonName LIKE @PersonName"; strSql += " AND PersonName LIKE @PersonName";
listStr.Add(new SqlParameter("@PersonName", "%" + this.txtPersonName.Text.Trim() + "%")); listStr.Add(new SqlParameter("@PersonName", "%" + this.txtPersonName.Text.Trim() + "%"));
} }
if (!string.IsNullOrEmpty(this.txtCardNo.Text.Trim())) if (!string.IsNullOrEmpty(this.txtCardNo.Text.Trim()))
{ {
strSql += " AND CardNo LIKE @CardNo"; strSql += " AND CardNo LIKE @CardNo";
listStr.Add(new SqlParameter("@CardNo", "%" + this.txtCardNo.Text.Trim() + "%")); listStr.Add(new SqlParameter("@CardNo", "%" + this.txtCardNo.Text.Trim() + "%"));
} }
if (!string.IsNullOrEmpty(this.txtIdentityCard.Text.Trim())) if (!string.IsNullOrEmpty(this.txtIdentityCard.Text.Trim()))
{ {
strSql += " AND IdentityCard LIKE @IdentityCard"; strSql += " AND IdentityCard LIKE @IdentityCard";
listStr.Add(new SqlParameter("@IdentityCard", "%" + this.txtIdentityCard.Text.Trim() + "%")); listStr.Add(new SqlParameter("@IdentityCard", "%" + this.txtIdentityCard.Text.Trim() + "%"));
} }
if (!string.IsNullOrEmpty(this.drpTreamGroup.SelectedValue) && this.drpTreamGroup.SelectedValue != BLL.Const._Null) if (!string.IsNullOrEmpty(this.drpTreamGroup.SelectedValue) && this.drpTreamGroup.SelectedValue != BLL.Const._Null)
{ {
strSql += " AND TeamGroupId = @TeamGroupId"; strSql += " AND TeamGroupId = @TeamGroupId";
listStr.Add(new SqlParameter("@TeamGroupId", this.drpTreamGroup.SelectedValue)); listStr.Add(new SqlParameter("@TeamGroupId", this.drpTreamGroup.SelectedValue));
} }
if (this.drpPost.SelectedItemArray.Count() > 1 || (this.drpPost.SelectedValue != BLL.Const._Null && this.drpPost.SelectedItemArray.Count() == 1)) if (this.drpPost.SelectedItemArray.Count() > 1 || (this.drpPost.SelectedValue != BLL.Const._Null && this.drpPost.SelectedItemArray.Count() == 1))
{
strSql += " AND (1=2 ";
int i = 0;
foreach (var item in this.drpPost.SelectedValueArray)
{ {
strSql += " AND (1=2 "; if (!string.IsNullOrEmpty(item) && item != BLL.Const._Null)
int i = 0;
foreach (var item in this.drpPost.SelectedValueArray)
{ {
if (!string.IsNullOrEmpty(item) && item != BLL.Const._Null) strSql += " OR WorkPostId = @WorkPostId" + i.ToString();
{ listStr.Add(new SqlParameter("@WorkPostId" + i.ToString(), item));
strSql += " OR WorkPostId = @WorkPostId" + i.ToString();
listStr.Add(new SqlParameter("@WorkPostId" + i.ToString(), item));
}
i++;
} }
strSql += ")"; i++;
}
if (this.ckTrain.Checked)
{
strSql += " AND TrainCount =0";
}
if (this.ckIdCardInfoNotOK.Checked)
{
strSql += " AND (IdcardType is null or IdentityCard is null or PhotoUrl is null or (select count(*) from AttachFile where ToKeyId=PersonId+'#1')=0 or (select count(*) from AttachFile where ToKeyId=PersonId+'#5')=0)";
} }
SqlParameter[] parameter = listStr.ToArray(); strSql += ")";
DataTable tb = SQLHelper.GetDataTableRunText(strSql, parameter); }
if (this.ckTrain.Checked)
{
strSql += " AND TrainCount =0";
}
if (this.ckIdCardInfoNotOK.Checked)
{
strSql += " AND (IdcardType is null or IdentityCard is null or PhotoUrl is null or (select count(*) from AttachFile where ToKeyId=PersonId+'#1')=0 or (select count(*) from AttachFile where ToKeyId=PersonId+'#5')=0)";
}
Grid1.RecordCount = tb.Rows.Count; SqlParameter[] parameter = listStr.ToArray();
var table = this.GetPagedDataTable(Grid1, tb); DataTable tb = SQLHelper.GetDataTableRunText(strSql, parameter);
Grid1.DataSource = table;
Grid1.DataBind();
for (int i = 0; i < Grid1.Rows.Count; i++) Grid1.RecordCount = tb.Rows.Count;
var table = this.GetPagedDataTable(Grid1, tb);
Grid1.DataSource = table;
Grid1.DataBind();
for (int i = 0; i < Grid1.Rows.Count; i++)
{
string personId = Grid1.Rows[i].DataKeys[0].ToString();
var isNull = from x in db.EduTrain_TrainRecordDetail
join y in db.EduTrain_TrainRecord on x.TrainingId equals y.TrainingId
where y.ProjectId == this.ProjectId && x.PersonId == personId
select x;
if (isNull.Count() == 0) ////未参加过培训的人员
{ {
string personId = Grid1.Rows[i].DataKeys[0].ToString(); Grid1.Rows[i].RowCssClass = "Red";
var isNull = from x in db.EduTrain_TrainRecordDetail
join y in db.EduTrain_TrainRecord on x.TrainingId equals y.TrainingId
where y.ProjectId == this.ProjectId && x.PersonId == personId
select x;
if (isNull.Count() == 0) ////未参加过培训的人员
{
Grid1.Rows[i].RowCssClass = "Red";
}
} }
} }
} }
@ -291,7 +289,10 @@ namespace FineUIPro.Web.HSSE.SitePerson
projectId = str[1]; projectId = str[1];
} }
BLL.TeamGroupService.InitTeamGroupProjectUnitDropDownList(this.drpTreamGroup, projectId, unitId, true); BLL.TeamGroupService.InitTeamGroupProjectUnitDropDownList(this.drpTreamGroup, projectId, unitId, true);
BindGrid();
}
else
{
BindGrid(); BindGrid();
} }
} }
@ -387,14 +388,7 @@ namespace FineUIPro.Web.HSSE.SitePerson
} }
this.PersonId = Grid1.SelectedRowID; this.PersonId = Grid1.SelectedRowID;
string id = this.tvProjectAndUnit.SelectedNodeID; PageContext.RegisterStartupScript(Window1.GetShowReference(String.Format("PersonListEdit.aspx?PersonId={0}", this.PersonId, "编辑 - ")));
string[] str = id.Split('|');
if (str.Count() > 1)
{
string unitId = id.Split('|')[0];
string projectId = id.Split('|')[1];
PageContext.RegisterStartupScript(Window1.GetShowReference(String.Format("PersonListEdit.aspx?PersonId={0}&&ProjectId={1}&&UnitId={2}", this.PersonId, projectId, unitId, "编辑 - ")));
}
} }
/// <summary> /// <summary>

View File

@ -54,7 +54,7 @@
</f:Toolbar> </f:Toolbar>
</Toolbars> </Toolbars>
<Items> <Items>
<f:TabStrip ID="TabStrip1" CssClass="f-tabstrip-theme-simple" Height="540px" ShowBorder="true" <f:TabStrip ID="TabStrip1" CssClass="f-tabstrip-theme-simple" Height="520px" ShowBorder="true"
TabPosition="Top" MarginBottom="5px" EnableTabCloseMenu="false" runat="server" TabPosition="Top" MarginBottom="5px" EnableTabCloseMenu="false" runat="server"
ActiveTabIndex="0"> ActiveTabIndex="0">
<Tabs> <Tabs>
@ -74,9 +74,9 @@
<f:TextBox ID="txtIdentityCard" runat="server" Label="证件号码" MaxLength="50" LabelAlign="Right" LabelWidth="110px" <f:TextBox ID="txtIdentityCard" runat="server" Label="证件号码" MaxLength="50" LabelAlign="Right" LabelWidth="110px"
AutoPostBack="true" OnTextChanged="TextBox_TextChanged" Required="true" ShowRedStar="true"> AutoPostBack="true" OnTextChanged="TextBox_TextChanged" Required="true" ShowRedStar="true">
</f:TextBox> </f:TextBox>
<f:DatePicker ID="txtIdcardStartDate" runat="server" Label="证件开始日期" LabelAlign="Right" LabelWidth="110px"> <f:DatePicker ID="txtIdcardStartDate" runat="server" Label="证件开始日期" LabelAlign="Right" LabelWidth="110px" Hidden="true">
</f:DatePicker> </f:DatePicker>
<f:DatePicker ID="txtIdcardEndDate" runat="server" Label="证件有效日期" LabelAlign="Right" LabelWidth="110px"> <f:DatePicker ID="txtIdcardEndDate" runat="server" Label="证件有效日期" LabelAlign="Right" LabelWidth="110px" Hidden="true">
</f:DatePicker> </f:DatePicker>
<f:TextBox ID="txtUnitName" runat="server" Label="所属单位" LabelAlign="Right" <f:TextBox ID="txtUnitName" runat="server" Label="所属单位" LabelAlign="Right"
Readonly="true" LabelWidth="110px"></f:TextBox> Readonly="true" LabelWidth="110px"></f:TextBox>
@ -119,11 +119,12 @@
<f:RadioItem Value="1" Text="男" Selected="true" /> <f:RadioItem Value="1" Text="男" Selected="true" />
<f:RadioItem Value="2" Text="女" /> <f:RadioItem Value="2" Text="女" />
</f:RadioButtonList> </f:RadioButtonList>
<f:RadioButtonList ID="rblIdcardForever" runat="server" Label="证件是否永久有效" LabelWidth="145px" LabelAlign="Right" AutoPostBack="true" OnSelectedIndexChanged="rblIdcardForever_SelectedIndexChanged"> <f:RadioButtonList ID="rblIdcardForever" runat="server" Label="证件是否永久有效" LabelWidth="145px" Hidden="true"
LabelAlign="Right" AutoPostBack="true" OnSelectedIndexChanged="rblIdcardForever_SelectedIndexChanged">
<f:RadioItem Value="Y" Text="是" /> <f:RadioItem Value="Y" Text="是" />
<f:RadioItem Value="N" Text="否" Selected="true"/> <f:RadioItem Value="N" Text="否" Selected="true"/>
</f:RadioButtonList> </f:RadioButtonList>
<f:TextBox ID="txtIdcardAddress" runat="server" Label="发证机关" MaxLength="50" LabelAlign="Right" > <f:TextBox ID="txtIdcardAddress" runat="server" Label="发证机关" MaxLength="50" LabelAlign="Right" Hidden="true">
</f:TextBox> </f:TextBox>
<f:DropDownList ID="drpPost" runat="server" Label="所属岗位" LabelAlign="Right" Required="True" ShowRedStar="True" EnableEdit="true"> <f:DropDownList ID="drpPost" runat="server" Label="所属岗位" LabelAlign="Right" Required="True" ShowRedStar="True" EnableEdit="true">
</f:DropDownList> </f:DropDownList>

View File

@ -26,8 +26,12 @@ namespace FineUIPro.Web.ZHGL.RealName
SynchroSetService.InitProjectDropDownList(this.drpProject, false); SynchroSetService.InitProjectDropDownList(this.drpProject, false);
if (!string.IsNullOrEmpty(this.CurrUser.LoginProjectId)) if (!string.IsNullOrEmpty(this.CurrUser.LoginProjectId))
{ {
this.drpProject.SelectedValue = this.CurrUser.LoginProjectId; var getproject = ProjectService.GetProjectByProjectId(this.CurrUser.LoginProjectId);
this.drpProject.Readonly = true; if (getproject != null)
{
this.drpProject.SelectedValue = getproject.ProjectCode;
this.drpProject.Readonly = true;
}
} }
// 绑定表格 // 绑定表格
this.BindGrid(); this.BindGrid();

View File

@ -41,12 +41,11 @@
</f:NumberBox> </f:NumberBox>
</Items> </Items>
</f:FormRow> </f:FormRow>
<f:FormRow > <f:FormRow ColumnWidths="90% 10%">
<Items> <Items>
<f:TextBox ID="txtIdentityCard" runat="server" Label="身份证号码" MaxLength="50" <f:TextArea ID="txtIdentityCard" runat="server" Label="身份证号码" LabelWidth="120px" >
LabelWidth="120px" > </f:TextArea>
</f:TextBox> <f:Button ID="btnPushData" Icon="Accept" runat="server" Text="提交" ToolTip="多身份证用逗号(,)隔开" OnClick="btnPushData_Click">
<f:Button ID="btnPushData" Icon="Accept" runat="server" ToolTip="连接" OnClick="btnPushData_Click">
</f:Button> </f:Button>
</Items> </Items>
</f:FormRow> </f:FormRow>

View File

@ -262,9 +262,17 @@ namespace FineUIPro.Web.ZHGL.RealName
var getRProjects = Funs.DB.RealName_Project.FirstOrDefault(x => x.ProCode == proCode); var getRProjects = Funs.DB.RealName_Project.FirstOrDefault(x => x.ProCode == proCode);
if (getRProjects != null && !string.IsNullOrEmpty(getRProjects.ProCode)) if (getRProjects != null && !string.IsNullOrEmpty(getRProjects.ProCode))
{ {
message += ("项目" + getRProjects.ProCode + "新增" + BLL.SynchroSetService.PushPersonsByIdentityCard(Const.BtnAdd, getRProjects.ProCode, this.txtIdentityCard.Text.Trim()) ?? ""); string idc = this.txtIdentityCard.Text.Trim().Replace('', ',');
message += ("|更新" + BLL.SynchroSetService.PushPersonsByIdentityCard(Const.BtnModify, getRProjects.ProCode, this.txtIdentityCard.Text.Trim()) ?? ""); var getList = Funs.GetStrListByStr(idc, ',');
ShowNotify(message, MessageBoxIcon.Information); if (getList.Count > 0)
{
foreach (var item in getList)
{
message += ("项目" + getRProjects.ProCode + "新增" + BLL.SynchroSetService.PushPersonsByIdentityCard(Const.BtnAdd, getRProjects.ProCode, item) ?? "");
message += ("|更新" + BLL.SynchroSetService.PushPersonsByIdentityCard(Const.BtnModify, getRProjects.ProCode, item) ?? "");
}
ShowNotify(message, MessageBoxIcon.Information);
}
} }
else else
{ {

View File

@ -91,7 +91,7 @@ namespace FineUIPro.Web.ZHGL.RealName {
/// 自动生成的字段。 /// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks> /// </remarks>
protected global::FineUIPro.TextBox txtIdentityCard; protected global::FineUIPro.TextArea txtIdentityCard;
/// <summary> /// <summary>
/// btnPushData 控件。 /// btnPushData 控件。

View File

@ -27,6 +27,14 @@ namespace Model
set; set;
} }
/// <summary> /// <summary>
/// 工人姓名
/// </summary>
public string personName
{
get;
set;
}
/// <summary>
/// 证件号码 /// 证件号码
/// </summary> /// </summary>
public string idCardNumber public string idCardNumber
@ -35,6 +43,14 @@ namespace Model
set; set;
} }
/// <summary> /// <summary>
/// 性别
/// </summary>
public string gender
{
get;
set;
}
/// <summary>
/// 考勤时间 /// 考勤时间
/// </summary> /// </summary>
public string attendanceTime public string attendanceTime
@ -57,6 +73,14 @@ namespace Model
{ {
get; get;
set; set;
} }
/// <summary>
/// 现场人员可见光照片
/// </summary>
public string headImage
{
get;
set;
}
} }
} }

View File

@ -0,0 +1,36 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Web.Http;
using BLL;
using WebAPI.Filter;
namespace WebAPI.Controllers
{
/// <summary>
///
/// </summary>
public class getController : ApiController
{
/// <summary>
/// 获取凭证
/// </summary>
/// <param name="projectId"></param>
/// <param name="appId"></param>
/// <param name="appSecret"></param>
/// <returns></returns>
[HttpGet]
public object token(string projectId, string appId, string appSecret)
{
return new
{
code = 0,
data = new { token = Const.sysglyId },
tokenExpires = Funs.ConvertDateTimeToInt32(DateTime.Now.AddMonths(1)),
};
}
}
}

View File

@ -93,7 +93,39 @@ namespace WebAPI.Controllers
} }
else else
{ {
responeData.message ="数据为空!"; responeData.message = "数据为空!";
}
}
catch (Exception ex)
{
responeData.code = -1;
responeData.message = ex.Message;
}
return responeData;
}
#endregion
#region
/// <summary>
/// 保存人员信息
/// </summary>
/// <param name="person">人员信息</param>
/// <returns></returns>
[HttpPost]
public Model.ResponeData person([FromBody] Model.attendanceItem person)
{
var responeData = new Model.ResponeData();
try
{
responeData.code = 0;
if (person != null )
{
responeData.message="success";
}
else
{
responeData.message = "数据为空!";
} }
} }
catch (Exception ex) catch (Exception ex)

View File

@ -58,7 +58,7 @@ namespace WebAPI.Filter
/// <summary> /// <summary>
/// ///
/// </summary> /// </summary>
public static List<string> lists = new List<string> { "User*postLoginOn" }; public static List<string> lists = new List<string> { "User*postLoginOn", "get*token" };
/// <summary> /// <summary>
/// ///

View File

@ -174,6 +174,7 @@
<Compile Include="Controllers\BaseInfoController.cs" /> <Compile Include="Controllers\BaseInfoController.cs" />
<Compile Include="Controllers\CommonController.cs" /> <Compile Include="Controllers\CommonController.cs" />
<Compile Include="Controllers\CQMS\WBSController.cs" /> <Compile Include="Controllers\CQMS\WBSController.cs" />
<Compile Include="Controllers\DoorProject\getController.cs" />
<Compile Include="Controllers\DoorProject\uploadController.cs" /> <Compile Include="Controllers\DoorProject\uploadController.cs" />
<Compile Include="Controllers\FaceController.cs" /> <Compile Include="Controllers\FaceController.cs" />
<Compile Include="Controllers\DoorServerController.cs" /> <Compile Include="Controllers\DoorServerController.cs" />