4 changed files with 96 additions and 11 deletions
@ -0,0 +1,21 @@ |
|||
using Microsoft.Extensions.Hosting; |
|||
using System.Threading; |
|||
using System.Threading.Tasks; |
|||
using Volo.Abp.Data; |
|||
|
|||
namespace LY.MicroService.Applications.Single.EntityFrameworkCore.DataSeeder; |
|||
|
|||
public class ApplicationSingleDataSeederWorker : BackgroundService |
|||
{ |
|||
protected IDataSeeder DataSeeder { get; } |
|||
|
|||
public ApplicationSingleDataSeederWorker(IDataSeeder dataSeeder) |
|||
{ |
|||
DataSeeder = dataSeeder; |
|||
} |
|||
|
|||
protected async override Task ExecuteAsync(CancellationToken stoppingToken) |
|||
{ |
|||
await DataSeeder.SeedAsync(); |
|||
} |
|||
} |
|||
@ -0,0 +1,53 @@ |
|||
using Microsoft.Extensions.Logging; |
|||
using Microsoft.Extensions.Logging.Abstractions; |
|||
using System.Threading.Tasks; |
|||
using Volo.Abp.Data; |
|||
using Volo.Abp.DependencyInjection; |
|||
using Volo.Abp.Guids; |
|||
using Volo.Abp.Identity; |
|||
using Volo.Abp.MultiTenancy; |
|||
|
|||
namespace LY.MicroService.Applications.Single.EntityFrameworkCore.DataSeeder; |
|||
|
|||
public class IdentityDataSeedContributor : IDataSeedContributor, ITransientDependency |
|||
{ |
|||
public ILogger<IdentityDataSeedContributor> Logger { protected get; set; } |
|||
|
|||
protected ICurrentTenant CurrentTenant { get; } |
|||
protected IGuidGenerator GuidGenerator { get; } |
|||
protected IdentityRoleManager IdentityRoleManager { get; } |
|||
|
|||
public IdentityDataSeedContributor( |
|||
ICurrentTenant currentTenant, |
|||
IGuidGenerator guidGenerator, |
|||
IdentityRoleManager identityRoleManager) |
|||
{ |
|||
CurrentTenant = currentTenant; |
|||
GuidGenerator = guidGenerator; |
|||
IdentityRoleManager = identityRoleManager; |
|||
|
|||
Logger = NullLogger<IdentityDataSeedContributor>.Instance; |
|||
} |
|||
|
|||
public async virtual Task SeedAsync(DataSeedContext context) |
|||
{ |
|||
using (CurrentTenant.Change(context.TenantId)) |
|||
{ |
|||
Logger.LogInformation("Seeding the default role Users..."); |
|||
|
|||
if (await IdentityRoleManager.FindByNameAsync("Users") == null) |
|||
{ |
|||
await IdentityRoleManager.CreateAsync( |
|||
new IdentityRole( |
|||
GuidGenerator.Create(), |
|||
"Users", |
|||
context.TenantId) |
|||
{ |
|||
IsDefault = true, |
|||
IsPublic = true, |
|||
IsStatic = true, |
|||
}); |
|||
} |
|||
} |
|||
} |
|||
} |
|||
Loading…
Reference in new issue