// This method gets called by the runtime. Use this method to add services to the container. public void ConfigureServices(IServiceCollection services) { // Dependency Injection of AccuWeatherConfigurations (from appsetings.json) AccuWeatherConfigurations awConfigurations = Configuration.GetSection("AccuWeatherConfigurations").Get <AccuWeatherConfigurations>(); // Dependency injection singletons: // - AccuWeatherConfigurations (from appsetings.json) // - API Helpers services.AddSingleton <AccuWeatherConfigurations>(awConfigurations); services.AddSingleton <LocationAPIHelper>(); services.AddSingleton <CurrentConditionsAPIHelper>(); services.AddSingleton <ForecastAPIHelper>(); services.Configure <RequestLocalizationOptions>(opts => { opts.DefaultRequestCulture = DefaultRequestCulture; // Formatting numbers, dates, etc. opts.SupportedCultures = SupportedCultures; // UI strings that we have localized. opts.SupportedUICultures = SupportedCultures; // Culture established by cookie opts.RequestCultureProviders = new IRequestCultureProvider[] { new CookieRequestCultureProvider() { CookieName = CookieRequestCultureProvider.DefaultCookieName } }; }); services.AddControllersWithViews(); }
public BaseAPIHelper(AccuWeatherConfigurations accuWeatherConfigurations) { AccuWeatherConfigurations = accuWeatherConfigurations; LocalizedResourceManager = new System.Resources.ResourceManager("AccuWeather.Resources.ExceptionMessages", System.Reflection.Assembly.GetExecutingAssembly()); ValidateConfiguration(AccuWeatherConfigurations.ApiKey, "ApiKeyNotInformed"); ValidateConfiguration(AccuWeatherConfigurations.BaseUrl, "BaseUrlNotInformed"); Client = new HttpClient(); Client.BaseAddress = new Uri(AccuWeatherConfigurations.BaseUrl.AddEndingSlash()); Client.DefaultRequestHeaders.Accept.Clear(); Client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); APIKey = AccuWeatherConfigurations.ApiKey; }
public ForecastAPIHelper(AccuWeatherConfigurations accuWeatherConfigurations) : base(accuWeatherConfigurations) { ValidateConfiguration(accuWeatherConfigurations.CurrentConditionsAPI, "ForecastAPI"); ValidateConfiguration(accuWeatherConfigurations.CurrentConditionsAPI.ConditionsNowUrl, "Next5DaysUrl"); }
public CurrentConditionsAPIHelper(AccuWeatherConfigurations accuWeatherConfigurations) : base(accuWeatherConfigurations) { ValidateConfiguration(accuWeatherConfigurations.CurrentConditionsAPI, "CurrentConditionsAPI"); ValidateConfiguration(accuWeatherConfigurations.CurrentConditionsAPI.ConditionsNowUrl, "ConditionsNowUrl"); }
/// <summary> /// Child class from BaseAPIHelper, wrapping all the methods os AccuWeather Location API /// </summary> public LocationAPIHelper(AccuWeatherConfigurations accuWeatherConfigurations) : base(accuWeatherConfigurations) { ValidateConfiguration(accuWeatherConfigurations.LocationsAPI, "LocationsAPI"); ValidateConfiguration(accuWeatherConfigurations.LocationsAPI.GeopositionSearchUrl, "GeopositionSearchUrl"); }