public static int Main(string[] args)
        {
            var configuration   = GetConfiguration();
            var requesterConfig = LocationRequesterConfiguration.FromConfiguration(configuration);

            var logger = new LoggerConfiguration()
                         .ReadFrom.Configuration(configuration)
                         .WriteTo
                         .ApplicationInsightsTraces(configuration["APPINSIGHTS_INSTRUMENTATIONKEY"])
                         .Enrich.WithProperty("Type", "SearchAndCompareGeocoder")
                         .Enrich.WithProperty("WebJob_Identifer", Guid.NewGuid())
                         .Enrich.WithProperty("WebJob_Triggered_Date", DateTime.UtcNow)
                         .CreateLogger();

            var options = new DbContextOptionsBuilder <CourseDbContext>()
                          .UseNpgsql(new EnvConfigConnectionStringBuilder().GetConnectionString(configuration))
                          .Options;

            var context = new CourseDbContext(options);

            logger.Information("Geocoder started.");

            // Wait() because async Mains are not supported
            var locationRequester = new LocationRequester(requesterConfig, logger, new WrappedHttpClient(), context);
            var exitcode          = locationRequester.RequestLocations().Result;

            logger.Information("Geocoder finished.");

            return(exitcode);
        }
示例#2
0
 public LocationRequester(LocationRequesterConfiguration config, ILogger logger, IHttpClient httpClient, ICourseDbContext context)
 {
     _config       = config;
     _logger       = logger;
     _httpClient   = httpClient;
     this._context = context;
 }