/// <summary> /// Add all sub-features to the parent feature recursively. /// </summary> /// <param name="parent"></param> public void CreateTopDownNetwork(HydroFeature parent) { string sql = "select * from " + Configuration.HydroFeaturesTableName + " where ParentFeatureID=" + parent.ID; DataTable dt = mDBase.QueryDataTable(sql); if (dt != null) { foreach (DataRow dr in dt.Rows) { int id = Convert.ToInt32(dr["FeatureID"].ToString()); string type = dr["FeatureType"].ToString(); string name = dr["FeatureName"].ToString(); string des = dr["Descriptions"].ToString(); HydroFeatureType htype = HydroFeatureFactory.GetHydroFeaturetype(type); HydroFeature feature = HydroFeatureFactory.CreateHydroFeature(id, name, des, htype); if (feature.HydroFeatureType == HydroFeatureType.HydroPoint) { feature = mODMDataAdaptor.GetSiteInfo(id); } parent.SubFeatures.Add(feature); feature.ParentFeatures.Add(parent); if (feature.HydroFeatureType != HydroFeatureType.HydroPoint) { CreateTopDownNetwork(feature); } } } }
public static HydroFeature GetHydroFeature(int id, IDBase dBase) { string sql = "select * from " + Configuration.HydroFeaturesTableName + " where FeatureID=" + id; DataTable dt = dBase.QueryDataTable(sql); if (dt != null) { DataRow dr = dt.Rows[0]; string type = dr["FeatureType"].ToString(); string name = dr["FeatureName"].ToString(); string des = dr["Descriptions"].ToString(); HydroFeatureType htype = HydroFeatureFactory.GetHydroFeaturetype(type); return(CreateHydroFeature(id, name, des, htype)); } else { return(null); } }