public string GetParametersExtendPropertiesString(MySmo.IExtendPropertiesBase mysmo_epb) { var dt = new DS.KeyValuePairDataTable(); var mysmo_pb = mysmo_epb as MySmo.IParameterBase; foreach (var mysmo_p in mysmo_pb.Parameters) { var cdt = new DS.KeyValuePairDataTable(); cdt.AddKeyValuePairRow(K_MS_Description, mysmo_p.Description); if (mysmo_p.ExtendedProperties != null) { foreach (var mysmo_ep in mysmo_p.ExtendedProperties) { cdt.AddKeyValuePairRow(mysmo_ep.Key, mysmo_ep.Value); } } var csb = new StringBuilder(); var csw = new StringWriter(csb); cdt.AcceptChanges(); cdt.WriteXml(csw); dt.AddKeyValuePairRow(mysmo_p.Name, csb.ToString()); } var sb = new StringBuilder(); var sw = new StringWriter(sb); dt.AcceptChanges(); dt.WriteXml(sw); return(sb.ToString()); }
public string GetColumnsExtendPropertiesString(MySmo.IExtendPropertiesBase mysmo_epb) { var dt = new DS.KeyValuePairDataTable(); var mysmo_tb = mysmo_epb as MySmo.ITableBase; foreach (var mysmo_c in mysmo_tb.Columns) { var cdt = new DS.KeyValuePairDataTable(); if (!(mysmo_epb is MySmo.Table || mysmo_epb is MySmo.UserDefinedTableType)) { cdt.AddKeyValuePairRow(K_MS_Description, mysmo_c.Description); } foreach (var mysmo_ep in mysmo_c.ExtendedProperties) { cdt.AddKeyValuePairRow(mysmo_ep.Key, mysmo_ep.Value); } var csb = new StringBuilder(); var csw = new StringWriter(csb); cdt.AcceptChanges(); cdt.WriteXml(csw); dt.AddKeyValuePairRow(mysmo_c.Name, csb.ToString()); } var sb = new StringBuilder(); var sw = new StringWriter(sb); dt.AcceptChanges(); dt.WriteXml(sw); return(sb.ToString()); }
public void DistributeExtendProperties(MySmo.IParameterBase mysmo_pb) { #region implement var epb = (MySmo.IExtendPropertiesBase)mysmo_pb; string s; if (!epb.ExtendedProperties.TryGetValue(K_ParameterSettings, out s)) { return; } var dt = new DS.KeyValuePairDataTable(); dt.ReadXml(new MemoryStream(Encoding.UTF8.GetBytes(s))); foreach (var parameter in mysmo_pb.Parameters) { var row = dt.FindByKey(parameter.Name); if (row != null) { var cdt = new DS.KeyValuePairDataTable(); cdt.ReadXml(new MemoryStream(Encoding.UTF8.GetBytes(row.Value))); foreach (var crow in cdt) { if (crow.Key == K_MS_Description) { parameter.Description = crow.Value; } else { parameter.ExtendedProperties.Add(crow.Key, crow.Value); } } } } epb.ExtendedProperties.Remove(K_ParameterSettings); #endregion }