/// <summary> /// 获取文章的某个标签值,返回根据该文章的标签属性定义的数据类型 /// </summary> /// <param name="article"></param> /// <param name="name"></param> /// <returns></returns> public object GetExt(Base_CatalogArticle article, string name) { Base_CatalogExt catExt = null; if (article != null) { catExt = SiteManager.Catalog.GetAllExts(article.CatalogId) .FirstOrDefault(ext => ext.Name.Equals(name, StringComparison.OrdinalIgnoreCase)); } if (catExt == null) { return(null); } var artExt = article.Article.Exts.FirstOrDefault(ext => ext.CatlogExtId == catExt.Id); if (artExt == null) { return(null); } switch ((ExtDataType)catExt.DataType) { case ExtDataType.Currency: return(CommOp.ToDecimalNull(artExt.Value)); case ExtDataType.DateAndTime: case ExtDataType.Date: return(CommOp.ToDateTimeNull(artExt.Value)); case ExtDataType.SingleNumber: return(CommOp.ToLongNull(artExt.Value)); case ExtDataType.Bool: return(CommOp.ToBool(artExt.Value)); default: return(artExt.Value); } }
/// <summary> /// 设置文章的某个标签值 /// </summary> /// <param name="article"></param> /// <param name="name"></param> /// <param name="value"></param> /// <returns></returns> public void SetExt(Base_CatalogArticle article, string name, object value) { var catExt = SiteManager.Catalog.GetAllExts(article.CatalogId) .FirstOrDefault(ext => ext.Name.Equals(name, StringComparison.OrdinalIgnoreCase)); if (catExt == null) { return; } var artExt = article.Article.Exts.First(ext => ext.CatlogExtId == catExt.Id); if (artExt == null) { return; } switch ((ExtDataType)catExt.DataType) { case ExtDataType.Currency: value = CommOp.ToDecimalNull(value); break; case ExtDataType.DateAndTime: case ExtDataType.Date: value = CommOp.ToDateTimeNull(artExt.Value); break; case ExtDataType.SingleNumber: value = CommOp.ToLongNull(value); break; case ExtDataType.Bool: value = CommOp.ToBool(value); break; } artExt.Value = value.ToString(); }
public static object SetExt(this Base_Article article, Base_CatalogExt catExt, object value) { if (catExt == null) { return(null); } var artExt = article.Exts.FirstOrDefault(ext => ext.CatlogExtId == catExt.Id); if (artExt == null) { artExt = new Base_ArticleExt { CatlogExtId = catExt.Id, }; article.Exts.Add(artExt); } ; string strValue = null; switch ((ExtDataType)catExt.DataType) { case ExtDataType.Currency: Decimal?dec = CommOp.ToDecimalNull(value); if (dec != null) { strValue = dec.Value.ToString(); } break; case ExtDataType.FloatNumber: double?flt = CommOp.ToDoubleNull(value); if (flt != null) { strValue = flt.Value.ToString(); } break; case ExtDataType.DateAndTime: case ExtDataType.Date: DateTime?dt = CommOp.ToDateTimeNull(value); if (dt != null) { strValue = dt.Value.ToString("yyyy-MM-dd HH:mm:ss"); } break; case ExtDataType.SingleNumber: long?lng = CommOp.ToLongNull(value); if (lng != null) { strValue = lng.Value.ToString(); } break; case ExtDataType.Bool: value = CommOp.ToBool(value); strValue = value.ToString(); break; default: strValue = CommOp.ToStr(value); if (strValue.IsEmpty()) { strValue = null; } break; } artExt.Value = strValue; return(value); }