/// <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); }
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); }