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); }
public LocationRequester(LocationRequesterConfiguration config, ILogger logger, IHttpClient httpClient, ICourseDbContext context) { _config = config; _logger = logger; _httpClient = httpClient; this._context = context; }