Journeys_WantHome/Models/kolWithTag.cs

79 lines
2.0 KiB
C#

using Dapper;
using Dapper.Contrib.Extensions;
using NPOI.SS.Formula.Functions;
using System.Data.SqlClient;
using static DbTableClass;
public class kolWithTag : kol
{
DbConn dbConn = new DbConn();
SqlConnection conn = new SqlConnection(GlobalClass.appsettings("ConnectionStrings:SQLConnectionString"));
public List<kolTagDetail> tags = new List<kolTagDetail>();
private kol _kol;
public kolWithTag()
{
_kol = new kol();
}
public kolWithTag(kol kolObj)
{
Type kolType = kolObj.GetType();
foreach (var prop in kolType.GetProperties())
{
string propName = prop.Name;
var valueProperty = kolType.GetProperty(propName);
object propValue = valueProperty.GetValue(kolObj, null);
this.GetType().GetProperty(propName).SetValue(this, propValue);
}
_kol = kolObj;
loadList();
}
public kolWithTag(string kol_uid)
{
_kol = conn.QueryFirstOrDefault<kol>("select * from kol where kol_uid = @kol_uid", new { kol_uid = kol_uid });
if (_kol != null)
{
Type dataType = _kol.GetType();
foreach (var prop in dataType.GetProperties())
{
string propName = prop.Name;
var valueProperty = dataType.GetProperty(propName);
object propValue = valueProperty.GetValue(_kol, null);
this.GetType().GetProperty(propName).SetValue(this, propValue);
}
loadList();
}
}
private void loadList()
{
if (this.kol_uid != "")
{
tags.Clear();
List<kolTag> kolTags = conn.Query<kolTag>("select A.* from kolTag A, tags B where A.tag_uid = B.tag_uid and A.kol_uid = @kol_uid", new { kol_uid = kol_uid }).ToList();
foreach (kolTag objItem in kolTags)
{
kolTagDetail objDetail = new kolTagDetail(objItem);
tags.Add(objDetail);
}
}
}
}