public static LinksDataSet.tblRelatedStructureRow Retrieve( LinksDataSet ds, RelationshipPath relationshipPath, Int32 subject1Tag, Int32 subject2Tag ) { if ( ds.tblRelatedStructure.Count <= 0 ) throw new ArgumentException("tblRelatedStructure should have more than one row.", "ds"); string sql = string.Format("{0}={1} AND {2}={3} AND {4}={5}", (byte)relationshipPath, ds.tblRelatedStructure.RelationshipPathColumn.ColumnName, subject1Tag, ds.tblRelatedStructure.SubjectTag_S1Column.ColumnName, subject2Tag, ds.tblRelatedStructure.SubjectTag_S2Column.ColumnName); LinksDataSet.tblRelatedStructureRow[] drs = (LinksDataSet.tblRelatedStructureRow[])ds.tblRelatedStructure.Select(sql); Trace.Assert(drs.Length == 1, "There should be exactly one row retrieved."); return drs[0]; }
//private static EverSharedHouse SharedHouse ( RelationshipPath relationshipPath ) { private static bool SharedHouse( RelationshipPath relationshipPath ) { switch ( relationshipPath ) { case RelationshipPath.ParentChild: case RelationshipPath.Gen1Housemates: case RelationshipPath.Gen2Siblings: return true; //EverSharedHouse.Yes; case RelationshipPath.AuntNiece: case RelationshipPath.Gen2Cousins: return false; //EverSharedHouse.No; default: throw new ArgumentOutOfRangeException("relationshipPath", relationshipPath, "The relationshipPath was not recognized."); } }
private LinksDataSet.tblRelatedStructureRow[] SelectLefthand( RelationshipPath path ) { //"Lefthand" is my slang for the lower/smaller SubjectTag corresponds to Subject1. string select = string.Format("{0}={1} AND {2}<{3}", (byte)path, _dsLinks.tblRelatedStructure.RelationshipPathColumn.ColumnName, _dsLinks.tblRelatedStructure.SubjectTag_S1Column.ColumnName, _dsLinks.tblRelatedStructure.SubjectTag_S2Column.ColumnName); return (LinksDataSet.tblRelatedStructureRow[])_dsLinks.tblRelatedStructure.Select(select); }
public static LinksDataSet.tblRelatedValuesRow RetrieveRRow( LinksDataSet ds, RelationshipPath relationshipPath, Int32 subject1Tag, Int32 subject2Tag ) { if ( ds.tblRelatedValues.Count <= 0 ) throw new ArgumentException("tblRelatedValues should have more than one row.", "ds"); Int32 subjectTagSmaller = Int32.MinValue; Int32 subjectTagLarger = Int32.MinValue; if ( subject1Tag < subject2Tag ) { subjectTagSmaller = subject1Tag; subjectTagLarger = subject2Tag; } else { subjectTagSmaller = subject2Tag; subjectTagLarger = subject1Tag; } LinksDataSet.tblRelatedStructureRow drStructure = RelatedStructure.Retrieve(ds, relationshipPath, subjectTagSmaller, subjectTagLarger); Trace.Assert(drStructure != null, "The retrieved row should not be null."); return ds.tblRelatedValues.FindByID(drStructure.ID); }
internal static LinksDataSet.tblRelatedStructureRow[] RelatedStructureInExtendedFamily( Int16 extendedID, RelationshipPath path, LinksDataSet.tblRelatedStructureDataTable dtStructure ) { string select = string.Format("{0}={1} AND {2}={3}", extendedID, dtStructure.ExtendedIDColumn.ColumnName, (byte)path, dtStructure.RelationshipPathColumn.ColumnName); return (LinksDataSet.tblRelatedStructureRow[])dtStructure.Select(select); }