147 lines
4.7 KiB
C#
147 lines
4.7 KiB
C#
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; } = "";
|
|
|
|
public List<mediaItem> mediaSpecItems { get; set; } = new List<mediaItem>();
|
|
|
|
private kolMedia _kolMedia;
|
|
|
|
public kolMediaDetail()
|
|
{
|
|
_kolMedia = new kolMedia();
|
|
}
|
|
|
|
public kolMediaDetail(string kolMedia_uid)
|
|
{
|
|
_kolMedia = conn.QueryFirstOrDefault<kolMedia>("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 [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;
|
|
}
|
|
|
|
loadMediaItem(kolMedia_uid);
|
|
}
|
|
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 [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;
|
|
}
|
|
|
|
loadMediaItem(kolMedia.optionItem_uid);
|
|
}
|
|
|
|
void loadMediaItem(string kolMedia_uid) {
|
|
|
|
List<mediaItem> mediaItems = conn.Query<mediaItem>("select * from mediaItem where mediaItem_ishide = 'N' and optionItem_uid = @optionItem_uid order by mediaItem_order", new { optionItem_uid = kolMedia_uid}).ToList();
|
|
|
|
mediaSpecItems = mediaItems;
|
|
|
|
}
|
|
|
|
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;
|
|
}
|
|
}
|
|
}
|