public static SurveySource DetermineSurveySource( Int16 surveyYear, SubjectSurvey[] subjectSurveys )
 {
     IEnumerable<SurveySource> sources = from ss in subjectSurveys
                                                     where ss.SurveyYear == surveyYear
                                                     select ss.SurveySource;
     if ( sources.Count() <= 0 )
         return SurveySource.NoInterview;
     else
         return sources.Single();
 }
        //public static LinksDataSet.tblSurveyTimeDataTable ExtendedFamilySurveyTime ( Int16 extendedID, LinksDataSet dsLinks ) {
        //}
        public static SubjectSurvey[] RetrieveSubjectSurveys( Int32 subjectTag, LinksDataSet dsLinks )
        {
            if ( dsLinks == null ) throw new ArgumentNullException("dsLinks");
            if ( dsLinks.tblSurveyTime.Count <= 0 ) throw new ArgumentException("There should be at least one row in tblSurveyTime.");

            string select = string.Format("{0}={1} AND {2}>0",
                subjectTag, dsLinks.tblSurveyTime.SubjectTagColumn.ColumnName,
                dsLinks.tblSurveyTime.SurveySourceColumn.ColumnName);
            LinksDataSet.tblSurveyTimeRow[] drs = (LinksDataSet.tblSurveyTimeRow[])dsLinks.tblSurveyTime.Select(select);
            //Trace.Assert(drs.Length > 0, "There should be at least one row returned.");
            SubjectSurvey[] ss = new SubjectSurvey[drs.Length];
            for ( Int32 i = 0; i < drs.Length; i++ ) {
                ss[i] = new SubjectSurvey(drs[i].SurveyYear, (SurveySource)drs[i].SurveySource);
            }
            return ss;
        }