Пример #1
0
        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);
        }
Пример #2
0
        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);
                }
            }
        }