/** * Returns the StudyField of the given type from the Study object * for all types other than StudyFIeldType.All. In this case, * null is returned */ public static StudyField GetFieldByType(Study study, StudyFieldType type) { switch (type) { case StudyFieldType.PublicationYear: return(study.PublicationYear); case StudyFieldType.CorrelationCoefficient: return(study.CorrelationCoefficient); case StudyFieldType.SampleSize: return(study.SampleSize); case StudyFieldType.VariablesControlled: return(study.VariablesControlled); case StudyFieldType.MeanAge: return(study.MeanAge); case StudyFieldType.StudyDesign: return(study.StudyDesign); case StudyFieldType.AdherenceMeasure: return(study.AdherenceMeasure); case StudyFieldType.ConscientiousnessMeasure: return(study.ConscientiousnessMeasure); case StudyFieldType.MethodologicalQuality: return(study.MethodologicalQuality); } throw new ArgumentException("Cannot get field of type: " + type); }
/** * Returns results of search the studies data by key/value, using * inclusion of the search term */ public List <Study> FindByColumnAndValue(StudyFieldType column, string value) { var results = from j in Studies where GetFieldByType(j, column).Contains(value) select j; return(results.ToList()); }
// Lists Studies with a given field matching a given value public IActionResult Studies(StudyFieldType column, string value) { SearchStudiesViewModel studiesViewModel = new SearchStudiesViewModel(); studiesViewModel.Studies = studyData.FindByColumnAndValue(column, value); studiesViewModel.Title = "Studies with " + column + ": " + value; return(View(studiesViewModel)); }
// Lists the values of a given column, or all studiess if selected public IActionResult Values(StudyFieldType column) { if (column.Equals(StudyFieldType.All)) { SearchStudiesViewModel studiesViewModel = new SearchStudiesViewModel(); studiesViewModel.Studies = studyData.Studies; studiesViewModel.Title = "All Studies"; return(View("Studies", studiesViewModel)); } else { StudyFieldsViewModel studyFieldsViewModel = new StudyFieldsViewModel(); IEnumerable <StudyField> fields; switch (column) { case StudyFieldType.PublicationYear: fields = studyData.PublicationYears.ToList().Cast <StudyField>(); break; case StudyFieldType.CorrelationCoefficient: fields = studyData.CorrelationCoefficients.ToList().Cast <StudyField>(); break; case StudyFieldType.SampleSize: fields = studyData.SampleSizes.ToList().Cast <StudyField>(); break; case StudyFieldType.VariablesControlled: fields = studyData.VariablesControlled.ToList().Cast <StudyField>(); break; case StudyFieldType.StudyDesign: fields = studyData.StudyDesigns.ToList().Cast <StudyField>(); break; case StudyFieldType.AdherenceMeasure: fields = studyData.AdherenceMeasures.ToList().Cast <StudyField>(); break; case StudyFieldType.ConscientiousnessMeasure: fields = studyData.ConscientiousnessMeasures.ToList().Cast <StudyField>(); break; case StudyFieldType.MeanAge: fields = studyData.MeanAges.ToList().Cast <StudyField>(); break; case StudyFieldType.MethodologicalQuality: default: fields = studyData.MethodologicalQualities.ToList().Cast <StudyField>(); break; } studyFieldsViewModel.Fields = fields; studyFieldsViewModel.Title = "All " + column + " Values"; studyFieldsViewModel.Column = column; return(View(studyFieldsViewModel)); } }