コード例 #1
0
        public void GetSiteMap_NoParameterOverload_ShouldCallGenerateKeyAndPassResultToGetOrAdd()
        {
            // arrange
            var siteMapLoader = NewSiteMapLoader();

            A.CallTo(() => siteMapCacheKeyGenerator.GenerateKey()).Returns("theKey");

            // act
            var result = siteMapLoader.GetSiteMap();

            // assert
            A.CallTo(() => siteMapCacheKeyGenerator.GenerateKey()).MustHaveHappened(Repeated.Exactly.Once);
            A.CallTo(() => siteMapCache.GetOrAdd("theKey", A <Func <SiteMap> > .Ignored, A <ICacheDetails> .Ignored)).MustHaveHappened(Repeated.Exactly.Once);
        }
コード例 #2
0
 public virtual ISiteMap GetSiteMap(string siteMapCacheKey)
 {
     if (string.IsNullOrEmpty(siteMapCacheKey))
     {
         siteMapCacheKey = siteMapCacheKeyGenerator.GenerateKey();
     }
     return(siteMapCache.GetOrAdd(
                siteMapCacheKey,
                () => siteMapCreator.CreateSiteMap(siteMapCacheKey),
                () => siteMapCreator.GetCacheDetails(siteMapCacheKey)));
 }
コード例 #3
0
 public virtual ISiteMap GetSiteMap(string siteMapCacheKey)
 {
     if (String.IsNullOrEmpty(siteMapCacheKey))
     {
         throw new ArgumentNullException("siteMapCacheKey");
     }
     return(siteMapCache.GetOrAdd(
                siteMapCacheKey,
                () => siteMapCreator.CreateSiteMap(siteMapCacheKey),
                () => siteMapCreator.GetCacheDetails(siteMapCacheKey)));
 }
コード例 #4
0
        public SiteMap GetSiteMap(string siteMapCacheKey = null)
        {
            if (string.IsNullOrEmpty(siteMapCacheKey))
            {
                siteMapCacheKey = siteMapCacheKeyGenerator.GenerateKey();
            }

            // retrieve builderset
            var builderSet = GetBuilderSet(siteMapCacheKey);

            // check cache for sitemap if not available generate using builder
            // cache using cachedetails
            var siteMap = siteMapCache.GetOrAdd(
                siteMapCacheKey,
                () => siteMapBuilder.BuildSiteMap(builderSet, siteMapCacheKey),
                builderSet.CacheDetails
                );

            // create new restricted sitemap based on user's permissions
            var restrictedSiteMap = VisitSiteMap(siteMap);

            // return new filtered sitemap
            return(restrictedSiteMap);
        }