/// <summary> /// Get serializable reference name from instance /// </summary> /// <param name="dc"></param> /// <returns></returns> public static string GetReferenceId(DataTableMsx dc) { if (dc != null) { return(dc.Id); } else { return(null); } }
/// <summary> /// Get instance from reference id /// </summary> /// <param name="id"></param> /// <returns></returns> public static DataTableMsx GetInstanceFromReferenceId( DocumentMsx doc, string id) { if (String.IsNullOrWhiteSpace(id)) { return(null); } DataTableMsx dt = doc.DataManager.TableCollection.GetTableById(id); return(dt); }
/// <summary> /// Get instance from reference id /// </summary> /// <param name="id"></param> /// <returns></returns> public static DataColumnMsx GetInstanceFromReferenceId( DocumentMsx doc, string id) { DataColumnMsx dc; if (String.IsNullOrWhiteSpace(id)) { return(null); } int i1 = id.IndexOf("."); if (i1 < 0) { return(null); } string tableId = id.Substring(0, i1); string columnName = id.Substring(i1 + 1); DataTableMsx dt = DataTableMsx.GetInstanceFromReferenceId(doc, tableId); if (dt == null) { return(null); } if (dt.TryGetColumnByName(columnName, out dc)) { return(dc); } else { return(null); // (throw exception?) } }
/// <summary> /// Update secondary object xxxMsx class object references to the /// associated Guid Ids prior to serialization. /// This method is normally overridden by each xxxMsx class to update /// the references for that class. /// </summary> public override void UpdatePreSerializationSecondaryReferences() { DataTableSerializedId = DataTableMsx.GetReferenceId(DataTable); return; }