private static List <Job> GetBySemesters(List <int> semestersValues) { var data = new List <Job>(); var notInCache = new List <int>(); var cacheNamePrefix = "SemesterJob_"; var cacheTime = 15; CheckJobExpoFromCache(semestersValues, cacheNamePrefix, out notInCache, out data); if (notInCache != null && notInCache.Count > 0) { var notInCachedData = jobList.Where(jb => notInCache.Contains((int)jb.Semester)); var groupData = notInCachedData.GroupBy(rg => (int)rg.Semester); foreach (var dt in groupData) { var cacheName = cacheNamePrefix + dt.Key; MyCache.SetItemCache(cacheName, dt.ToList(), cacheTime); } data.AddRange(notInCachedData); } return(data); }
public static void CheckJobExpoFromCache(List <int> filterValues, string cacheNamePrefix, out List <int> notInCache, out List <Job> data) { notInCache = new List <int>(); data = new List <Job>(); foreach (var filterVal in filterValues) { var cacheName = cacheNamePrefix + filterVal; var cachedItem = MyCache.GetItemCached(cacheName); if (cachedItem == null) { notInCache.Add(filterVal); } else { data.AddRange((IEnumerable <Job>)cachedItem); } } }