184 lines
6.4 KiB
C#
184 lines
6.4 KiB
C#
using Dapper;
|
|
using Dapper.Contrib.Extensions;
|
|
using NPOI.SS.Formula.Functions;
|
|
using System.Data.SqlClient;
|
|
using static DbTableClass;
|
|
|
|
public class kolDetial : kol
|
|
{
|
|
DbConn dbConn = new DbConn();
|
|
SqlConnection conn = new SqlConnection(GlobalClass.appsettings("ConnectionStrings:SQLConnectionString"));
|
|
|
|
public List<kolCooperateTypeDetail> cooperateTypes = new List<kolCooperateTypeDetail>();
|
|
public List<kolFansTypeDetail> fansTypes = new List<kolFansTypeDetail>();
|
|
public List<kolMakeupDetail> makeups = new List<kolMakeupDetail>();
|
|
public List<kolMediaDetail> medias = new List<kolMediaDetail>();
|
|
public List<kolStyleDetail> styles = new List<kolStyleDetail>();
|
|
public string updateResult { get; set; } = "";
|
|
private kol _kol;
|
|
|
|
public kolDetial() {
|
|
_kol = new kol();
|
|
}
|
|
|
|
public kolDetial(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 kolDetial(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 != "") {
|
|
cooperateTypes.Clear();
|
|
fansTypes.Clear();
|
|
makeups.Clear();
|
|
medias.Clear();
|
|
styles.Clear();
|
|
|
|
List <kolCooperateType> kolCooperateTypes = conn.Query<kolCooperateType>("select A.* from kolCooperateType A, optionItem B where A.option_uid = B.option_uid and A.optionItem_uid = B.optionItem_uid and A.kol_uid = @kol_uid order by B.optionItem_order", new { kol_uid = this.kol_uid} ).ToList();
|
|
List<kolFansType> kolFansTypes = conn.Query<kolFansType>("select A.* from kolFansType A, optionItem B where A.option_uid = B.option_uid and A.optionItem_uid = B.optionItem_uid and A.kol_uid = @kol_uid order by B.optionItem_order", new { kol_uid = this.kol_uid }).ToList();
|
|
List<kolMakeup> kolMakeups = conn.Query<kolMakeup>("select A.* from kolMakeup A, optionItem B where A.option_uid = B.option_uid and A.optionItem_uid = B.optionItem_uid and A.kol_uid = @kol_uid order by B.optionItem_order", new { kol_uid = this.kol_uid }).ToList();
|
|
List<kolMedia> kolMedias = conn.Query<kolMedia>("select A.* from kolMedia A, optionItem B where A.option_uid = B.option_uid and A.optionItem_uid = B.optionItem_uid and A.kol_uid = @kol_uid order by B.optionItem_order", new { kol_uid = this.kol_uid }).ToList();
|
|
List<kolStyle> kolStyles = conn.Query<kolStyle>("select A.* from kolStyle A, optionItem B where A.option_uid = B.option_uid and A.optionItem_uid = B.optionItem_uid and A.kol_uid = @kol_uid order by B.optionItem_order", new { kol_uid = this.kol_uid }).ToList();
|
|
|
|
foreach (kolCooperateType objItem in kolCooperateTypes)
|
|
{
|
|
kolCooperateTypeDetail objDetail = new kolCooperateTypeDetail(objItem);
|
|
cooperateTypes.Add(objDetail);
|
|
}
|
|
|
|
foreach (kolFansType objItem in kolFansTypes) {
|
|
kolFansTypeDetail objDetail = new kolFansTypeDetail(objItem);
|
|
fansTypes.Add(objDetail);
|
|
}
|
|
|
|
foreach (kolMakeup objItem in kolMakeups)
|
|
{
|
|
kolMakeupDetail objDetail = new kolMakeupDetail(objItem);
|
|
kolMakeups.Add(objDetail);
|
|
}
|
|
|
|
foreach (kolMedia objItem in kolMedias)
|
|
{
|
|
kolMediaDetail objDetail = new kolMediaDetail(objItem);
|
|
kolMedias.Add(objDetail);
|
|
}
|
|
|
|
foreach (kolStyle objItem in kolStyles)
|
|
{
|
|
kolStyleDetail objDetail = new kolStyleDetail(objItem);
|
|
kolStyles.Add(objDetail);
|
|
}
|
|
}
|
|
}
|
|
|
|
public bool dataUpdate()
|
|
{
|
|
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(this, null);
|
|
|
|
_kol.GetType().GetProperty(propName).SetValue(_kol, propValue);
|
|
}
|
|
|
|
if (_kol.kol_uid == "") {
|
|
this._kol.kol_uid = "KOL_" + GlobalClass.CreateRandomCode(12);
|
|
this.kol_uid = this._kol.kol_uid;
|
|
try
|
|
{
|
|
conn.Insert(this._kol);
|
|
updateResult = "success";
|
|
return true;
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
updateResult = ex.Message;
|
|
return false;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
try
|
|
{
|
|
conn.Update(this._kol);
|
|
updateResult = "success";
|
|
return true;
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
updateResult = ex.Message;
|
|
return false;
|
|
}
|
|
}
|
|
}
|
|
else {
|
|
updateResult = "null 物件無法更新";
|
|
return false;
|
|
}
|
|
}
|
|
|
|
private void updateList()
|
|
{
|
|
foreach (var item in cooperateTypes) {
|
|
item.dataUpdate();
|
|
}
|
|
|
|
foreach (var item in fansTypes)
|
|
{
|
|
item.dataUpdate();
|
|
}
|
|
|
|
foreach (var item in makeups)
|
|
{
|
|
item.dataUpdate();
|
|
}
|
|
|
|
foreach (var item in medias)
|
|
{
|
|
item.dataUpdate();
|
|
}
|
|
|
|
foreach (var item in styles)
|
|
{
|
|
item.dataUpdate();
|
|
}
|
|
}
|
|
}
|