예제 #1
0
        public Task <Possible <CacheSessionStatistics[], Failure> > GetStatisticsAsync(Guid activityId)
        {
            using (var eventing = new GetStatisticsActivity(BasicFilesystemCache.EventSource, activityId, this))
            {
                eventing.Start();

                CacheSessionStatistics[] result = new CacheSessionStatistics[1];
                result[0] = new CacheSessionStatistics(CacheId, m_cache.GetType().FullName, m_finalStats.Value);

                eventing.Stop();
                return(Task.FromResult(new Possible <CacheSessionStatistics[], Failure>(result)));
            }
        }
예제 #2
0
        /// <inheritdoc />
        public async Task <Possible <CacheSessionStatistics[], Failure> > GetStatisticsAsync(Guid activityId)
        {
            var cacheStats = await Cache.GetStatsAsync(new Context(activityId, Logger)).ConfigureAwait(false);

            if (!cacheStats.Succeeded)
            {
                return(new Possible <CacheSessionStatistics[], Failure>(new CacheFailure(cacheStats.ErrorMessage)));
            }

            CacheSessionStatistics finalStats =
                new CacheSessionStatistics(
                    CacheId,
                    Cache.GetType().FullName,
                    cacheStats.CounterSet.ToDictionaryIntegral().ToDictionary(kvp => kvp.Key, kvp => (double)kvp.Value));

            return(new Possible <CacheSessionStatistics[], Failure>(new[] { finalStats }));
        }