public static async System.Threading.Tasks.Task Main(string[] args) { var collection = new ServiceCollection(); collection.AddDependencyInjectionSetup(); var serviceProvider = collection.BuildServiceProvider(); var covid19RankingService = serviceProvider.GetService <ICovid19RankingService>(); var log = new LoggerConfiguration() .MinimumLevel.Debug() .WriteTo.Console() .CreateLogger(); log.Information("Selenium configuration starting..."); var builder = new ConfigurationBuilder() .SetBasePath(Directory.GetCurrentDirectory()) .AddJsonFile("appsettings.json"); var configuration = builder.Build(); var seleniumConfigurations = new SeleniumConfigurations(); new ConfigureFromConfigurationOptions <SeleniumConfigurations>( configuration.GetSection("SeleniumConfigurations")) .Configure(seleniumConfigurations); log.Information("Selenium configuration loaded"); log.Information("Starting ranking page"); var rankingPage = new RankingPage(seleniumConfigurations); log.Information("Load ranking page via selenium"); rankingPage.LoadPage(); log.Information("Retrieve ranking data from http://www.bing.com/covid"); var summaries = rankingPage.LoadRanking(); log.Information("Saving ranking in database"); foreach (var summary in summaries) { await covid19RankingService.Create(summary); } if (serviceProvider is IDisposable disposable) { disposable.Dispose(); } log.Information("Closing and releasing driver´s resources"); rankingPage.Close(); Log.CloseAndFlush(); }
// This method gets called by the runtime. Use this method to add services to the container. public void ConfigureServices(IServiceCollection services) { var config = new SeleniumConfigurations(); Configuration.Bind("SeleniumConfigurations", config); services.AddSingleton(config); services.AddSingleton <ICnpjService, CnpjService>(); services.AddCors(o => o.AddPolicy("cors", builder => { builder .AllowAnyMethod() .AllowAnyHeader() .AllowCredentials() .WithOrigins("http://localhost:5000"); })); services.AddControllers(); services.AddSwaggerGen(); services.AddSignalR(); }
public CnpjService(SeleniumConfigurations configurations, IHubContext <HubClient, IHubClient> hubContext) { _configurations = configurations; _hubContext = hubContext; }