Example #1
0
        public async Task <GetPoolStatsResponse> GetPoolPerformanceAsync(string poolId,
                                                                         [FromQuery(Name = "r")] SampleRange range       = SampleRange.Day,
                                                                         [FromQuery(Name = "i")] SampleInterval interval = SampleInterval.Hour)
        {
            var pool = GetPool(poolId);

            // set range
            var      end = clock.Now;
            DateTime start;

            switch (range)
            {
            case SampleRange.Day:
                start = end.AddDays(-1);
                break;

            case SampleRange.Month:
                start = end.AddDays(-30);
                break;

            default:
                throw new ApiException("invalid interval");
            }

            var stats = await cf.Run(con => statsRepo.GetPoolPerformanceBetweenAsync(
                                         con, pool.Id, interval, start, end));

            var response = new GetPoolStatsResponse
            {
                Stats = stats.Select(mapper.Map <AggregatedPoolStats>).ToArray()
            };

            return(response);
        }
Example #2
0
        private async Task GetPoolPerformanceAsync(HttpContext context, Match m)
        {
            var pool = GetPool(context, m);

            // set range
            var end   = clock.Now;
            var start = end.AddDays(-1);

            var stats = await cf.Run(con => statsRepo.GetPoolPerformanceBetweenHourlyAsync(
                                         con, pool.Id, start, end));

            var response = new GetPoolStatsResponse
            {
                Stats = stats.Select(mapper.Map <AggregatedPoolStats>).ToArray()
            };

            await SendJsonAsync(context, response);
        }
Example #3
0
        public async Task <GetPoolStatsResponse> GetPoolPerformanceAsync(string poolId)
        {
            var pool = GetPool(poolId);

            // set range
            var end   = clock.Now;
            var start = end.AddDays(-1);

            var stats = await cf.Run(con => statsRepo.GetPoolPerformanceBetweenHourlyAsync(
                                         con, pool.Id, start, end));

            var response = new GetPoolStatsResponse
            {
                Stats = stats.Select(mapper.Map <AggregatedPoolStats>).ToArray()
            };

            return(response);
        }
Example #4
0
        private async Task HandleGetPoolStatsAsync(HttpContext context, Match m)
        {
            var pool = GetPool(context, m);

            if (pool == null)
            {
                return;
            }

            // set range
            var end   = clock.Now;
            var start = end.AddDays(-1);

            var stats = cf.Run(con => statsRepo.GetPoolStatsBetweenHourly(
                                   con, pool.Config.Id, start, end));

            var response = new GetPoolStatsResponse
            {
                Stats = stats.Select(mapper.Map <AggregatedPoolStats>).ToArray()
            };

            await SendJson(context, response);
        }