public override void BeginRequest(object sender, EventArgs e)
        {
            var path        = _context.Context.Request.Path;
            var queryString = _context.Request.QueryString.ToString();

            if (_paths.Contains(path) && queryString != string.Empty)
            {
                DashCacheItem dashCacheItem = InMemoryDashCacheGateway.Find(InMemoryDashCacheGateway.GenerateKey(path, queryString));
                InMemoryDashCacheGateway.SetCurrentDashCacheItem(dashCacheItem);
            }
        }
Beispiel #2
0
        public void InMemoryDashCacheManagerCanFindTest()
        {
            //given
            string key = "DateFilter=4/24/2015;4/24/2016&DataFilter=AuditType/Complex&SourceOrgType=CMS&Axis=Month,Year&ProductLine/DME 1st Pass";
            InMemoryDashCacheManager manager = new InMemoryDashCacheManager();

            manager.Add("item1", new DashCacheItem(new object()));
            manager.Add("item2", new DashCacheItem(new object()));
            manager.Add(key, new DashCacheItem(new object()));
            //when
            DashCacheItem item = manager.Find(key);

            //then
            item.Should().Equals(manager.Find(key));
        }
        public override void EndRequest(object sender, EventArgs e)
        {
            var path        = _context.Context.Request.Path;
            var queryString = _context.Request.QueryString.ToString();

            if (_paths.Contains(path) && queryString != string.Empty)
            {
                DashCacheItem dashCacheItem = InMemoryDashCacheGateway.GetCurrentDashCacheItem();
                if (dashCacheItem != null && dashCacheItem.IsAlreadyCached != true)
                {
                    dashCacheItem.IsAlreadyCached = true;
                    InMemoryDashCacheGateway.Add(InMemoryDashCacheGateway.GenerateKey(path, queryString), dashCacheItem);
                }
                ;
            }

            int count = InMemoryDashCacheGateway.GetCacheCount();

            //read from threshold in config later, don't have the energy to convert
            if (count > 5)
            {
                InMemoryDashCacheGateway.EvictFirstItemIn();
            }
        }