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();
        }
Esempio n. 2
0
        // 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();
        }
Esempio n. 3
0
 public CnpjService(SeleniumConfigurations configurations, IHubContext <HubClient, IHubClient> hubContext)
 {
     _configurations = configurations;
     _hubContext     = hubContext;
 }