Browse Source

Configure remote client temporary.

pull/5399/head
Halil İbrahim Kalkan 6 years ago
parent
commit
e2f11cc975
  1. 6
      templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor/MyCompanyName.MyProjectName.Blazor.csproj
  2. 48
      templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor/MyProjectNameBlazorModule.cs
  3. 21
      templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor/MyService.cs
  4. 12
      templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor/Program.cs

6
templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor/MyCompanyName.MyProjectName.Blazor.csproj

@ -1,4 +1,4 @@
<Project Sdk="Microsoft.NET.Sdk.Web">
<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
<TargetFramework>netstandard2.1</TargetFramework>
@ -13,7 +13,9 @@
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\..\..\..\framework\src\Volo.Abp.Core\Volo.Abp.Core.csproj" />
<ProjectReference Include="..\..\..\..\..\framework\src\Volo.Abp.Autofac\Volo.Abp.Autofac.csproj" />
<ProjectReference Include="..\..\..\..\..\framework\src\Volo.Abp.Http.Client.IdentityModel\Volo.Abp.Http.Client.IdentityModel.csproj" />
<ProjectReference Include="..\..\src\MyCompanyName.MyProjectName.HttpApi.Client\MyCompanyName.MyProjectName.HttpApi.Client.csproj" />
</ItemGroup>
</Project>

48
templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor/MyProjectNameBlazorModule.cs

@ -2,10 +2,19 @@
using System.Net.Http;
using Microsoft.AspNetCore.Components.WebAssembly.Hosting;
using Microsoft.Extensions.DependencyInjection;
using Volo.Abp.Autofac;
using Volo.Abp.Http.Client;
using Volo.Abp.Http.Client.IdentityModel;
using Volo.Abp.IdentityModel;
using Volo.Abp.Modularity;
namespace MyCompanyName.MyProjectName.Blazor
{
[DependsOn(
typeof(AbpAutofacModule),
typeof(MyProjectNameHttpApiClientModule),
typeof(AbpHttpClientIdentityModelModule)
)]
public class MyProjectNameBlazorModule : AbpModule
{
public override void ConfigureServices(ServiceConfigurationContext context)
@ -13,12 +22,47 @@ namespace MyCompanyName.MyProjectName.Blazor
var environment = context.Services.GetSingletonInstance<IWebAssemblyHostEnvironment>();
var builder = context.Services.GetSingletonInstance<WebAssemblyHostBuilder>();
context.Services.AddTransient(sp => new HttpClient
ConfigureAuthentication(context);
ConfigureRemoteServices(context);
ConfigureHttpClient(context, environment);
ConfigureUI(builder);
}
private void ConfigureAuthentication(ServiceConfigurationContext context)
{
context.Services.Configure<AbpIdentityClientOptions>(options =>
{
BaseAddress = new Uri(environment.BaseAddress)
//TODO: Get from config, automatically!
options.IdentityClients.Default.Authority = "https://localhost:44305";
options.IdentityClients.Default.GrantType = "password";
options.IdentityClients.Default.ClientId = "MyProjectName_App";
options.IdentityClients.Default.ClientSecret = "1q2w3e*";
options.IdentityClients.Default.UserName = "admin";
options.IdentityClients.Default.UserPassword = "1q2w3E*";
options.IdentityClients.Default.Scope = "MyProjectName";
});
}
private void ConfigureRemoteServices(ServiceConfigurationContext context)
{
//TODO: Get from config, automatically!
Configure<AbpRemoteServiceOptions>(options =>
{
options.RemoteServices.Default.BaseUrl = "https://localhost:44305";
});
}
private static void ConfigureUI(WebAssemblyHostBuilder builder)
{
builder.RootComponents.Add<App>("app");
}
private static void ConfigureHttpClient(ServiceConfigurationContext context, IWebAssemblyHostEnvironment environment)
{
context.Services.AddTransient(sp => new HttpClient
{
BaseAddress = new Uri(environment.BaseAddress)
});
}
}
}

21
templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor/MyService.cs

@ -0,0 +1,21 @@
using System.Threading.Tasks;
using Volo.Abp.DependencyInjection;
using Volo.Abp.Identity;
namespace MyCompanyName.MyProjectName.Blazor
{
public class MyProfileService : ITransientDependency
{
private readonly IProfileAppService _profileAppService;
public MyProfileService(IProfileAppService profileAppService)
{
_profileAppService = profileAppService;
}
public async Task<string> GetUserNameAsync()
{
return "test";
}
}
}

12
templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor/Program.cs

@ -1,7 +1,10 @@
using System.Threading.Tasks;
using Autofac;
using Microsoft.AspNetCore.Components.WebAssembly.Hosting;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Volo.Abp;
using Volo.Abp.Autofac;
namespace MyCompanyName.MyProjectName.Blazor
{
@ -11,11 +14,16 @@ namespace MyCompanyName.MyProjectName.Blazor
{
var builder = WebAssemblyHostBuilder.CreateDefault(args);
//Should be done in the ABP framework!
//TODO: Should be done in the ABP framework!
builder.Services.AddSingleton<IConfiguration>(builder.Configuration);
builder.Services.AddSingleton(builder);
builder.Services.AddApplication<MyProjectNameBlazorModule>();
builder.Services.AddApplication<MyProjectNameBlazorModule>(opts =>
{
opts.UseAutofac();
});
builder.ConfigureContainer(builder.Services.GetSingletonInstance<IServiceProviderFactory<ContainerBuilder>>());
await builder.Build().RunAsync();
}

Loading…
Cancel
Save