예제 #1
0
        public static ExpirationHint GetExpirationHint(Dependencies.CacheDependency dependency, DateTime absoluteExpiration, TimeSpan slidingExpiration)
        {
            ExpirationHint expirationHint = GetExpirationHint(absoluteExpiration, slidingExpiration);

            if (expirationHint == null)
            {
                return(GetExpirationHint(dependency));
            }
            ExpirationHint eh = GetExpirationHint(dependency);

            if (eh == null)
            {
                return(expirationHint);
            }
            AggregateExpirationHint hint3 = null;

            if (eh is AggregateExpirationHint)
            {
                hint3 = eh as AggregateExpirationHint;
                hint3.Add(expirationHint);
                return(hint3);
            }
            hint3 = new AggregateExpirationHint();
            hint3.Add(expirationHint);
            hint3.Add(eh);
            return(hint3);
        }
예제 #2
0
        private static ExpirationHint GetExpirationHint(Dependencies.CacheDependency cacheDependency, AggregateExpirationHint aggregateHint)
        {
            if (cacheDependency == null)
            {
                return(null);
            }
            ExpirationHint expirationHint = null;

            if (cacheDependency is Dependencies.KeyDependency)
            {
                var dependency = cacheDependency as Dependencies.KeyDependency;
                expirationHint = new KeyDependency(dependency.CacheKeys, new DateTime(dependency.StartAfterTicks));
                aggregateHint.Add(expirationHint);
            }
            else if (cacheDependency is Dependencies.FileDependency)
            {
                var dependency2 = cacheDependency as Dependencies.FileDependency;
                expirationHint = new FileDependency(dependency2.fileNames, new DateTime(dependency2.StartAfterTicks));
                aggregateHint.Add(expirationHint);
            }
            if (aggregateHint.Hints.Length == 0)
            {
                return(null);
            }
            if (aggregateHint.Hints.Length == 1)
            {
                return(aggregateHint.Hints[0]);
            }
            return(aggregateHint);
        }