public async Task <Maybe <PagedResult <T> > > BrowseUserStatisticsAsync <T>(BrowseUserStatistics query)
            where T : class
        {
            Logger.Debug($"Requesting BrowseReportersAsync, page:{query.Page}, results:{query.Results}");
            var queryString = UserStatisticsEndpoint.ToQueryString(query);

            return(await _serviceClient
                   .GetCollectionAsync <T>(_name, queryString));
        }
 public async Task <Maybe <PagedResult <UserStatistics> > > BrowseUserStatisticsAsync(BrowseUserStatistics query)
 => await _providerClient.GetCollectionAsync(
     async() => await _statisticsServiceClient.BrowseUserStatisticsAsync <UserStatistics>(query));
 public async Task <Maybe <PagedResult <UserStatistics> > > BrowseAsync(BrowseUserStatistics query)
 => await _database.UserStatistics()
 .Query(query)
 .PaginateAsync();
 public async Task <Maybe <PagedResult <UserStatistics> > > BrowseUserStatisticsAsync(BrowseUserStatistics query)
 => await _storageClient
 .GetFilteredCollectionAsync <UserStatistics, BrowseUserStatistics>(query, UserStatisticsEndpoint);
        public static IMongoQueryable <UserStatistics> Query(this IMongoCollection <UserStatistics> userStatistics, BrowseUserStatistics query)
        {
            var values = userStatistics.AsQueryable();

            switch (query.OrderBy?.ToLowerInvariant())
            {
            case "reported":
                values = values.OrderByDescending(x => x.Remarks.ReportedCount);
                break;

            case "resolved":
                values = values.OrderByDescending(x => x.Remarks.ResolvedCount);
                break;
            }

            return(values);
        }
 public async Task <Maybe <PagedResult <dynamic> > > BrowseUserStatisticsAsync(BrowseUserStatistics query)
 => await BrowseUserStatisticsAsync <dynamic>(query);