Skip to content

Commit c740059

Browse files
committed
Resolved #13: Add Standard Edition to seed data.
1 parent 6ddace4 commit c740059

File tree

6 files changed

+52
-3
lines changed

6 files changed

+52
-3
lines changed

src/AbpCompanyName.AbpProjectName.Application/MultiTenancy/TenantAppService.cs

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
using Abp.AutoMapper;
66
using Abp.Domain.Uow;
77
using AbpCompanyName.AbpProjectName.Authorization.Roles;
8+
using AbpCompanyName.AbpProjectName.Editions;
89
using AbpCompanyName.AbpProjectName.MultiTenancy.Dto;
910
using AbpCompanyName.AbpProjectName.Users;
1011

@@ -14,11 +15,13 @@ public class TenantAppService : AbpProjectNameAppServiceBase, ITenantAppService
1415
{
1516
private readonly TenantManager _tenantManager;
1617
private readonly RoleManager _roleManager;
18+
private readonly EditionManager _editionManager;
1719

18-
public TenantAppService(TenantManager tenantManager, RoleManager roleManager)
20+
public TenantAppService(TenantManager tenantManager, RoleManager roleManager, EditionManager editionManager)
1921
{
2022
_tenantManager = tenantManager;
2123
_roleManager = roleManager;
24+
_editionManager = editionManager;
2225
}
2326

2427
public ListResultOutput<TenantListDto> GetTenants()
@@ -35,6 +38,12 @@ public async Task CreateTenant(CreateTenantInput input)
3538
{
3639
//Create tenant
3740
var tenant = new Tenant(input.TenancyName, input.Name);
41+
var defaultEdition = await _editionManager.FindByNameAsync(EditionManager.DefaultEditionName);
42+
if (defaultEdition != null)
43+
{
44+
tenant.EditionId = defaultEdition.Id;
45+
}
46+
3847
CheckErrors(await TenantManager.CreateAsync(tenant));
3948
await CurrentUnitOfWork.SaveChangesAsync(); //To get new tenant's id.
4049

src/AbpCompanyName.AbpProjectName.Core/Editions/EditionManager.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@ namespace AbpCompanyName.AbpProjectName.Editions
66
{
77
public class EditionManager : AbpEditionManager
88
{
9+
public const string DefaultEditionName = "Standard";
10+
911
public EditionManager(
1012
IRepository<Edition> editionRepository,
1113
IRepository<EditionFeatureSetting, long> editionFeatureRepository)

src/AbpCompanyName.AbpProjectName.EntityFramework/AbpCompanyName.AbpProjectName.EntityFramework.csproj

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -130,6 +130,7 @@
130130
</Compile>
131131
<Compile Include="Migrations\Configuration.cs" />
132132
<Compile Include="AbpProjectNameDataModule.cs" />
133+
<Compile Include="Migrations\SeedData\DefaultEditionsBuilder.cs" />
133134
<Compile Include="Migrations\SeedData\DefaultLanguagesBuilder.cs" />
134135
<Compile Include="Migrations\SeedData\DefaultTenantRoleAndUserBuilder.cs" />
135136
<Compile Include="Migrations\SeedData\InitialDataBuilder.cs" />

src/AbpCompanyName.AbpProjectName.EntityFramework/Migrations/Configuration.cs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
using System.Data.Entity.Migrations;
22
using AbpCompanyName.AbpProjectName.Migrations.SeedData;
3-
using EntityFramework.DynamicFilters;
43

54
namespace AbpCompanyName.AbpProjectName.Migrations
65
{
@@ -14,7 +13,6 @@ public Configuration()
1413

1514
protected override void Seed(AbpProjectName.EntityFramework.AbpProjectNameDbContext context)
1615
{
17-
context.DisableAllFilters();
1816
new InitialDataBuilder(context).Build();
1917
}
2018
}
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
using System.Linq;
2+
using Abp.Application.Editions;
3+
using AbpCompanyName.AbpProjectName.Editions;
4+
using AbpCompanyName.AbpProjectName.EntityFramework;
5+
6+
namespace AbpCompanyName.AbpProjectName.Migrations.SeedData
7+
{
8+
public class DefaultEditionsBuilder
9+
{
10+
private readonly AbpProjectNameDbContext _context;
11+
12+
public DefaultEditionsBuilder(AbpProjectNameDbContext context)
13+
{
14+
_context = context;
15+
}
16+
17+
public void Build()
18+
{
19+
CreateEditions();
20+
}
21+
22+
private void CreateEditions()
23+
{
24+
var defaultEdition = _context.Editions.FirstOrDefault(e => e.Name == EditionManager.DefaultEditionName);
25+
if (defaultEdition == null)
26+
{
27+
defaultEdition = new Edition { Name = EditionManager.DefaultEditionName, DisplayName = EditionManager.DefaultEditionName };
28+
_context.Editions.Add(defaultEdition);
29+
_context.SaveChanges();
30+
31+
//TODO: Add desired features to the standard edition, if wanted!
32+
}
33+
}
34+
}
35+
}

src/AbpCompanyName.AbpProjectName.EntityFramework/Migrations/SeedData/InitialDataBuilder.cs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
using AbpCompanyName.AbpProjectName.EntityFramework;
2+
using EntityFramework.DynamicFilters;
23

34
namespace AbpCompanyName.AbpProjectName.Migrations.SeedData
45
{
@@ -13,6 +14,9 @@ public InitialDataBuilder(AbpProjectNameDbContext context)
1314

1415
public void Build()
1516
{
17+
_context.DisableAllFilters();
18+
19+
new DefaultEditionsBuilder(_context).Build();
1620
new DefaultTenantRoleAndUserBuilder(_context).Build();
1721
new DefaultLanguagesBuilder(_context).Build();
1822
}

0 commit comments

Comments
 (0)