using Dapper; using Dapper.Contrib.Extensions; using System.Data.SqlClient; using static DbTableClass; public class kolMediaDetail : kolMedia { DbConn dbConn = new DbConn(); SqlConnection conn = new SqlConnection(GlobalClass.appsettings("ConnectionStrings:SQLConnectionString")); public string option_name { get; set; } = ""; public string optionItem_name { get; set; } = ""; public string updateResult { get; set; } = ""; private kolMedia _kolMedia; public kolMediaDetail() { _kolMedia = new kolMedia(); } public kolMediaDetail(string kolMakeup_uid) { _kolMedia = conn.QueryFirstOrDefault("select * from kolMedia where kolMedia_uid = @kolMedia_uid", new { kolMedia_uid = kolMedia_uid }); if (_kolMedia != null) { Type dataType = _kolMedia.GetType(); foreach (var prop in dataType.GetProperties()) { string propName = prop.Name; var valueProperty = dataType.GetProperty(propName); object propValue = valueProperty.GetValue(_kolMedia, null); this.GetType().GetProperty(propName).SetValue(this, propValue); } var result = conn.QueryFirstOrDefault("select A.option_name, B.optionItem_name from from option A, optionItem B where A.option_uid = B.option_uid and B.option_uid = @option_uid and B.optionItem_uid = @optionItem_uid ", new { option_uid = this.option_uid, optionItem_uid = this.optionItem_uid }); if (result != null) { this.option_name = result.option_name; this.optionItem_name = result.optionItem_name; } } else { _kolMedia = new kolMedia(); } } public kolMediaDetail(kolMedia kolMedia) { this._kolMedia = kolMedia; Type dataType = _kolMedia.GetType(); foreach (var prop in dataType.GetProperties()) { string propName = prop.Name; var valueProperty = dataType.GetProperty(propName); object propValue = valueProperty.GetValue(_kolMedia, null); this.GetType().GetProperty(propName).SetValue(this, propValue); } var result = conn.QueryFirstOrDefault("select A.option_name, B.optionItem_name from from option A, optionItem B where A.option_uid = B.option_uid and B.option_uid = @option_uid and B.optionItem_uid = @optionItem_uid ", new { option_uid = this.option_uid, optionItem_uid = this.optionItem_uid }); if (result != null) { this.option_name = result.option_name; this.optionItem_name = result.optionItem_name; } } public bool dataUpdate() { if (this._kolMedia != null) { Type dataType = _kolMedia.GetType(); foreach (var prop in dataType.GetProperties()) { string propName = prop.Name; var valueProperty = dataType.GetProperty(propName); object propValue = valueProperty.GetValue(this, null); _kolMedia.GetType().GetProperty(propName).SetValue(_kolMedia, propValue); } if (this._kolMedia.kolMedia_uid == "") { this._kolMedia.kolMedia_uid = "KME_" + GlobalClass.CreateRandomCode(16); this.kolMedia_uid = this._kolMedia.kolMedia_uid; try { conn.Insert(this._kolMedia); updateResult = "success"; return true; } catch (Exception ex) { updateResult = ex.Message; return false; } } else { try { conn.Update(this._kolMedia); updateResult = "success"; return true; } catch (Exception ex) { updateResult = ex.Message; return false; } } } else { updateResult = "null 物件無法更新"; return false; } } }