mirror of https://github.com/abpframework/abp.git
committed by
GitHub
54 changed files with 3871 additions and 1320 deletions
@ -0,0 +1,7 @@ |
|||||
|
<Project> |
||||
|
<PropertyGroup> |
||||
|
<LangVersion>latest</LangVersion> |
||||
|
<Version>0.15.0</Version> |
||||
|
<NoWarn>$(NoWarn);CS1591</NoWarn> |
||||
|
</PropertyGroup> |
||||
|
</Project> |
||||
@ -1,18 +1,23 @@ |
|||||
<Project Sdk="Microsoft.NET.Sdk"> |
<Project Sdk="Microsoft.NET.Sdk"> |
||||
|
|
||||
|
<Import Project="..\..\common.props" /> |
||||
|
|
||||
<PropertyGroup> |
<PropertyGroup> |
||||
<TargetFramework>netcoreapp2.2</TargetFramework> |
<TargetFramework>netcoreapp2.2</TargetFramework> |
||||
<RootNamespace>Acme.BookStore</RootNamespace> |
<RootNamespace>Acme.BookStore</RootNamespace> |
||||
</PropertyGroup> |
</PropertyGroup> |
||||
|
|
||||
<ItemGroup> |
<ItemGroup> |
||||
<PackageReference Include="Volo.Abp.Identity.Domain" Version="0.13.0" /> |
<PackageReference Include="Volo.Abp.Identity.Domain" Version="0.15.0" /> |
||||
<PackageReference Include="Volo.Abp.PermissionManagement.Domain.Identity" Version="0.13.0" /> |
<PackageReference Include="Volo.Abp.PermissionManagement.Domain.Identity" Version="0.15.0" /> |
||||
|
<PackageReference Include="Volo.Abp.BackgroundJobs.Domain" Version="0.15.0" /> |
||||
|
<PackageReference Include="Volo.Abp.AuditLogging.Domain" Version="0.15.0" /> |
||||
|
<PackageReference Include="Volo.Abp.Auditing" Version="0.15.0" /> |
||||
<PackageReference Include="Microsoft.AspNetCore.Mvc.DataAnnotations" Version="2.2.0" /> |
<PackageReference Include="Microsoft.AspNetCore.Mvc.DataAnnotations" Version="2.2.0" /> |
||||
</ItemGroup> |
</ItemGroup> |
||||
|
|
||||
<ItemGroup> |
<ItemGroup> |
||||
<EmbeddedResource Include="\Localization\BookStore\*.json" /> |
<EmbeddedResource Include="Localization\BookStore\*.json" /> |
||||
</ItemGroup> |
</ItemGroup> |
||||
|
|
||||
</Project> |
</Project> |
||||
|
|||||
@ -0,0 +1,9 @@ |
|||||
|
namespace Acme.BookStore |
||||
|
{ |
||||
|
public static class BookStoreConsts |
||||
|
{ |
||||
|
public const string DbTablePrefix = "App"; |
||||
|
|
||||
|
public const string DbSchema = null; |
||||
|
} |
||||
|
} |
||||
@ -0,0 +1,8 @@ |
|||||
|
{ |
||||
|
"culture": "pt-BR", |
||||
|
"texts": { |
||||
|
"Menu:Home": "Principal", |
||||
|
"Welcome": "Seja bem-vindo!", |
||||
|
"LongWelcomeMessage": "Bem-vindo a esta aplicação. Este é um projeto inicial baseado no ABP framework. Para mais informações, visite abp.io." |
||||
|
} |
||||
|
} |
||||
@ -0,0 +1,53 @@ |
|||||
|
using System; |
||||
|
using Volo.Abp.Domain.Entities.Auditing; |
||||
|
using Volo.Abp.Users; |
||||
|
|
||||
|
namespace Acme.BookStore.Users |
||||
|
{ |
||||
|
/* This entity shares the same table/collection ("AbpUsers" by default) with the |
||||
|
* IdentityUser entity of the Identity module. |
||||
|
* |
||||
|
* - You can define your custom properties into this class. |
||||
|
* - You never create or delete this entity, becase it is Identity module's job. |
||||
|
* - You can query users from database with this entity. |
||||
|
* - You can update values of your custom properties. |
||||
|
*/ |
||||
|
public class AppUser : FullAuditedAggregateRoot<Guid>, IUser |
||||
|
{ |
||||
|
#region Base properties
|
||||
|
|
||||
|
/* These properties are shared with the IdentityUser entity of the Identity module. |
||||
|
* Do not change these properties through this class. Instead, use Identity module |
||||
|
* services (like IdentityUserManager) to change them. |
||||
|
* So, this properties are designed as read only! |
||||
|
*/ |
||||
|
|
||||
|
public virtual Guid? TenantId { get; private set; } |
||||
|
|
||||
|
public virtual string UserName { get; private set; } |
||||
|
|
||||
|
public virtual string Name { get; private set; } |
||||
|
|
||||
|
public virtual string Surname { get; private set; } |
||||
|
|
||||
|
public virtual string Email { get; private set; } |
||||
|
|
||||
|
public virtual bool EmailConfirmed { get; private set; } |
||||
|
|
||||
|
public virtual string PhoneNumber { get; private set; } |
||||
|
|
||||
|
public virtual bool PhoneNumberConfirmed { get; private set; } |
||||
|
|
||||
|
#endregion
|
||||
|
|
||||
|
/* Add your own properties here. Example: |
||||
|
* |
||||
|
* public virtual string MyProperty { get; set; } |
||||
|
*/ |
||||
|
|
||||
|
private AppUser() |
||||
|
{ |
||||
|
|
||||
|
} |
||||
|
} |
||||
|
} |
||||
@ -0,0 +1,14 @@ |
|||||
|
<Project Sdk="Microsoft.NET.Sdk"> |
||||
|
|
||||
|
<Import Project="..\..\common.props" /> |
||||
|
|
||||
|
<PropertyGroup> |
||||
|
<TargetFramework>netcoreapp2.2</TargetFramework> |
||||
|
<RootNamespace>Acme.BookStore</RootNamespace> |
||||
|
</PropertyGroup> |
||||
|
|
||||
|
<ItemGroup> |
||||
|
<ProjectReference Include="..\Acme.BookStore.EntityFrameworkCore\Acme.BookStore.EntityFrameworkCore.csproj" /> |
||||
|
</ItemGroup> |
||||
|
|
||||
|
</Project> |
||||
@ -0,0 +1,45 @@ |
|||||
|
using Microsoft.EntityFrameworkCore; |
||||
|
using Volo.Abp.AuditLogging.EntityFrameworkCore; |
||||
|
using Volo.Abp.BackgroundJobs.EntityFrameworkCore; |
||||
|
using Volo.Abp.EntityFrameworkCore; |
||||
|
using Volo.Abp.Identity; |
||||
|
using Volo.Abp.Identity.EntityFrameworkCore; |
||||
|
using Volo.Abp.PermissionManagement.EntityFrameworkCore; |
||||
|
using Volo.Abp.SettingManagement.EntityFrameworkCore; |
||||
|
|
||||
|
namespace Acme.BookStore.EntityFrameworkCore |
||||
|
{ |
||||
|
public class BookStoreMigrationsDbContext : AbpDbContext<BookStoreMigrationsDbContext> |
||||
|
{ |
||||
|
public DbSet<Book> Book { get; set; } |
||||
|
public BookStoreMigrationsDbContext(DbContextOptions<BookStoreMigrationsDbContext> options) |
||||
|
: base(options) |
||||
|
{ |
||||
|
|
||||
|
} |
||||
|
|
||||
|
protected override void OnModelCreating(ModelBuilder builder) |
||||
|
{ |
||||
|
base.OnModelCreating(builder); |
||||
|
|
||||
|
/* Include modules to your migration db context */ |
||||
|
|
||||
|
builder.ConfigurePermissionManagement(); |
||||
|
builder.ConfigureSettingManagement(); |
||||
|
builder.ConfigureBackgroundJobs(); |
||||
|
builder.ConfigureAuditLogging(); |
||||
|
builder.ConfigureIdentity(); |
||||
|
|
||||
|
/* Configure customizations for entities from the modules included */ |
||||
|
|
||||
|
builder.Entity<IdentityUser>(b => |
||||
|
{ |
||||
|
b.ConfigureCustomUserProperties(); |
||||
|
}); |
||||
|
|
||||
|
/* Configure your own tables/entities inside the ConfigureBookStore method */ |
||||
|
|
||||
|
builder.ConfigureBookStore(); |
||||
|
} |
||||
|
} |
||||
|
} |
||||
@ -1,16 +1,20 @@ |
|||||
<Project Sdk="Microsoft.NET.Sdk"> |
<Project Sdk="Microsoft.NET.Sdk"> |
||||
|
|
||||
|
<Import Project="..\..\common.props" /> |
||||
|
|
||||
<PropertyGroup> |
<PropertyGroup> |
||||
<TargetFramework>netcoreapp2.2</TargetFramework> |
<TargetFramework>netcoreapp2.2</TargetFramework> |
||||
<RootNamespace>Acme.BookStore</RootNamespace> |
<RootNamespace>Acme.BookStore</RootNamespace> |
||||
</PropertyGroup> |
</PropertyGroup> |
||||
|
|
||||
<ItemGroup> |
<ItemGroup> |
||||
<ProjectReference Include="..\Acme.BookStore.Domain\Acme.BookStore.Domain.csproj" /> |
<ProjectReference Include="..\Acme.BookStore.Domain\Acme.BookStore.Domain.csproj" /> |
||||
<PackageReference Include="Volo.Abp.PermissionManagement.EntityFrameworkCore" Version="0.13.0" /> |
<PackageReference Include="Volo.Abp.PermissionManagement.EntityFrameworkCore" Version="0.15.0" /> |
||||
<PackageReference Include="Volo.Abp.SettingManagement.EntityFrameworkCore" Version="0.13.0" /> |
<PackageReference Include="Volo.Abp.SettingManagement.EntityFrameworkCore" Version="0.15.0" /> |
||||
<PackageReference Include="Volo.Abp.Identity.EntityFrameworkCore" Version="0.13.0" /> |
<PackageReference Include="Volo.Abp.Identity.EntityFrameworkCore" Version="0.15.0" /> |
||||
<PackageReference Include="Volo.Abp.EntityFrameworkCore.SqlServer" Version="0.13.0" /> |
<PackageReference Include="Volo.Abp.BackgroundJobs.EntityFrameworkCore" Version="0.15.0" /> |
||||
|
<PackageReference Include="Volo.Abp.AuditLogging.EntityFrameworkCore" Version="0.15.0" /> |
||||
|
<PackageReference Include="Volo.Abp.EntityFrameworkCore.SqlServer" Version="0.15.0" /> |
||||
</ItemGroup> |
</ItemGroup> |
||||
|
|
||||
</Project> |
</Project> |
||||
|
|||||
@ -0,0 +1,30 @@ |
|||||
|
using Microsoft.EntityFrameworkCore; |
||||
|
using Microsoft.EntityFrameworkCore.Metadata.Builders; |
||||
|
using Volo.Abp; |
||||
|
using Volo.Abp.Users; |
||||
|
|
||||
|
namespace Acme.BookStore.EntityFrameworkCore |
||||
|
{ |
||||
|
public static class BookStoreDbContextModelCreatingExtensions |
||||
|
{ |
||||
|
public static void ConfigureBookStore(this ModelBuilder builder) |
||||
|
{ |
||||
|
Check.NotNull(builder, nameof(builder)); |
||||
|
|
||||
|
/* Configure your own tables/entities inside here */ |
||||
|
|
||||
|
//builder.Entity<YourEntity>(b =>
|
||||
|
//{
|
||||
|
// b.ToTable(BookStoreConsts.DbTablePrefix + "YourEntities", BookStoreConsts.DbSchema);
|
||||
|
|
||||
|
// //...
|
||||
|
//});
|
||||
|
} |
||||
|
|
||||
|
public static void ConfigureCustomUserProperties<TUser>(this EntityTypeBuilder<TUser> b) |
||||
|
where TUser: class, IUser |
||||
|
{ |
||||
|
//b.Property<string>(nameof(AppUser.MyProperty))...
|
||||
|
} |
||||
|
} |
||||
|
} |
||||
@ -1,397 +0,0 @@ |
|||||
// <auto-generated />
|
|
||||
using System; |
|
||||
using Acme.BookStore.EntityFrameworkCore; |
|
||||
using Microsoft.EntityFrameworkCore; |
|
||||
using Microsoft.EntityFrameworkCore.Infrastructure; |
|
||||
using Microsoft.EntityFrameworkCore.Metadata; |
|
||||
using Microsoft.EntityFrameworkCore.Migrations; |
|
||||
using Microsoft.EntityFrameworkCore.Storage.ValueConversion; |
|
||||
|
|
||||
namespace Acme.BookStore.Migrations |
|
||||
{ |
|
||||
[DbContext(typeof(BookStoreDbContext))] |
|
||||
[Migration("20181204060805_Initial")] |
|
||||
partial class Initial |
|
||||
{ |
|
||||
protected override void BuildTargetModel(ModelBuilder modelBuilder) |
|
||||
{ |
|
||||
#pragma warning disable 612, 618
|
|
||||
modelBuilder |
|
||||
.HasAnnotation("ProductVersion", "2.1.1-rtm-30846") |
|
||||
.HasAnnotation("Relational:MaxIdentifierLength", 128) |
|
||||
.HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); |
|
||||
|
|
||||
modelBuilder.Entity("Volo.Abp.Identity.IdentityClaimType", b => |
|
||||
{ |
|
||||
b.Property<Guid>("Id") |
|
||||
.ValueGeneratedOnAdd(); |
|
||||
|
|
||||
b.Property<string>("Description") |
|
||||
.HasMaxLength(256); |
|
||||
|
|
||||
b.Property<bool>("IsStatic"); |
|
||||
|
|
||||
b.Property<string>("Name") |
|
||||
.IsRequired() |
|
||||
.HasMaxLength(256); |
|
||||
|
|
||||
b.Property<string>("Regex") |
|
||||
.HasMaxLength(512); |
|
||||
|
|
||||
b.Property<string>("RegexDescription") |
|
||||
.HasMaxLength(128); |
|
||||
|
|
||||
b.Property<bool>("Required"); |
|
||||
|
|
||||
b.Property<int>("ValueType"); |
|
||||
|
|
||||
b.HasKey("Id"); |
|
||||
|
|
||||
b.ToTable("AbpClaimTypes"); |
|
||||
}); |
|
||||
|
|
||||
modelBuilder.Entity("Volo.Abp.Identity.IdentityRole", b => |
|
||||
{ |
|
||||
b.Property<Guid>("Id") |
|
||||
.ValueGeneratedOnAdd(); |
|
||||
|
|
||||
b.Property<string>("ConcurrencyStamp"); |
|
||||
|
|
||||
b.Property<bool>("IsDefault") |
|
||||
.HasColumnName("IsDefault"); |
|
||||
|
|
||||
b.Property<bool>("IsPublic") |
|
||||
.HasColumnName("IsPublic"); |
|
||||
|
|
||||
b.Property<bool>("IsStatic") |
|
||||
.HasColumnName("IsStatic"); |
|
||||
|
|
||||
b.Property<string>("Name") |
|
||||
.IsRequired() |
|
||||
.HasMaxLength(256); |
|
||||
|
|
||||
b.Property<string>("NormalizedName") |
|
||||
.IsRequired() |
|
||||
.HasMaxLength(256); |
|
||||
|
|
||||
b.Property<Guid?>("TenantId"); |
|
||||
|
|
||||
b.HasKey("Id"); |
|
||||
|
|
||||
b.HasIndex("NormalizedName"); |
|
||||
|
|
||||
b.ToTable("AbpRoles"); |
|
||||
}); |
|
||||
|
|
||||
modelBuilder.Entity("Volo.Abp.Identity.IdentityRoleClaim", b => |
|
||||
{ |
|
||||
b.Property<Guid>("Id") |
|
||||
.ValueGeneratedOnAdd(); |
|
||||
|
|
||||
b.Property<string>("ClaimType") |
|
||||
.IsRequired() |
|
||||
.HasMaxLength(256); |
|
||||
|
|
||||
b.Property<string>("ClaimValue") |
|
||||
.HasMaxLength(1024); |
|
||||
|
|
||||
b.Property<Guid>("RoleId"); |
|
||||
|
|
||||
b.Property<Guid?>("TenantId"); |
|
||||
|
|
||||
b.HasKey("Id"); |
|
||||
|
|
||||
b.HasIndex("RoleId"); |
|
||||
|
|
||||
b.ToTable("AbpRoleClaims"); |
|
||||
}); |
|
||||
|
|
||||
modelBuilder.Entity("Volo.Abp.Identity.IdentityUser", b => |
|
||||
{ |
|
||||
b.Property<Guid>("Id") |
|
||||
.ValueGeneratedOnAdd(); |
|
||||
|
|
||||
b.Property<int>("AccessFailedCount") |
|
||||
.ValueGeneratedOnAdd() |
|
||||
.HasColumnName("AccessFailedCount") |
|
||||
.HasDefaultValue(0); |
|
||||
|
|
||||
b.Property<string>("ConcurrencyStamp") |
|
||||
.IsRequired() |
|
||||
.HasColumnName("ConcurrencyStamp") |
|
||||
.HasMaxLength(256); |
|
||||
|
|
||||
b.Property<DateTime>("CreationTime"); |
|
||||
|
|
||||
b.Property<Guid?>("CreatorId"); |
|
||||
|
|
||||
b.Property<Guid?>("DeleterId"); |
|
||||
|
|
||||
b.Property<DateTime?>("DeletionTime"); |
|
||||
|
|
||||
b.Property<string>("Email") |
|
||||
.HasColumnName("Email") |
|
||||
.HasMaxLength(256); |
|
||||
|
|
||||
b.Property<bool>("EmailConfirmed") |
|
||||
.ValueGeneratedOnAdd() |
|
||||
.HasColumnName("EmailConfirmed") |
|
||||
.HasDefaultValue(false); |
|
||||
|
|
||||
b.Property<string>("ExtraProperties") |
|
||||
.HasColumnName("ExtraProperties"); |
|
||||
|
|
||||
b.Property<bool>("IsDeleted"); |
|
||||
|
|
||||
b.Property<DateTime?>("LastModificationTime"); |
|
||||
|
|
||||
b.Property<Guid?>("LastModifierId"); |
|
||||
|
|
||||
b.Property<bool>("LockoutEnabled") |
|
||||
.ValueGeneratedOnAdd() |
|
||||
.HasColumnName("LockoutEnabled") |
|
||||
.HasDefaultValue(false); |
|
||||
|
|
||||
b.Property<DateTimeOffset?>("LockoutEnd"); |
|
||||
|
|
||||
b.Property<string>("Name") |
|
||||
.HasColumnName("Name") |
|
||||
.HasMaxLength(64); |
|
||||
|
|
||||
b.Property<string>("NormalizedEmail") |
|
||||
.HasColumnName("NormalizedEmail") |
|
||||
.HasMaxLength(256); |
|
||||
|
|
||||
b.Property<string>("NormalizedUserName") |
|
||||
.IsRequired() |
|
||||
.HasColumnName("NormalizedUserName") |
|
||||
.HasMaxLength(256); |
|
||||
|
|
||||
b.Property<string>("PasswordHash") |
|
||||
.HasColumnName("PasswordHash") |
|
||||
.HasMaxLength(256); |
|
||||
|
|
||||
b.Property<string>("PhoneNumber") |
|
||||
.HasColumnName("PhoneNumber") |
|
||||
.HasMaxLength(16); |
|
||||
|
|
||||
b.Property<bool>("PhoneNumberConfirmed") |
|
||||
.ValueGeneratedOnAdd() |
|
||||
.HasColumnName("PhoneNumberConfirmed") |
|
||||
.HasDefaultValue(false); |
|
||||
|
|
||||
b.Property<string>("SecurityStamp") |
|
||||
.IsRequired() |
|
||||
.HasColumnName("SecurityStamp") |
|
||||
.HasMaxLength(256); |
|
||||
|
|
||||
b.Property<string>("Surname") |
|
||||
.HasColumnName("Surname") |
|
||||
.HasMaxLength(64); |
|
||||
|
|
||||
b.Property<Guid?>("TenantId") |
|
||||
.HasColumnName("TenantId"); |
|
||||
|
|
||||
b.Property<bool>("TwoFactorEnabled") |
|
||||
.ValueGeneratedOnAdd() |
|
||||
.HasColumnName("TwoFactorEnabled") |
|
||||
.HasDefaultValue(false); |
|
||||
|
|
||||
b.Property<string>("UserName") |
|
||||
.IsRequired() |
|
||||
.HasColumnName("UserName") |
|
||||
.HasMaxLength(256); |
|
||||
|
|
||||
b.HasKey("Id"); |
|
||||
|
|
||||
b.HasIndex("Email"); |
|
||||
|
|
||||
b.HasIndex("NormalizedEmail"); |
|
||||
|
|
||||
b.HasIndex("NormalizedUserName"); |
|
||||
|
|
||||
b.HasIndex("UserName"); |
|
||||
|
|
||||
b.ToTable("AbpUsers"); |
|
||||
}); |
|
||||
|
|
||||
modelBuilder.Entity("Volo.Abp.Identity.IdentityUserClaim", b => |
|
||||
{ |
|
||||
b.Property<Guid>("Id") |
|
||||
.ValueGeneratedOnAdd(); |
|
||||
|
|
||||
b.Property<string>("ClaimType") |
|
||||
.IsRequired() |
|
||||
.HasMaxLength(256); |
|
||||
|
|
||||
b.Property<string>("ClaimValue") |
|
||||
.HasMaxLength(1024); |
|
||||
|
|
||||
b.Property<Guid?>("TenantId"); |
|
||||
|
|
||||
b.Property<Guid>("UserId"); |
|
||||
|
|
||||
b.HasKey("Id"); |
|
||||
|
|
||||
b.HasIndex("UserId"); |
|
||||
|
|
||||
b.ToTable("AbpUserClaims"); |
|
||||
}); |
|
||||
|
|
||||
modelBuilder.Entity("Volo.Abp.Identity.IdentityUserLogin", b => |
|
||||
{ |
|
||||
b.Property<Guid>("UserId"); |
|
||||
|
|
||||
b.Property<string>("LoginProvider") |
|
||||
.HasMaxLength(64); |
|
||||
|
|
||||
b.Property<string>("ProviderDisplayName") |
|
||||
.HasMaxLength(128); |
|
||||
|
|
||||
b.Property<string>("ProviderKey") |
|
||||
.IsRequired() |
|
||||
.HasMaxLength(196); |
|
||||
|
|
||||
b.Property<Guid?>("TenantId"); |
|
||||
|
|
||||
b.HasKey("UserId", "LoginProvider"); |
|
||||
|
|
||||
b.HasIndex("LoginProvider", "ProviderKey"); |
|
||||
|
|
||||
b.ToTable("AbpUserLogins"); |
|
||||
}); |
|
||||
|
|
||||
modelBuilder.Entity("Volo.Abp.Identity.IdentityUserRole", b => |
|
||||
{ |
|
||||
b.Property<Guid>("UserId"); |
|
||||
|
|
||||
b.Property<Guid>("RoleId"); |
|
||||
|
|
||||
b.Property<Guid?>("TenantId"); |
|
||||
|
|
||||
b.HasKey("UserId", "RoleId"); |
|
||||
|
|
||||
b.HasIndex("RoleId", "UserId"); |
|
||||
|
|
||||
b.ToTable("AbpUserRoles"); |
|
||||
}); |
|
||||
|
|
||||
modelBuilder.Entity("Volo.Abp.Identity.IdentityUserToken", b => |
|
||||
{ |
|
||||
b.Property<Guid>("UserId"); |
|
||||
|
|
||||
b.Property<string>("LoginProvider") |
|
||||
.HasMaxLength(64); |
|
||||
|
|
||||
b.Property<string>("Name") |
|
||||
.HasMaxLength(128); |
|
||||
|
|
||||
b.Property<Guid?>("TenantId"); |
|
||||
|
|
||||
b.Property<string>("Value"); |
|
||||
|
|
||||
b.HasKey("UserId", "LoginProvider", "Name"); |
|
||||
|
|
||||
b.ToTable("AbpUserTokens"); |
|
||||
}); |
|
||||
|
|
||||
modelBuilder.Entity("Volo.Abp.PermissionManagement.PermissionGrant", b => |
|
||||
{ |
|
||||
b.Property<Guid>("Id") |
|
||||
.ValueGeneratedOnAdd(); |
|
||||
|
|
||||
b.Property<string>("Name") |
|
||||
.IsRequired() |
|
||||
.HasMaxLength(128); |
|
||||
|
|
||||
b.Property<string>("ProviderKey") |
|
||||
.IsRequired() |
|
||||
.HasMaxLength(64); |
|
||||
|
|
||||
b.Property<string>("ProviderName") |
|
||||
.IsRequired() |
|
||||
.HasMaxLength(64); |
|
||||
|
|
||||
b.Property<Guid?>("TenantId"); |
|
||||
|
|
||||
b.HasKey("Id"); |
|
||||
|
|
||||
b.HasIndex("Name", "ProviderName", "ProviderKey"); |
|
||||
|
|
||||
b.ToTable("AbpPermissionGrants"); |
|
||||
}); |
|
||||
|
|
||||
modelBuilder.Entity("Volo.Abp.SettingManagement.Setting", b => |
|
||||
{ |
|
||||
b.Property<Guid>("Id") |
|
||||
.ValueGeneratedOnAdd(); |
|
||||
|
|
||||
b.Property<string>("Name") |
|
||||
.IsRequired() |
|
||||
.HasMaxLength(128); |
|
||||
|
|
||||
b.Property<string>("ProviderKey") |
|
||||
.HasMaxLength(64); |
|
||||
|
|
||||
b.Property<string>("ProviderName") |
|
||||
.HasMaxLength(64); |
|
||||
|
|
||||
b.Property<string>("Value") |
|
||||
.IsRequired() |
|
||||
.HasMaxLength(2048); |
|
||||
|
|
||||
b.HasKey("Id"); |
|
||||
|
|
||||
b.HasIndex("Name", "ProviderName", "ProviderKey"); |
|
||||
|
|
||||
b.ToTable("AbpSettings"); |
|
||||
}); |
|
||||
|
|
||||
modelBuilder.Entity("Volo.Abp.Identity.IdentityRoleClaim", b => |
|
||||
{ |
|
||||
b.HasOne("Volo.Abp.Identity.IdentityRole") |
|
||||
.WithMany("Claims") |
|
||||
.HasForeignKey("RoleId") |
|
||||
.OnDelete(DeleteBehavior.Cascade); |
|
||||
}); |
|
||||
|
|
||||
modelBuilder.Entity("Volo.Abp.Identity.IdentityUserClaim", b => |
|
||||
{ |
|
||||
b.HasOne("Volo.Abp.Identity.IdentityUser") |
|
||||
.WithMany("Claims") |
|
||||
.HasForeignKey("UserId") |
|
||||
.OnDelete(DeleteBehavior.Cascade); |
|
||||
}); |
|
||||
|
|
||||
modelBuilder.Entity("Volo.Abp.Identity.IdentityUserLogin", b => |
|
||||
{ |
|
||||
b.HasOne("Volo.Abp.Identity.IdentityUser") |
|
||||
.WithMany("Logins") |
|
||||
.HasForeignKey("UserId") |
|
||||
.OnDelete(DeleteBehavior.Cascade); |
|
||||
}); |
|
||||
|
|
||||
modelBuilder.Entity("Volo.Abp.Identity.IdentityUserRole", b => |
|
||||
{ |
|
||||
b.HasOne("Volo.Abp.Identity.IdentityRole") |
|
||||
.WithMany() |
|
||||
.HasForeignKey("RoleId") |
|
||||
.OnDelete(DeleteBehavior.Cascade); |
|
||||
|
|
||||
b.HasOne("Volo.Abp.Identity.IdentityUser") |
|
||||
.WithMany("Roles") |
|
||||
.HasForeignKey("UserId") |
|
||||
.OnDelete(DeleteBehavior.Cascade); |
|
||||
}); |
|
||||
|
|
||||
modelBuilder.Entity("Volo.Abp.Identity.IdentityUserToken", b => |
|
||||
{ |
|
||||
b.HasOne("Volo.Abp.Identity.IdentityUser") |
|
||||
.WithMany("Tokens") |
|
||||
.HasForeignKey("UserId") |
|
||||
.OnDelete(DeleteBehavior.Cascade); |
|
||||
}); |
|
||||
#pragma warning restore 612, 618
|
|
||||
} |
|
||||
} |
|
||||
} |
|
||||
@ -1,425 +0,0 @@ |
|||||
// <auto-generated />
|
|
||||
using System; |
|
||||
using Acme.BookStore.EntityFrameworkCore; |
|
||||
using Microsoft.EntityFrameworkCore; |
|
||||
using Microsoft.EntityFrameworkCore.Infrastructure; |
|
||||
using Microsoft.EntityFrameworkCore.Metadata; |
|
||||
using Microsoft.EntityFrameworkCore.Migrations; |
|
||||
using Microsoft.EntityFrameworkCore.Storage.ValueConversion; |
|
||||
|
|
||||
namespace Acme.BookStore.Migrations |
|
||||
{ |
|
||||
[DbContext(typeof(BookStoreDbContext))] |
|
||||
[Migration("20181204060902_Created_Book_Entity")] |
|
||||
partial class Created_Book_Entity |
|
||||
{ |
|
||||
protected override void BuildTargetModel(ModelBuilder modelBuilder) |
|
||||
{ |
|
||||
#pragma warning disable 612, 618
|
|
||||
modelBuilder |
|
||||
.HasAnnotation("ProductVersion", "2.1.1-rtm-30846") |
|
||||
.HasAnnotation("Relational:MaxIdentifierLength", 128) |
|
||||
.HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); |
|
||||
|
|
||||
modelBuilder.Entity("Acme.BookStore.Book", b => |
|
||||
{ |
|
||||
b.Property<Guid>("Id") |
|
||||
.ValueGeneratedOnAdd(); |
|
||||
|
|
||||
b.Property<DateTime>("CreationTime"); |
|
||||
|
|
||||
b.Property<Guid?>("CreatorId"); |
|
||||
|
|
||||
b.Property<DateTime?>("LastModificationTime"); |
|
||||
|
|
||||
b.Property<Guid?>("LastModifierId"); |
|
||||
|
|
||||
b.Property<string>("Name") |
|
||||
.IsRequired() |
|
||||
.HasMaxLength(128); |
|
||||
|
|
||||
b.Property<float>("Price"); |
|
||||
|
|
||||
b.Property<DateTime>("PublishDate"); |
|
||||
|
|
||||
b.Property<byte>("Type"); |
|
||||
|
|
||||
b.HasKey("Id"); |
|
||||
|
|
||||
b.ToTable("Books"); |
|
||||
}); |
|
||||
|
|
||||
modelBuilder.Entity("Volo.Abp.Identity.IdentityClaimType", b => |
|
||||
{ |
|
||||
b.Property<Guid>("Id") |
|
||||
.ValueGeneratedOnAdd(); |
|
||||
|
|
||||
b.Property<string>("Description") |
|
||||
.HasMaxLength(256); |
|
||||
|
|
||||
b.Property<bool>("IsStatic"); |
|
||||
|
|
||||
b.Property<string>("Name") |
|
||||
.IsRequired() |
|
||||
.HasMaxLength(256); |
|
||||
|
|
||||
b.Property<string>("Regex") |
|
||||
.HasMaxLength(512); |
|
||||
|
|
||||
b.Property<string>("RegexDescription") |
|
||||
.HasMaxLength(128); |
|
||||
|
|
||||
b.Property<bool>("Required"); |
|
||||
|
|
||||
b.Property<int>("ValueType"); |
|
||||
|
|
||||
b.HasKey("Id"); |
|
||||
|
|
||||
b.ToTable("AbpClaimTypes"); |
|
||||
}); |
|
||||
|
|
||||
modelBuilder.Entity("Volo.Abp.Identity.IdentityRole", b => |
|
||||
{ |
|
||||
b.Property<Guid>("Id") |
|
||||
.ValueGeneratedOnAdd(); |
|
||||
|
|
||||
b.Property<string>("ConcurrencyStamp"); |
|
||||
|
|
||||
b.Property<bool>("IsDefault") |
|
||||
.HasColumnName("IsDefault"); |
|
||||
|
|
||||
b.Property<bool>("IsPublic") |
|
||||
.HasColumnName("IsPublic"); |
|
||||
|
|
||||
b.Property<bool>("IsStatic") |
|
||||
.HasColumnName("IsStatic"); |
|
||||
|
|
||||
b.Property<string>("Name") |
|
||||
.IsRequired() |
|
||||
.HasMaxLength(256); |
|
||||
|
|
||||
b.Property<string>("NormalizedName") |
|
||||
.IsRequired() |
|
||||
.HasMaxLength(256); |
|
||||
|
|
||||
b.Property<Guid?>("TenantId"); |
|
||||
|
|
||||
b.HasKey("Id"); |
|
||||
|
|
||||
b.HasIndex("NormalizedName"); |
|
||||
|
|
||||
b.ToTable("AbpRoles"); |
|
||||
}); |
|
||||
|
|
||||
modelBuilder.Entity("Volo.Abp.Identity.IdentityRoleClaim", b => |
|
||||
{ |
|
||||
b.Property<Guid>("Id") |
|
||||
.ValueGeneratedOnAdd(); |
|
||||
|
|
||||
b.Property<string>("ClaimType") |
|
||||
.IsRequired() |
|
||||
.HasMaxLength(256); |
|
||||
|
|
||||
b.Property<string>("ClaimValue") |
|
||||
.HasMaxLength(1024); |
|
||||
|
|
||||
b.Property<Guid>("RoleId"); |
|
||||
|
|
||||
b.Property<Guid?>("TenantId"); |
|
||||
|
|
||||
b.HasKey("Id"); |
|
||||
|
|
||||
b.HasIndex("RoleId"); |
|
||||
|
|
||||
b.ToTable("AbpRoleClaims"); |
|
||||
}); |
|
||||
|
|
||||
modelBuilder.Entity("Volo.Abp.Identity.IdentityUser", b => |
|
||||
{ |
|
||||
b.Property<Guid>("Id") |
|
||||
.ValueGeneratedOnAdd(); |
|
||||
|
|
||||
b.Property<int>("AccessFailedCount") |
|
||||
.ValueGeneratedOnAdd() |
|
||||
.HasColumnName("AccessFailedCount") |
|
||||
.HasDefaultValue(0); |
|
||||
|
|
||||
b.Property<string>("ConcurrencyStamp") |
|
||||
.IsRequired() |
|
||||
.HasColumnName("ConcurrencyStamp") |
|
||||
.HasMaxLength(256); |
|
||||
|
|
||||
b.Property<DateTime>("CreationTime"); |
|
||||
|
|
||||
b.Property<Guid?>("CreatorId"); |
|
||||
|
|
||||
b.Property<Guid?>("DeleterId"); |
|
||||
|
|
||||
b.Property<DateTime?>("DeletionTime"); |
|
||||
|
|
||||
b.Property<string>("Email") |
|
||||
.HasColumnName("Email") |
|
||||
.HasMaxLength(256); |
|
||||
|
|
||||
b.Property<bool>("EmailConfirmed") |
|
||||
.ValueGeneratedOnAdd() |
|
||||
.HasColumnName("EmailConfirmed") |
|
||||
.HasDefaultValue(false); |
|
||||
|
|
||||
b.Property<string>("ExtraProperties") |
|
||||
.HasColumnName("ExtraProperties"); |
|
||||
|
|
||||
b.Property<bool>("IsDeleted"); |
|
||||
|
|
||||
b.Property<DateTime?>("LastModificationTime"); |
|
||||
|
|
||||
b.Property<Guid?>("LastModifierId"); |
|
||||
|
|
||||
b.Property<bool>("LockoutEnabled") |
|
||||
.ValueGeneratedOnAdd() |
|
||||
.HasColumnName("LockoutEnabled") |
|
||||
.HasDefaultValue(false); |
|
||||
|
|
||||
b.Property<DateTimeOffset?>("LockoutEnd"); |
|
||||
|
|
||||
b.Property<string>("Name") |
|
||||
.HasColumnName("Name") |
|
||||
.HasMaxLength(64); |
|
||||
|
|
||||
b.Property<string>("NormalizedEmail") |
|
||||
.HasColumnName("NormalizedEmail") |
|
||||
.HasMaxLength(256); |
|
||||
|
|
||||
b.Property<string>("NormalizedUserName") |
|
||||
.IsRequired() |
|
||||
.HasColumnName("NormalizedUserName") |
|
||||
.HasMaxLength(256); |
|
||||
|
|
||||
b.Property<string>("PasswordHash") |
|
||||
.HasColumnName("PasswordHash") |
|
||||
.HasMaxLength(256); |
|
||||
|
|
||||
b.Property<string>("PhoneNumber") |
|
||||
.HasColumnName("PhoneNumber") |
|
||||
.HasMaxLength(16); |
|
||||
|
|
||||
b.Property<bool>("PhoneNumberConfirmed") |
|
||||
.ValueGeneratedOnAdd() |
|
||||
.HasColumnName("PhoneNumberConfirmed") |
|
||||
.HasDefaultValue(false); |
|
||||
|
|
||||
b.Property<string>("SecurityStamp") |
|
||||
.IsRequired() |
|
||||
.HasColumnName("SecurityStamp") |
|
||||
.HasMaxLength(256); |
|
||||
|
|
||||
b.Property<string>("Surname") |
|
||||
.HasColumnName("Surname") |
|
||||
.HasMaxLength(64); |
|
||||
|
|
||||
b.Property<Guid?>("TenantId") |
|
||||
.HasColumnName("TenantId"); |
|
||||
|
|
||||
b.Property<bool>("TwoFactorEnabled") |
|
||||
.ValueGeneratedOnAdd() |
|
||||
.HasColumnName("TwoFactorEnabled") |
|
||||
.HasDefaultValue(false); |
|
||||
|
|
||||
b.Property<string>("UserName") |
|
||||
.IsRequired() |
|
||||
.HasColumnName("UserName") |
|
||||
.HasMaxLength(256); |
|
||||
|
|
||||
b.HasKey("Id"); |
|
||||
|
|
||||
b.HasIndex("Email"); |
|
||||
|
|
||||
b.HasIndex("NormalizedEmail"); |
|
||||
|
|
||||
b.HasIndex("NormalizedUserName"); |
|
||||
|
|
||||
b.HasIndex("UserName"); |
|
||||
|
|
||||
b.ToTable("AbpUsers"); |
|
||||
}); |
|
||||
|
|
||||
modelBuilder.Entity("Volo.Abp.Identity.IdentityUserClaim", b => |
|
||||
{ |
|
||||
b.Property<Guid>("Id") |
|
||||
.ValueGeneratedOnAdd(); |
|
||||
|
|
||||
b.Property<string>("ClaimType") |
|
||||
.IsRequired() |
|
||||
.HasMaxLength(256); |
|
||||
|
|
||||
b.Property<string>("ClaimValue") |
|
||||
.HasMaxLength(1024); |
|
||||
|
|
||||
b.Property<Guid?>("TenantId"); |
|
||||
|
|
||||
b.Property<Guid>("UserId"); |
|
||||
|
|
||||
b.HasKey("Id"); |
|
||||
|
|
||||
b.HasIndex("UserId"); |
|
||||
|
|
||||
b.ToTable("AbpUserClaims"); |
|
||||
}); |
|
||||
|
|
||||
modelBuilder.Entity("Volo.Abp.Identity.IdentityUserLogin", b => |
|
||||
{ |
|
||||
b.Property<Guid>("UserId"); |
|
||||
|
|
||||
b.Property<string>("LoginProvider") |
|
||||
.HasMaxLength(64); |
|
||||
|
|
||||
b.Property<string>("ProviderDisplayName") |
|
||||
.HasMaxLength(128); |
|
||||
|
|
||||
b.Property<string>("ProviderKey") |
|
||||
.IsRequired() |
|
||||
.HasMaxLength(196); |
|
||||
|
|
||||
b.Property<Guid?>("TenantId"); |
|
||||
|
|
||||
b.HasKey("UserId", "LoginProvider"); |
|
||||
|
|
||||
b.HasIndex("LoginProvider", "ProviderKey"); |
|
||||
|
|
||||
b.ToTable("AbpUserLogins"); |
|
||||
}); |
|
||||
|
|
||||
modelBuilder.Entity("Volo.Abp.Identity.IdentityUserRole", b => |
|
||||
{ |
|
||||
b.Property<Guid>("UserId"); |
|
||||
|
|
||||
b.Property<Guid>("RoleId"); |
|
||||
|
|
||||
b.Property<Guid?>("TenantId"); |
|
||||
|
|
||||
b.HasKey("UserId", "RoleId"); |
|
||||
|
|
||||
b.HasIndex("RoleId", "UserId"); |
|
||||
|
|
||||
b.ToTable("AbpUserRoles"); |
|
||||
}); |
|
||||
|
|
||||
modelBuilder.Entity("Volo.Abp.Identity.IdentityUserToken", b => |
|
||||
{ |
|
||||
b.Property<Guid>("UserId"); |
|
||||
|
|
||||
b.Property<string>("LoginProvider") |
|
||||
.HasMaxLength(64); |
|
||||
|
|
||||
b.Property<string>("Name") |
|
||||
.HasMaxLength(128); |
|
||||
|
|
||||
b.Property<Guid?>("TenantId"); |
|
||||
|
|
||||
b.Property<string>("Value"); |
|
||||
|
|
||||
b.HasKey("UserId", "LoginProvider", "Name"); |
|
||||
|
|
||||
b.ToTable("AbpUserTokens"); |
|
||||
}); |
|
||||
|
|
||||
modelBuilder.Entity("Volo.Abp.PermissionManagement.PermissionGrant", b => |
|
||||
{ |
|
||||
b.Property<Guid>("Id") |
|
||||
.ValueGeneratedOnAdd(); |
|
||||
|
|
||||
b.Property<string>("Name") |
|
||||
.IsRequired() |
|
||||
.HasMaxLength(128); |
|
||||
|
|
||||
b.Property<string>("ProviderKey") |
|
||||
.IsRequired() |
|
||||
.HasMaxLength(64); |
|
||||
|
|
||||
b.Property<string>("ProviderName") |
|
||||
.IsRequired() |
|
||||
.HasMaxLength(64); |
|
||||
|
|
||||
b.Property<Guid?>("TenantId"); |
|
||||
|
|
||||
b.HasKey("Id"); |
|
||||
|
|
||||
b.HasIndex("Name", "ProviderName", "ProviderKey"); |
|
||||
|
|
||||
b.ToTable("AbpPermissionGrants"); |
|
||||
}); |
|
||||
|
|
||||
modelBuilder.Entity("Volo.Abp.SettingManagement.Setting", b => |
|
||||
{ |
|
||||
b.Property<Guid>("Id") |
|
||||
.ValueGeneratedOnAdd(); |
|
||||
|
|
||||
b.Property<string>("Name") |
|
||||
.IsRequired() |
|
||||
.HasMaxLength(128); |
|
||||
|
|
||||
b.Property<string>("ProviderKey") |
|
||||
.HasMaxLength(64); |
|
||||
|
|
||||
b.Property<string>("ProviderName") |
|
||||
.HasMaxLength(64); |
|
||||
|
|
||||
b.Property<string>("Value") |
|
||||
.IsRequired() |
|
||||
.HasMaxLength(2048); |
|
||||
|
|
||||
b.HasKey("Id"); |
|
||||
|
|
||||
b.HasIndex("Name", "ProviderName", "ProviderKey"); |
|
||||
|
|
||||
b.ToTable("AbpSettings"); |
|
||||
}); |
|
||||
|
|
||||
modelBuilder.Entity("Volo.Abp.Identity.IdentityRoleClaim", b => |
|
||||
{ |
|
||||
b.HasOne("Volo.Abp.Identity.IdentityRole") |
|
||||
.WithMany("Claims") |
|
||||
.HasForeignKey("RoleId") |
|
||||
.OnDelete(DeleteBehavior.Cascade); |
|
||||
}); |
|
||||
|
|
||||
modelBuilder.Entity("Volo.Abp.Identity.IdentityUserClaim", b => |
|
||||
{ |
|
||||
b.HasOne("Volo.Abp.Identity.IdentityUser") |
|
||||
.WithMany("Claims") |
|
||||
.HasForeignKey("UserId") |
|
||||
.OnDelete(DeleteBehavior.Cascade); |
|
||||
}); |
|
||||
|
|
||||
modelBuilder.Entity("Volo.Abp.Identity.IdentityUserLogin", b => |
|
||||
{ |
|
||||
b.HasOne("Volo.Abp.Identity.IdentityUser") |
|
||||
.WithMany("Logins") |
|
||||
.HasForeignKey("UserId") |
|
||||
.OnDelete(DeleteBehavior.Cascade); |
|
||||
}); |
|
||||
|
|
||||
modelBuilder.Entity("Volo.Abp.Identity.IdentityUserRole", b => |
|
||||
{ |
|
||||
b.HasOne("Volo.Abp.Identity.IdentityRole") |
|
||||
.WithMany() |
|
||||
.HasForeignKey("RoleId") |
|
||||
.OnDelete(DeleteBehavior.Cascade); |
|
||||
|
|
||||
b.HasOne("Volo.Abp.Identity.IdentityUser") |
|
||||
.WithMany("Roles") |
|
||||
.HasForeignKey("UserId") |
|
||||
.OnDelete(DeleteBehavior.Cascade); |
|
||||
}); |
|
||||
|
|
||||
modelBuilder.Entity("Volo.Abp.Identity.IdentityUserToken", b => |
|
||||
{ |
|
||||
b.HasOne("Volo.Abp.Identity.IdentityUser") |
|
||||
.WithMany("Tokens") |
|
||||
.HasForeignKey("UserId") |
|
||||
.OnDelete(DeleteBehavior.Cascade); |
|
||||
}); |
|
||||
#pragma warning restore 612, 618
|
|
||||
} |
|
||||
} |
|
||||
} |
|
||||
@ -1,75 +0,0 @@ |
|||||
using Microsoft.EntityFrameworkCore.Migrations; |
|
||||
|
|
||||
namespace Acme.BookStore.Migrations |
|
||||
{ |
|
||||
public partial class Upgreded_ABP_Packages : Migration |
|
||||
{ |
|
||||
protected override void Up(MigrationBuilder migrationBuilder) |
|
||||
{ |
|
||||
migrationBuilder.AddColumn<string>( |
|
||||
name: "ConcurrencyStamp", |
|
||||
table: "Books", |
|
||||
nullable: true); |
|
||||
|
|
||||
migrationBuilder.AddColumn<string>( |
|
||||
name: "ExtraProperties", |
|
||||
table: "Books", |
|
||||
nullable: true); |
|
||||
|
|
||||
migrationBuilder.AlterColumn<string>( |
|
||||
name: "ConcurrencyStamp", |
|
||||
table: "AbpRoles", |
|
||||
maxLength: 256, |
|
||||
nullable: false, |
|
||||
oldClrType: typeof(string), |
|
||||
oldNullable: true); |
|
||||
|
|
||||
migrationBuilder.AddColumn<string>( |
|
||||
name: "ExtraProperties", |
|
||||
table: "AbpRoles", |
|
||||
nullable: true); |
|
||||
|
|
||||
migrationBuilder.AddColumn<string>( |
|
||||
name: "ConcurrencyStamp", |
|
||||
table: "AbpClaimTypes", |
|
||||
maxLength: 256, |
|
||||
nullable: false, |
|
||||
defaultValue: ""); |
|
||||
|
|
||||
migrationBuilder.AddColumn<string>( |
|
||||
name: "ExtraProperties", |
|
||||
table: "AbpClaimTypes", |
|
||||
nullable: true); |
|
||||
} |
|
||||
|
|
||||
protected override void Down(MigrationBuilder migrationBuilder) |
|
||||
{ |
|
||||
migrationBuilder.DropColumn( |
|
||||
name: "ConcurrencyStamp", |
|
||||
table: "Books"); |
|
||||
|
|
||||
migrationBuilder.DropColumn( |
|
||||
name: "ExtraProperties", |
|
||||
table: "Books"); |
|
||||
|
|
||||
migrationBuilder.DropColumn( |
|
||||
name: "ExtraProperties", |
|
||||
table: "AbpRoles"); |
|
||||
|
|
||||
migrationBuilder.DropColumn( |
|
||||
name: "ConcurrencyStamp", |
|
||||
table: "AbpClaimTypes"); |
|
||||
|
|
||||
migrationBuilder.DropColumn( |
|
||||
name: "ExtraProperties", |
|
||||
table: "AbpClaimTypes"); |
|
||||
|
|
||||
migrationBuilder.AlterColumn<string>( |
|
||||
name: "ConcurrencyStamp", |
|
||||
table: "AbpRoles", |
|
||||
nullable: true, |
|
||||
oldClrType: typeof(string), |
|
||||
oldMaxLength: 256); |
|
||||
} |
|
||||
} |
|
||||
} |
|
||||
@ -1,42 +0,0 @@ |
|||||
using Microsoft.EntityFrameworkCore.Migrations; |
|
||||
|
|
||||
namespace Acme.BookStore.Migrations |
|
||||
{ |
|
||||
public partial class ABP_v0_11_Upgrade : Migration |
|
||||
{ |
|
||||
protected override void Up(MigrationBuilder migrationBuilder) |
|
||||
{ |
|
||||
migrationBuilder.AlterColumn<bool>( |
|
||||
name: "IsDeleted", |
|
||||
table: "AbpUsers", |
|
||||
nullable: false, |
|
||||
defaultValue: false, |
|
||||
oldClrType: typeof(bool)); |
|
||||
|
|
||||
migrationBuilder.AlterColumn<string>( |
|
||||
name: "ConcurrencyStamp", |
|
||||
table: "AbpUsers", |
|
||||
nullable: true, |
|
||||
oldClrType: typeof(string), |
|
||||
oldMaxLength: 256); |
|
||||
} |
|
||||
|
|
||||
protected override void Down(MigrationBuilder migrationBuilder) |
|
||||
{ |
|
||||
migrationBuilder.AlterColumn<bool>( |
|
||||
name: "IsDeleted", |
|
||||
table: "AbpUsers", |
|
||||
nullable: false, |
|
||||
oldClrType: typeof(bool), |
|
||||
oldDefaultValue: false); |
|
||||
|
|
||||
migrationBuilder.AlterColumn<string>( |
|
||||
name: "ConcurrencyStamp", |
|
||||
table: "AbpUsers", |
|
||||
maxLength: 256, |
|
||||
nullable: false, |
|
||||
oldClrType: typeof(string), |
|
||||
oldNullable: true); |
|
||||
} |
|
||||
} |
|
||||
} |
|
||||
@ -1,11 +1,13 @@ |
|||||
using Microsoft.AspNetCore.Mvc.Localization; |
using Acme.BookStore.Localization.BookStore; |
||||
using Acme.BookStore.Localization.BookStore; |
|
||||
using Volo.Abp.AspNetCore.Mvc.UI.RazorPages; |
using Volo.Abp.AspNetCore.Mvc.UI.RazorPages; |
||||
|
|
||||
namespace Acme.BookStore.Pages |
namespace Acme.BookStore.Pages |
||||
{ |
{ |
||||
public abstract class BookStorePageModelBase : AbpPageModel |
public abstract class BookStorePageModelBase : AbpPageModel |
||||
{ |
{ |
||||
public IHtmlLocalizer<BookStoreResource> L { get; set; } |
protected BookStorePageModelBase() |
||||
|
{ |
||||
|
LocalizationResourceType = typeof(BookStoreResource); |
||||
|
} |
||||
} |
} |
||||
} |
} |
||||
File diff suppressed because it is too large
@ -1,8 +1,8 @@ |
|||||
{ |
{ |
||||
"version": "0.1.0", |
"version": "0.1.0", |
||||
"name": "volo.supportapp", |
"name": "Acme.BookStore", |
||||
"private": true, |
"private": true, |
||||
"dependencies": { |
"dependencies": { |
||||
"@abp/aspnetcore.mvc.ui.theme.basic": "^0.4.1" |
"@abp/aspnetcore.mvc.ui.theme.basic": "^0.4.9" |
||||
} |
} |
||||
} |
} |
||||
|
|||||
@ -0,0 +1 @@ |
|||||
|
|
||||
@ -0,0 +1 @@ |
|||||
|
|
||||
@ -0,0 +1,3 @@ |
|||||
|
body{ |
||||
|
|
||||
|
} |
||||
@ -1,26 +0,0 @@ |
|||||
using System.Threading.Tasks; |
|
||||
using Microsoft.Extensions.DependencyInjection; |
|
||||
using Shouldly; |
|
||||
using Volo.Abp.Identity; |
|
||||
using Xunit; |
|
||||
|
|
||||
namespace Acme.BookStore.Samples |
|
||||
{ |
|
||||
public class SampleTest : BookStoreApplicationTestBase |
|
||||
{ |
|
||||
private readonly IIdentityUserAppService _userAppService; |
|
||||
|
|
||||
public SampleTest() |
|
||||
{ |
|
||||
_userAppService = ServiceProvider.GetRequiredService<IIdentityUserAppService>(); |
|
||||
} |
|
||||
|
|
||||
[Fact] |
|
||||
public async Task Initial_Data_Should_Contain_Admin_User() |
|
||||
{ |
|
||||
var result = await _userAppService.GetListAsync(new GetIdentityUsersInput()); |
|
||||
result.TotalCount.ShouldBeGreaterThan(0); |
|
||||
result.Items.ShouldContain(u => u.UserName == "admin"); |
|
||||
} |
|
||||
} |
|
||||
} |
|
||||
@ -0,0 +1,59 @@ |
|||||
|
using System; |
||||
|
using System.Linq; |
||||
|
using System.Threading.Tasks; |
||||
|
using Microsoft.EntityFrameworkCore; |
||||
|
using Microsoft.Extensions.DependencyInjection; |
||||
|
using Acme.BookStore.Users; |
||||
|
using Shouldly; |
||||
|
using Volo.Abp.Domain.Repositories; |
||||
|
using Volo.Abp.Identity; |
||||
|
using Volo.Abp.Uow; |
||||
|
using Xunit; |
||||
|
|
||||
|
namespace Acme.BookStore.Samples |
||||
|
{ |
||||
|
public class SampleTests : BookStoreApplicationTestBase |
||||
|
{ |
||||
|
private readonly IIdentityUserAppService _userAppService; |
||||
|
private readonly IRepository<AppUser, Guid> _appUserRepository; |
||||
|
private readonly IUnitOfWorkManager _unitOfWorkManager; |
||||
|
|
||||
|
public SampleTests() |
||||
|
{ |
||||
|
_userAppService = ServiceProvider.GetRequiredService<IIdentityUserAppService>(); |
||||
|
_appUserRepository = ServiceProvider.GetRequiredService<IRepository<AppUser, Guid>>(); |
||||
|
_unitOfWorkManager = ServiceProvider.GetRequiredService<IUnitOfWorkManager>(); |
||||
|
} |
||||
|
|
||||
|
[Fact] |
||||
|
public async Task Initial_Data_Should_Contain_Admin_User() |
||||
|
{ |
||||
|
//Act
|
||||
|
var result = await _userAppService.GetListAsync(new GetIdentityUsersInput()); |
||||
|
|
||||
|
//Assert
|
||||
|
result.TotalCount.ShouldBeGreaterThan(0); |
||||
|
result.Items.ShouldContain(u => u.UserName == "admin"); |
||||
|
} |
||||
|
|
||||
|
[Fact] |
||||
|
public async Task Should_Query_AppUser() |
||||
|
{ |
||||
|
/* Need to manually start Unit Of Work because |
||||
|
* FirstOrDefaultAsync should be executed while db connection / context is available. |
||||
|
*/ |
||||
|
using (var uow = _unitOfWorkManager.Begin()) |
||||
|
{ |
||||
|
//Act
|
||||
|
var adminUser = await _appUserRepository |
||||
|
.Where(u => u.UserName == "admin") |
||||
|
.FirstOrDefaultAsync(); |
||||
|
|
||||
|
//Assert
|
||||
|
adminUser.ShouldNotBeNull(); |
||||
|
|
||||
|
await uow.CompleteAsync(); |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
} |
||||
@ -1,20 +0,0 @@ |
|||||
<Project Sdk="Microsoft.NET.Sdk"> |
|
||||
|
|
||||
<PropertyGroup> |
|
||||
<OutputType>Exe</OutputType> |
|
||||
<TargetFramework>netcoreapp2.2</TargetFramework> |
|
||||
</PropertyGroup> |
|
||||
|
|
||||
<ItemGroup> |
|
||||
<PackageReference Include="Volo.Abp.Autofac" Version="0.13.0" /> |
|
||||
<PackageReference Include="Volo.Abp.Http.Client" Version="0.13.0" /> |
|
||||
<ProjectReference Include="..\..\src\Acme.BookStore.Application\Acme.BookStore.Application.csproj" /> |
|
||||
</ItemGroup> |
|
||||
|
|
||||
<ItemGroup> |
|
||||
<None Update="appsettings.json"> |
|
||||
<CopyToOutputDirectory>Always</CopyToOutputDirectory> |
|
||||
</None> |
|
||||
</ItemGroup> |
|
||||
|
|
||||
</Project> |
|
||||
@ -1,27 +0,0 @@ |
|||||
using System; |
|
||||
using System.Threading.Tasks; |
|
||||
using Volo.Abp.Application.Dtos; |
|
||||
using Volo.Abp.DependencyInjection; |
|
||||
|
|
||||
namespace Acme.BookStore.ConsoleApiClient |
|
||||
{ |
|
||||
public class ApiClientDemoService : ITransientDependency |
|
||||
{ |
|
||||
private readonly IBookAppService _bookAppService; |
|
||||
|
|
||||
public ApiClientDemoService(IBookAppService bookAppService) |
|
||||
{ |
|
||||
_bookAppService = bookAppService; |
|
||||
} |
|
||||
|
|
||||
public async Task RunAsync() |
|
||||
{ |
|
||||
//While it seems like a regular method call, it actually calls a remote REST API.
|
|
||||
var output = await _bookAppService.GetListAsync(new PagedAndSortedResultRequestDto()); |
|
||||
foreach (var bookDto in output.Items) |
|
||||
{ |
|
||||
Console.WriteLine($"[BOOK {bookDto.Id}] Name={bookDto.Name}, Price={bookDto.Price}"); |
|
||||
} |
|
||||
} |
|
||||
} |
|
||||
} |
|
||||
@ -1,22 +0,0 @@ |
|||||
using Microsoft.Extensions.DependencyInjection; |
|
||||
using Volo.Abp.Autofac; |
|
||||
using Volo.Abp.Http.Client; |
|
||||
using Volo.Abp.Modularity; |
|
||||
|
|
||||
namespace Acme.BookStore.ConsoleApiClient |
|
||||
{ |
|
||||
[DependsOn( |
|
||||
typeof(AbpAutofacModule), |
|
||||
typeof(AbpHttpClientModule), |
|
||||
typeof(BookStoreApplicationModule) |
|
||||
)] |
|
||||
public class ConsoleApiClientModule : AbpModule |
|
||||
{ |
|
||||
public override void ConfigureServices(ServiceConfigurationContext context) |
|
||||
{ |
|
||||
context.Services.AddHttpClientProxies( |
|
||||
typeof(BookStoreApplicationModule).Assembly |
|
||||
); |
|
||||
} |
|
||||
} |
|
||||
} |
|
||||
@ -1,32 +0,0 @@ |
|||||
using System; |
|
||||
using Microsoft.Extensions.DependencyInjection; |
|
||||
using Volo.Abp; |
|
||||
using Volo.Abp.Threading; |
|
||||
|
|
||||
namespace Acme.BookStore.ConsoleApiClient |
|
||||
{ |
|
||||
/* Before running this application, ensure that the Acme.BookStore.Web application is running. |
|
||||
*/ |
|
||||
class Program |
|
||||
{ |
|
||||
static void Main(string[] args) |
|
||||
{ |
|
||||
using (var application = AbpApplicationFactory.Create<ConsoleApiClientModule>(options => |
|
||||
{ |
|
||||
options.UseAutofac(); |
|
||||
})) |
|
||||
{ |
|
||||
application.Initialize(); |
|
||||
|
|
||||
using (var scope = application.ServiceProvider.CreateScope()) |
|
||||
{ |
|
||||
var demoService = scope.ServiceProvider.GetRequiredService<ApiClientDemoService>(); |
|
||||
AsyncHelper.RunSync(() => demoService.RunAsync()); |
|
||||
} |
|
||||
|
|
||||
Console.WriteLine("Press ENTER to stop application..."); |
|
||||
Console.ReadLine(); |
|
||||
} |
|
||||
} |
|
||||
} |
|
||||
} |
|
||||
@ -1,7 +0,0 @@ |
|||||
{ |
|
||||
"RemoteServices": { |
|
||||
"Default": { |
|
||||
"BaseUrl": "http://localhost:53929/" |
|
||||
} |
|
||||
} |
|
||||
} |
|
||||
Loading…
Reference in new issue