public IEnumerable <long> GetQualified(long qualifier) { List <long> qualifiedRelations = new List <long>(); using (VistaDBConnection conn = new VistaDBConnection(this.db)) { VistaDBCommand cmd; // get qualified root relations cmd = new VistaDBCommand("select id from RootRelations where qualifierId=@qualifierId", conn); cmd.Parameters.AddWithValue("@qualifierId", qualifier); using (VistaDBDataReader rd = cmd.ExecuteReader()) { while (rd.Read()) { qualifiedRelations.Add(rd.GetInt64(0)); } } // get qualified inner relations cmd.CommandText = "select id from InnerRelations where qualifierId=@qualifierId"; using (VistaDBDataReader rd = cmd.ExecuteReader()) { while (rd.Read()) { qualifiedRelations.Add(rd.GetInt64(0)); } } } return(qualifiedRelations); }
public IEnumerable <long> GetChildren(long parent, ParentModes mode, long qualifier) { List <long> children = new List <long>(); using (VistaDBConnection conn = new VistaDBConnection(this.db)) { VistaDBCommand cmd; cmd = new VistaDBCommand("select id from InnerRelations where nParentId=@parentId", conn); cmd.Parameters.AddWithValue("@parentId", parent); if (qualifier != 0) { cmd.CommandText += " and qualifierId=@qualifierId"; cmd.Parameters.AddWithValue("@qualifierId", qualifier); } if (mode == ParentModes.normative || mode == ParentModes.both) { using (VistaDBDataReader rd = cmd.ExecuteReader()) { while (rd.Read()) { children.Add(rd.GetInt64(0)); } } } if (mode == ParentModes.associative || mode == ParentModes.both) { cmd.CommandText = cmd.CommandText.Replace("nParentId", "aParentId"); using (VistaDBDataReader rd = cmd.ExecuteReader()) { while (rd.Read()) { children.Add(rd.GetInt64(0)); } } } } return(children); }