/// <summary> /// Gets the meta field values. /// </summary> /// <param name="row">The row.</param> /// <param name="metaAttributes">The meta attributes.</param> /// <returns></returns> private static Hashtable GetMetaFieldValues(DataRow row, MetaClass metaClass, ref ItemAttributes metaAttributes) { Hashtable hash = null; // try loading from serialized binary field first if (row.Table.Columns.Contains(MetaObjectSerialized.SerializedFieldName) && row[MetaObjectSerialized.SerializedFieldName] != DBNull.Value) { IFormatter formatter = null; try { formatter = new BinaryFormatter(); MetaObjectSerialized metaObjSerialized = (MetaObjectSerialized)formatter.Deserialize(new MemoryStream((byte[])row[MetaObjectSerialized.SerializedFieldName])); if (metaObjSerialized != null) { if (metaAttributes != null) { metaAttributes.CreatedBy = metaObjSerialized.CreatorId; metaAttributes.CreatedDate = metaObjSerialized.Created; metaAttributes.ModifiedBy = metaObjSerialized.ModifierId; metaAttributes.ModifiedDate = metaObjSerialized.Modified; } hash = metaObjSerialized.GetValues(CatalogContext.MetaDataContext.Language); } } finally { formatter = null; } } // Load from database if (hash == null) { MetaObject metaObj = MetaObject.Load(CatalogContext.MetaDataContext, (int)row[0], metaClass); if (metaObj != null) { metaAttributes.CreatedBy = metaObj.CreatorId; metaAttributes.CreatedDate = metaObj.Created; metaAttributes.ModifiedBy = metaObj.ModifierId; metaAttributes.ModifiedDate = metaObj.Modified; hash = metaObj.GetValues(); } } if (hash == null) { return(null); } return(hash); }
private static bool FieldExists(this MetaObject item, string fieldName) { return(item.GetValues().Keys.Cast <string>().Contains(fieldName)); }