Journeys_WantHome/Models/projectDetail.cs

85 lines
2.6 KiB
C#

using Dapper;
using Dapper.Contrib.Extensions;
using NPOI.SS.Formula.Functions;
using System.Data.SqlClient;
using System.Security.Cryptography.X509Certificates;
using static DbTableClass;
public class projectDetail : project
{
DbConn dbConn = new DbConn();
SqlConnection conn = new SqlConnection(GlobalClass.appsettings("ConnectionStrings:SQLConnectionString"));
public List<kolData> kolList = new List<kolData>();
private project _project;
public projectDetail()
{
_project = new project();
}
public projectDetail(project projectObj)
{
Type projectType = projectObj.GetType();
foreach (var prop in projectType.GetProperties())
{
string propName = prop.Name;
var valueProperty = projectType.GetProperty(propName);
object propValue = valueProperty.GetValue(projectObj, null);
this.GetType().GetProperty(propName).SetValue(this, propValue);
}
_project = projectObj;
loadList();
}
public projectDetail(string project_uid)
{
_project = conn.QueryFirstOrDefault<project>("select * from project where project_uid = @project_uid", new { project_uid = project_uid });
if (_project != null)
{
Type dataType = _project.GetType();
foreach (var prop in dataType.GetProperties())
{
string propName = prop.Name;
var valueProperty = dataType.GetProperty(propName);
object propValue = valueProperty.GetValue(_project, null);
this.GetType().GetProperty(propName).SetValue(this, propValue);
}
loadList();
}
}
private void loadList() {
kolList = conn.Query<kolData>("select A.kol_uid, A.kol_name, A.kol_photo, A.kol_descript, B.kolProject_isExec, B.kolProject_noExecReason, B.kolProject_memo, B.kolProject_modifydate from kol A, kolProject B where A.kol_uid = B.kol_uid and B.project_uid = @project_uid order by B.kolProject_modifydate desc", new { project_uid = _project.project_uid }).ToList();
}
public class kolData
{
public string kol_uid { get; set; } = "";
public string kol_name { get; set; } = "";
public string kol_photo { get; set; } = "";
public string kol_descript { get; set; } = "";
public string kolProject_isExec { get; set; } = "N";
public string kolProject_noExecReason { get; set; } = "";
public string kolProject_memo { get; set; } = "";
public DateTime kolProject_modifydate { get; set; } = DateTime.Now;
}
}