Ejemplo n.º 1
0
        public IEnumerable <T> GetAll(Func <IEnumerable <T> > cacheMissFunc)
        {
            BuildCache();
            var data = CacheLock.Read(Lock, () => {
                var data1 = primaryCache.GetAll();
                return(data1.Any() ? data1 : secondaryCaches.GetAll());
            });

            if (!data.Any())
            {
                data = cacheMissStrategy.Execute(cacheMissFunc);
                Bust(data);
            }

            return(data);
        }