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);
        }
Ejemplo n.º 5
0
 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);
 }