use GetRequiredSection and Service to inject options (#640)
This commit is contained in:
@@ -1,4 +1,4 @@
|
|||||||
using System;
|
using System;
|
||||||
using System.Net.Http;
|
using System.Net.Http;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using BlazorAdmin.Services;
|
using BlazorAdmin.Services;
|
||||||
@@ -20,9 +20,8 @@ public class Program
|
|||||||
var builder = WebAssemblyHostBuilder.CreateDefault(args);
|
var builder = WebAssemblyHostBuilder.CreateDefault(args);
|
||||||
builder.RootComponents.Add<App>("#admin");
|
builder.RootComponents.Add<App>("#admin");
|
||||||
|
|
||||||
var baseUrlConfig = new BaseUrlConfiguration();
|
var configSection = builder.Configuration.GetRequiredSection(BaseUrlConfiguration.CONFIG_NAME);
|
||||||
builder.Configuration.Bind(BaseUrlConfiguration.CONFIG_NAME, baseUrlConfig);
|
builder.Services.Configure<BaseUrlConfiguration>(configSection);
|
||||||
builder.Services.AddScoped<BaseUrlConfiguration>(sp => baseUrlConfig);
|
|
||||||
|
|
||||||
builder.Services.AddScoped(sp => new HttpClient() { BaseAddress = new Uri(builder.HostEnvironment.BaseAddress) });
|
builder.Services.AddScoped(sp => new HttpClient() { BaseAddress = new Uri(builder.HostEnvironment.BaseAddress) });
|
||||||
|
|
||||||
@@ -37,7 +36,7 @@ public class Program
|
|||||||
|
|
||||||
builder.Services.AddBlazorServices();
|
builder.Services.AddBlazorServices();
|
||||||
|
|
||||||
builder.Logging.AddConfiguration(builder.Configuration.GetSection("Logging"));
|
builder.Logging.AddConfiguration(builder.Configuration.GetRequiredSection("Logging"));
|
||||||
|
|
||||||
await ClearLocalStorageCache(builder.Services);
|
await ClearLocalStorageCache(builder.Services);
|
||||||
|
|
||||||
|
|||||||
@@ -9,6 +9,7 @@ using BlazorShared.Attributes;
|
|||||||
using BlazorShared.Interfaces;
|
using BlazorShared.Interfaces;
|
||||||
using BlazorShared.Models;
|
using BlazorShared.Models;
|
||||||
using Microsoft.Extensions.Logging;
|
using Microsoft.Extensions.Logging;
|
||||||
|
using Microsoft.Extensions.Options;
|
||||||
|
|
||||||
namespace BlazorAdmin.Services;
|
namespace BlazorAdmin.Services;
|
||||||
|
|
||||||
@@ -23,12 +24,12 @@ public class CatalogLookupDataService<TLookupData, TReponse>
|
|||||||
private readonly string _apiUrl;
|
private readonly string _apiUrl;
|
||||||
|
|
||||||
public CatalogLookupDataService(HttpClient httpClient,
|
public CatalogLookupDataService(HttpClient httpClient,
|
||||||
BaseUrlConfiguration baseUrlConfiguration,
|
IOptions<BaseUrlConfiguration> baseUrlConfiguration,
|
||||||
ILogger<CatalogLookupDataService<TLookupData, TReponse>> logger)
|
ILogger<CatalogLookupDataService<TLookupData, TReponse>> logger)
|
||||||
{
|
{
|
||||||
_httpClient = httpClient;
|
_httpClient = httpClient;
|
||||||
_logger = logger;
|
_logger = logger;
|
||||||
_apiUrl = baseUrlConfiguration.ApiBase;
|
_apiUrl = baseUrlConfiguration.Value.ApiBase;
|
||||||
}
|
}
|
||||||
|
|
||||||
public async Task<List<TLookupData>> List()
|
public async Task<List<TLookupData>> List()
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ using System.Text.Json;
|
|||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using BlazorShared;
|
using BlazorShared;
|
||||||
using BlazorShared.Models;
|
using BlazorShared.Models;
|
||||||
|
using Microsoft.Extensions.Options;
|
||||||
|
|
||||||
namespace BlazorAdmin.Services;
|
namespace BlazorAdmin.Services;
|
||||||
|
|
||||||
@@ -14,11 +15,11 @@ public class HttpService
|
|||||||
private readonly string _apiUrl;
|
private readonly string _apiUrl;
|
||||||
|
|
||||||
|
|
||||||
public HttpService(HttpClient httpClient, BaseUrlConfiguration baseUrlConfiguration, ToastService toastService)
|
public HttpService(HttpClient httpClient, IOptions<BaseUrlConfiguration> baseUrlConfiguration, ToastService toastService)
|
||||||
{
|
{
|
||||||
_httpClient = httpClient;
|
_httpClient = httpClient;
|
||||||
_toastService = toastService;
|
_toastService = toastService;
|
||||||
_apiUrl = baseUrlConfiguration.ApiBase;
|
_apiUrl = baseUrlConfiguration.Value.ApiBase;
|
||||||
}
|
}
|
||||||
|
|
||||||
public async Task<T> HttpGet<T>(string uri)
|
public async Task<T> HttpGet<T>(string uri)
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
using AutoMapper;
|
using AutoMapper;
|
||||||
using BlazorShared;
|
using BlazorShared;
|
||||||
@@ -96,8 +96,9 @@ public class Startup
|
|||||||
services.AddScoped(typeof(IAppLogger<>), typeof(LoggerAdapter<>));
|
services.AddScoped(typeof(IAppLogger<>), typeof(LoggerAdapter<>));
|
||||||
services.AddScoped<ITokenClaimsService, IdentityTokenClaimService>();
|
services.AddScoped<ITokenClaimsService, IdentityTokenClaimService>();
|
||||||
|
|
||||||
var baseUrlConfig = new BaseUrlConfiguration();
|
var configSection = Configuration.GetRequiredSection(BaseUrlConfiguration.CONFIG_NAME);
|
||||||
Configuration.Bind(BaseUrlConfiguration.CONFIG_NAME, baseUrlConfig);
|
services.Configure<BaseUrlConfiguration>(configSection);
|
||||||
|
var baseUrlConfig = configSection.Get<BaseUrlConfiguration>();
|
||||||
|
|
||||||
services.AddMemoryCache();
|
services.AddMemoryCache();
|
||||||
|
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ using System.Threading;
|
|||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using BlazorShared;
|
using BlazorShared;
|
||||||
using Microsoft.Extensions.Diagnostics.HealthChecks;
|
using Microsoft.Extensions.Diagnostics.HealthChecks;
|
||||||
|
using Microsoft.Extensions.Options;
|
||||||
|
|
||||||
namespace Microsoft.eShopWeb.Web.HealthChecks;
|
namespace Microsoft.eShopWeb.Web.HealthChecks;
|
||||||
|
|
||||||
@@ -10,9 +11,9 @@ public class ApiHealthCheck : IHealthCheck
|
|||||||
{
|
{
|
||||||
private readonly BaseUrlConfiguration _baseUrlConfiguration;
|
private readonly BaseUrlConfiguration _baseUrlConfiguration;
|
||||||
|
|
||||||
public ApiHealthCheck(BaseUrlConfiguration baseUrlConfiguration)
|
public ApiHealthCheck(IOptions<BaseUrlConfiguration> baseUrlConfiguration)
|
||||||
{
|
{
|
||||||
_baseUrlConfiguration = baseUrlConfiguration;
|
_baseUrlConfiguration = baseUrlConfiguration.Value;
|
||||||
}
|
}
|
||||||
|
|
||||||
public async Task<HealthCheckResult> CheckHealthAsync(
|
public async Task<HealthCheckResult> CheckHealthAsync(
|
||||||
|
|||||||
@@ -148,10 +148,10 @@ public class Startup
|
|||||||
config.Path = "/allservices";
|
config.Path = "/allservices";
|
||||||
});
|
});
|
||||||
|
|
||||||
|
var configSection = Configuration.GetRequiredSection(BaseUrlConfiguration.CONFIG_NAME);
|
||||||
|
services.Configure<BaseUrlConfiguration>(configSection);
|
||||||
|
var baseUrlConfig = configSection.Get<BaseUrlConfiguration>();
|
||||||
|
|
||||||
var baseUrlConfig = new BaseUrlConfiguration();
|
|
||||||
Configuration.Bind(BaseUrlConfiguration.CONFIG_NAME, baseUrlConfig);
|
|
||||||
services.AddScoped<BaseUrlConfiguration>(sp => baseUrlConfig);
|
|
||||||
// Blazor Admin Required Services for Prerendering
|
// Blazor Admin Required Services for Prerendering
|
||||||
services.AddScoped<HttpClient>(s => new HttpClient
|
services.AddScoped<HttpClient>(s => new HttpClient
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user