Example #1
0
        public static HttpResponseMessage Run(
            [HttpTrigger(AuthorizationLevel.Anonymous, "get", Route = "v0.1/nonces/stat")] HttpRequestMessage req,
            ILogger log,
            ExecutionContext context)
        {
            IConfigurationRoot config = new ConfigurationBuilder()
                                        .SetBasePath(context.FunctionAppDirectory)
                                        .AddJsonFile("local.settings.json", optional: true, reloadOnChange: true)
                                        .AddEnvironmentVariables()
                                        .Build();

            var queryClient = BigQueryFactory.Create(config["GOOGLE_APPLICATION:CREDENTIALS"], config["GOOGLE_APPLICATION:PROJECT_ID"]);
            var query       = new BlockNonceStatQuery(queryClient);
            var cache       = new RedisCacheManager(config["REDIS:CONNECTION_STRING"], int.Parse(config["REDIS:LIVE_TIME"]));

            var result = cache.Get(CacheKey.BLOCK_NONCE_STAT, query.Get);

            return(req.CreateResponse(HttpStatusCode.OK, result));
        }
Example #2
0
        private static Dictionary <string, Func <object> > GetMapping(IConfigurationRoot config)
        {
            var client = BigQueryFactory.Create(config["GOOGLE_APPLICATION:CREDENTIALS"], config["GOOGLE_APPLICATION:PROJECT_ID"]);

            return(new Dictionary <string, Func <object> > {
                {
                    BlockStatFilter.Default.ToKey(CacheKey.BLOCK_STAT),
                    () => {
                        var q = new BlockStatQuery(client);
                        return q.Get(BlockStatFilter.Default);
                    }
                },
                {
                    BlockStatFilter.Month.ToKey(CacheKey.BLOCK_STAT),
                    () => {
                        var q = new BlockStatQuery(client);
                        return q.Get(BlockStatFilter.Month);
                    }
                },
                {
                    CacheKey.CONTRACT_DEPLOYMENT_STAT.ToString(),
                    () => {
                        var q = new DeploymentStatQuery(client);
                        return q.Get();
                    }
                },
                {
                    CacheKey.CONTRACT_OBSOLESCENCE.ToString(),
                    () => {
                        var q = new ContractObsolescenceQuery(client);
                        return q.Get();
                    }
                },
                {
                    MinerStatFilter.Default.ToKey(CacheKey.MINER_STAT),
                    () => {
                        var q = new MinerStatQuery(client);
                        return q.Get(MinerStatFilter.Default);
                    }
                },
                {
                    MinerStatFilter.Month.ToKey(CacheKey.MINER_STAT),
                    () => {
                        var q = new MinerStatQuery(client);
                        return q.Get(MinerStatFilter.Month);
                    }
                },
                {
                    MinerStatFilter.Year.ToKey(CacheKey.MINER_STAT),
                    () => {
                        var q = new MinerStatQuery(client);
                        return q.Get(MinerStatFilter.Year);
                    }
                },
                {
                    TokenStatFilter.Default.ToKey(CacheKey.TOKEN_USAGE),
                    () => {
                        var q = new TokenUsageQuery(client);
                        return q.Get(TokenStatFilter.Default);
                    }
                },
                {
                    TokenStatFilter.Month.ToKey(CacheKey.TOKEN_USAGE),
                    () => {
                        var q = new TokenUsageQuery(client);
                        return q.Get(TokenStatFilter.Month);
                    }
                },
                {
                    TokenStatFilter.Year.ToKey(CacheKey.TOKEN_USAGE),
                    () => {
                        var q = new TokenUsageQuery(client);
                        return q.Get(TokenStatFilter.Year);
                    }
                },
                {
                    CacheKey.ERC721_STAT,
                    () => {
                        var q = new Erc721StatQuery(client);
                        return q.Get();
                    }
                },
                {
                    CacheKey.ERC721_USAGE,
                    () => {
                        var q = new Erc721UsageQuery(client);
                        return q.Get();
                    }
                },
            });
        }