public static IEnumerable <PoliticianImagesInfo> GetStateHeadshots( string stateCode, int officeLevel, bool onlyOutOfDate) { var filterOfficeLevel = officeLevel >= 0; var table = onlyOutOfDate ? PoliticiansImagesData.GetDataByStateForOutOfDateHeadshots(stateCode) : PoliticiansImagesData.GetDataByState(stateCode); var list = ConvertTableToList(table); // Get OfficeKey and related data var tempCache = GetPageCache(); foreach (var info in list) { info.ApplyAdditionalCoding(tempCache); } // Fiter and sort list = list.Where(item => !filterOfficeLevel || (item.OfficeLevel == officeLevel)) .OrderBy(item => item, new PoliticianImagesInfo()) .ToList(); return(list); }