示例#1
0
        /// <summary>
        /// Common scraping function
        /// </summary>
        /// <param name="expression"></param>
        /// <param name="log"></param>
        /// <param name="context"></param>
        /// <returns></returns>
        private static async Task ScrapeAsync(Expression <Func <Cluster, bool> > expression, ILogger log, ExecutionContext context)
        {
            var serviceProvider     = DiConfig.GetServiceProvider(context.FunctionAppDirectory);
            var scraper             = serviceProvider.GetService <IAtlasScraper>();
            var clusterSnapshotRepo = serviceProvider.GetService <ClusterSnapshotRepository>();

            var clusterSnapshot = await scraper.ScrapeAsync(expression);

            await clusterSnapshotRepo.CreateItemAsync(clusterSnapshot);
        }
示例#2
0
        public static async Task MainAsync(string[] args)
        {
            var serviceProvider = DiConfig.GetServiceProvider(Directory.GetCurrentDirectory());

            var context = serviceProvider.GetService <MapContext>();
            var scraper = serviceProvider.GetService <IAtlasScraper>();
            var config  = serviceProvider.GetService <IConfiguration>();
            var logger  = serviceProvider.GetService <ILogger>();

            var clusterSnapshotRepo = serviceProvider.GetService <ClusterSnapshotRepository>();

            await clusterSnapshotRepo.CreateClusterSnapshotCollection();

            var clusterId       = config.GetValue <Guid>("ClusterId");
            var clusterSnapshot = await scraper.ScrapeAsync(x => x.Id == clusterId);

            var doc = await clusterSnapshotRepo.CreateItemAsync(clusterSnapshot);
        }