diff --git a/.gitignore b/.gitignore
index 1b1e3d8201..4eabbccebd 100644
--- a/.gitignore
+++ b/.gitignore
@@ -255,7 +255,6 @@ paket-files/
build/outputs
!framework/src/Volo.Abp.AspNetCore.Mvc.UI.Packages/Volo/Abp/AspNetCore/Mvc/UI/Packages/*
nupkg/push.ps1
-abp_io/src/Volo.AbpWebSite.Web/Logs/*.*
framework/src/AbpDesk/AbpDesk.Web.Mvc/Logs
framework/src/AbpDesk/Web_PlugIns/AbpDesk.MongoBlog.dll
framework/src/MicroserviceDemo/MicroserviceDemo.AuthServer/Logs/*.*
@@ -274,11 +273,8 @@ templates/mvc/src/MyCompanyName.MyProjectName.Web/Logs/*.*
# macOS
.DS_Store
-abp_io/src/Volo.AbpWebSite.Web/Logs/*
-abp_io/src/Volo.AbpWebSite.Web/wwwroot/files/*
templates/service/host/MyCompanyName.MyProjectName.Host/Logs/logs.txt
templates/service/host/IdentityServerHost/Logs/logs.txt
-abp_io/src/Volo.AbpWebSite.Web/TemplateFiles/*.zip
framework/test/Volo\.Abp\.AspNetCore\.Mvc\.UI\.Bootstrap\.Demo/package-lock\.json
modules/blogging/app/Volo\.BloggingTestApp/package-lock\.json
diff --git a/README.md b/README.md
index ee043bdb62..04892e5837 100644
--- a/README.md
+++ b/README.md
@@ -1,6 +1,9 @@
# ABP
[](http://ci.volosoft.com:5480/blue/organizations/jenkins/abp/activity)
+[](https://www.nuget.org/packages/Volo.Abp.Core)
+[](https://www.nuget.org/packages/Volo.Abp.Core)
+[](https://docs.abp.io/en/abp/latest/Nightly-Builds)
This project is the next generation of the [ASP.NET Boilerplate](https://aspnetboilerplate.com/) web application framework. See [the announcement](https://abp.io/blog/abp/Abp-vNext-Announcement).
diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization.sln b/abp_io/AbpIoLocalization/AbpIoLocalization.sln
new file mode 100644
index 0000000000..87b9fecdd5
--- /dev/null
+++ b/abp_io/AbpIoLocalization/AbpIoLocalization.sln
@@ -0,0 +1,25 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio Version 16
+VisualStudioVersion = 16.0.29009.5
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AbpIoLocalization", "AbpIoLocalization\AbpIoLocalization.csproj", "{35D94BAB-22DF-47E0-AB4A-99CB6495CF50}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Any CPU = Debug|Any CPU
+ Release|Any CPU = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {35D94BAB-22DF-47E0-AB4A-99CB6495CF50}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {35D94BAB-22DF-47E0-AB4A-99CB6495CF50}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {35D94BAB-22DF-47E0-AB4A-99CB6495CF50}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {35D94BAB-22DF-47E0-AB4A-99CB6495CF50}.Release|Any CPU.Build.0 = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+ GlobalSection(ExtensibilityGlobals) = postSolution
+ SolutionGuid = {2CF52C6D-D914-44A3-8F02-7E7BEA0644C5}
+ EndGlobalSection
+EndGlobal
diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/AbpIoLocalization.csproj b/abp_io/AbpIoLocalization/AbpIoLocalization/AbpIoLocalization.csproj
new file mode 100644
index 0000000000..7c8af93c47
--- /dev/null
+++ b/abp_io/AbpIoLocalization/AbpIoLocalization/AbpIoLocalization.csproj
@@ -0,0 +1,16 @@
+
+
+
+ netstandard2.0
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/AbpIoLocalizationModule.cs b/abp_io/AbpIoLocalization/AbpIoLocalization/AbpIoLocalizationModule.cs
new file mode 100644
index 0000000000..8a6ca5dfdc
--- /dev/null
+++ b/abp_io/AbpIoLocalization/AbpIoLocalization/AbpIoLocalizationModule.cs
@@ -0,0 +1,79 @@
+using AbpIoLocalization.Account.Localization;
+using AbpIoLocalization.Admin.Localization;
+using AbpIoLocalization.Base.Localization;
+using AbpIoLocalization.Blog.Localization;
+using AbpIoLocalization.Commercial.Localization;
+using AbpIoLocalization.Docs.Localization;
+using AbpIoLocalization.Support.Localization;
+using AbpIoLocalization.Www;
+using Volo.Abp.Localization;
+using Volo.Abp.Localization.ExceptionHandling;
+using Volo.Abp.Localization.Resources.AbpValidation;
+using Volo.Abp.Modularity;
+using Volo.Abp.VirtualFileSystem;
+
+namespace AbpIoLocalization
+{
+ [DependsOn(typeof(AbpLocalizationModule))]
+ public class AbpIoLocalizationModule : AbpModule
+ {
+ public override void ConfigureServices(ServiceConfigurationContext context)
+ {
+ Configure(options =>
+ {
+ options.FileSets.AddEmbedded("AbpIoLocalization");
+ });
+
+ Configure(options =>
+ {
+ options.MapCodeNamespace("Volo.AbpIo.Commercial", typeof(AbpIoCommercialResource));
+ options.MapCodeNamespace("Volo.AbpIo.Domain", typeof(AbpIoBaseResource));
+ });
+
+ Configure(options =>
+ {
+ options.Resources
+ .Add("en")
+ .AddBaseTypes(
+ typeof(AbpValidationResource)
+ )
+ .AddVirtualJson("/Base/Localization/Resources");
+
+ options.Resources
+ .Add("en")
+ .AddVirtualJson("/Account/Localization/Resources")
+ .AddBaseTypes(typeof(AbpIoBaseResource));
+
+ options.Resources
+ .Add("en")
+ .AddVirtualJson("/Admin/Localization/Resources")
+ .AddBaseTypes(typeof(AbpIoBaseResource));
+
+ options.Resources
+ .Add("en")
+ .AddVirtualJson("/Blog/Localization/Resources")
+ .AddBaseTypes(typeof(AbpIoBaseResource));
+
+ options.Resources
+ .Add("en")
+ .AddVirtualJson("/Commercial/Localization/Resources")
+ .AddBaseTypes(typeof(AbpIoBaseResource));
+
+ options.Resources
+ .Add("en")
+ .AddVirtualJson("/Docs/Localization/Resources")
+ .AddBaseTypes(typeof(AbpIoBaseResource));
+
+ options.Resources
+ .Add("en")
+ .AddVirtualJson("/Support/Localization/Resources")
+ .AddBaseTypes(typeof(AbpIoBaseResource));
+
+ options.Resources
+ .Add("en")
+ .AddVirtualJson("/Www/Localization/Resources")
+ .AddBaseTypes(typeof(AbpIoBaseResource));
+ });
+ }
+ }
+}
\ No newline at end of file
diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Account/Localization/AbpIoAccountResource.cs b/abp_io/AbpIoLocalization/AbpIoLocalization/Account/Localization/AbpIoAccountResource.cs
new file mode 100644
index 0000000000..adf66d9ab9
--- /dev/null
+++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Account/Localization/AbpIoAccountResource.cs
@@ -0,0 +1,7 @@
+namespace AbpIoLocalization.Account.Localization
+{
+ public class AbpIoAccountResource
+ {
+
+ }
+}
\ No newline at end of file
diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Account/Localization/Resources/en.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Account/Localization/Resources/en.json
new file mode 100644
index 0000000000..f461fe8bbd
--- /dev/null
+++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Account/Localization/Resources/en.json
@@ -0,0 +1,13 @@
+{
+ "culture": "en",
+ "texts": {
+ "Account": "Account",
+ "Welcome": "Welcome",
+ "UseOneOfTheFollowingLinksToContinue": "Use one of the following links to continue",
+ "FrameworkHomePage": "Framework home page",
+ "FrameworkDocumentation": "Framework documentation",
+ "OfficialBlog": "Official blog",
+ "CommercialHomePage": "Commercial home page",
+ "CommercialSupportWebSite": "Commercial support web site"
+ }
+}
\ No newline at end of file
diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Account/Localization/Resources/tr.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Account/Localization/Resources/tr.json
new file mode 100644
index 0000000000..5af6a13c50
--- /dev/null
+++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Account/Localization/Resources/tr.json
@@ -0,0 +1,5 @@
+{
+ "culture": "tr",
+ "texts": {
+ }
+}
\ No newline at end of file
diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Account/Localization/Resources/zh-Hans.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Account/Localization/Resources/zh-Hans.json
new file mode 100644
index 0000000000..df772fa60b
--- /dev/null
+++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Account/Localization/Resources/zh-Hans.json
@@ -0,0 +1,5 @@
+{
+ "culture": "zh-Hans",
+ "texts": {
+ }
+}
\ No newline at end of file
diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/AbpIoAdminResource.cs b/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/AbpIoAdminResource.cs
new file mode 100644
index 0000000000..ff0a5786c4
--- /dev/null
+++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/AbpIoAdminResource.cs
@@ -0,0 +1,10 @@
+using Volo.Abp.Localization;
+
+namespace AbpIoLocalization.Admin.Localization
+{
+ [LocalizationResourceName("AbpIoAdmin")]
+ public class AbpIoAdminResource
+ {
+
+ }
+}
\ No newline at end of file
diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/en.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/en.json
new file mode 100644
index 0000000000..7ce192c3ca
--- /dev/null
+++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/en.json
@@ -0,0 +1,60 @@
+{
+ "culture": "en",
+ "texts": {
+ "Permission:NpmPackages": "NPM Packages",
+ "Permission:NugetPackages": "Nuget Packages",
+ "Permission:Maintenance": "Maintenance",
+ "Permission:Maintain": "Maintain",
+ "Permission:ClearCaches": "Clear caches",
+ "Permission:Modules": "Modules",
+ "Permission:Packages": "Packages",
+ "Permission:Edit": "Edit",
+ "Permission:Delete": "Delete",
+ "Permission:Create": "Create",
+ "Menu:Packages": "Packages",
+ "NpmPackageDeletionWarningMessage": "This NPM Package will be deleted. Do you confirm that?",
+ "NugetPackageDeletionWarningMessage": "This Nuget Package will be deleted. Do you confirm that?",
+ "ModuleDeletionWarningMessage": "This Module will be deleted. Do you confirm that?",
+ "Name": "Name",
+ "DisplayName": "Display name",
+ "ShortDescription": "Short description",
+ "NameFilter": "Name",
+ "CreationTime": "Creation time",
+ "IsPro": "Is pro",
+ "EfCoreConfigureMethodName": "Configure method name",
+ "IsProFilter": "Is pro",
+ "ApplicationType": "Application type",
+ "Target": "Target",
+ "TargetFilter": "Target",
+ "ModuleClass": "Module class",
+ "NugetPackageTarget.DomainShared": "Domain Shared",
+ "NugetPackageTarget.Domain": "Domain",
+ "NugetPackageTarget.Application": "Application",
+ "NugetPackageTarget.ApplicationContracts": "Application Contracts",
+ "NugetPackageTarget.HttpApi": "Http Api",
+ "NugetPackageTarget.HttpApiClient": "Http Api Client",
+ "NugetPackageTarget.Web": "Web",
+ "NugetPackageTarget.EntityFrameworkCore": "EntityFramework Core",
+ "NugetPackageTarget.MongoDB": "MongoDB",
+ "Edit": "Edit",
+ "Delete": "Delete",
+ "Refresh": "Refresh",
+ "NpmPackages": "NPM Packages",
+ "NugetPackages": "Nuget Packages",
+ "NpmPackageCount": "NPM Package Count",
+ "NugetPackageCount": "Nuget Package Count",
+ "Module": "Modules",
+ "ModuleInfo": "Module info",
+ "CreateANpmPackage": "Create a NPM package",
+ "CreateAModule": "Create a module",
+ "CreateANugetPackage": "Create a Nuget package",
+ "AddNew": "Add new",
+ "PackageAlreadyExist{0}": "\"{0}\" package is already added.",
+ "ClearCache": "Clear cache",
+ "SuccessfullyCleared": "Successfully cleared",
+ "Menu:NpmPackages": "NPM Packages",
+ "Menu:Modules": "Modules",
+ "Menu:Maintenance": "Maintenance",
+ "Menu:NugetPackages": "Nuget Packages"
+ }
+}
\ No newline at end of file
diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/tr.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/tr.json
new file mode 100644
index 0000000000..5af6a13c50
--- /dev/null
+++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/tr.json
@@ -0,0 +1,5 @@
+{
+ "culture": "tr",
+ "texts": {
+ }
+}
\ No newline at end of file
diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/zh-Hans.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/zh-Hans.json
new file mode 100644
index 0000000000..df772fa60b
--- /dev/null
+++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/zh-Hans.json
@@ -0,0 +1,5 @@
+{
+ "culture": "zh-Hans",
+ "texts": {
+ }
+}
\ No newline at end of file
diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/AbpIoBaseResource.cs b/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/AbpIoBaseResource.cs
new file mode 100644
index 0000000000..27e3c407b7
--- /dev/null
+++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/AbpIoBaseResource.cs
@@ -0,0 +1,10 @@
+using Volo.Abp.Localization;
+
+namespace AbpIoLocalization.Base.Localization
+{
+ [LocalizationResourceName("AbpIoBase")]
+ public class AbpIoBaseResource
+ {
+
+ }
+}
diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/en.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/en.json
new file mode 100644
index 0000000000..7fdff720cb
--- /dev/null
+++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/en.json
@@ -0,0 +1,29 @@
+{
+ "culture": "en",
+ "texts": {
+ "Volo.AbpIo.Domain:010004": "Maximum member count reached!",
+ "Volo.AbpIo.Domain:010005": "Maximum owner count reached!",
+ "Volo.AbpIo.Domain:010006": "This user is already an owner in this organization!",
+ "Volo.AbpIo.Domain:010007": "This user is already a developer in this organization!",
+ "Volo.AbpIo.Domain:010008": "Allowed Developer Count can not be less then current developer count!",
+ "Volo.AbpIo.Domain:010009": "Allowed Developer Count can not be less then 0!",
+ "Volo.AbpIo.Domain:010010": "Maximum mac address count is exceeded!",
+ "Volo.AbpIo.Domain:020001": "Could not delete this NPM Package because \"{NugetPackages}\" Nuget Packages are dependent to this package.",
+ "Volo.AbpIo.Domain:020002": "Could not delete this NPM Package because \"{Modules}\" Modules are using this package.",
+ "Volo.AbpIo.Domain:020003": "Could not delete this NPM Package because \"{Modules}\" Modules are using this package and \"{NugetPackages}\" Nuget Packages are dependent to this package.",
+ "Volo.AbpIo.Domain:020004": "Could not delete this Nuget Package because \"{Modules}\" Modules are using this package.",
+ "WantToLearn?": "Want to learn?",
+ "ReadyToGetStarted?": "Ready to get started?",
+ "JoinOurCommunity": "Join our community",
+ "GetStartedUpper": "GET STARTED",
+ "ForkMeOnGitHub": "Fork me on GitHub",
+ "Features": "Features",
+ "GetStarted": "Get Started",
+ "Documents": "Documents",
+ "Community": "Community",
+ "ContributionGuide": "Contribution Guide",
+ "Blog": "Blog",
+ "Commercial": "Commercial",
+ "SeeDocuments": "See Documents"
+ }
+}
\ No newline at end of file
diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/tr.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/tr.json
new file mode 100644
index 0000000000..a5be03fe3e
--- /dev/null
+++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/tr.json
@@ -0,0 +1,12 @@
+{
+ "culture": "tr",
+ "texts": {
+ "Volo.AbpIo.Domain:010004": "Maksimum üye sayısı aşıldı!",
+ "Volo.AbpIo.Domain:010005": "Maksimum yetkili sayısı aşıldı!",
+ "Volo.AbpIo.Domain:010006": "Bu kullanıcı zaten bu organizasyonda yetkili olarak var!",
+ "Volo.AbpIo.Domain:010007": "Bu kullanıcı zaten bu organizasyonda yazılımcı olarak var!",
+ "Volo.AbpIo.Domain:010008": "Maksimum izin verilen kullanıcı sayısı mevcut kullanıcı sayısından az olamaz!",
+ "Volo.AbpIo.Domain:010009": "Maksimum izin verilen kullanıcı sayısı sıfırdan az olamaz!",
+ "Volo.AbpIo.Domain:010010": "Maksimum mac adresi sayısı geçildi!"
+ }
+}
\ No newline at end of file
diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/zh-Hans.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/zh-Hans.json
new file mode 100644
index 0000000000..5b6552ca28
--- /dev/null
+++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/zh-Hans.json
@@ -0,0 +1,12 @@
+{
+ "culture": "zh-Hans",
+ "texts": {
+ "Volo.AbpIo.Domain:010004": "超过最大成员数!",
+ "Volo.AbpIo.Domain:010005": "超过最大所有者数!",
+ "Volo.AbpIo.Domain:010006": "T用户已经是该组织的所有者!",
+ "Volo.AbpIo.Domain:010007": "该用户已经是该组织的开发者!",
+ "Volo.AbpIo.Domain:010008": "允许的开发者数量不能低于当前开发者数量!",
+ "Volo.AbpIo.Domain:010009": "允许的开发者数量不能小于零!",
+ "Volo.AbpIo.Domain:010010": "超出了最大mac地址数!"
+ }
+}
diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Blog/Localization/AbpIoBlogResource.cs b/abp_io/AbpIoLocalization/AbpIoLocalization/Blog/Localization/AbpIoBlogResource.cs
new file mode 100644
index 0000000000..8f3917a3a8
--- /dev/null
+++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Blog/Localization/AbpIoBlogResource.cs
@@ -0,0 +1,7 @@
+namespace AbpIoLocalization.Blog.Localization
+{
+ public class AbpIoBlogResource
+ {
+
+ }
+}
\ No newline at end of file
diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Blog/Localization/Resources/en.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Blog/Localization/Resources/en.json
new file mode 100644
index 0000000000..189662ee7c
--- /dev/null
+++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Blog/Localization/Resources/en.json
@@ -0,0 +1,5 @@
+{
+ "culture": "en",
+ "texts": {
+ }
+}
\ No newline at end of file
diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Blog/Localization/Resources/tr.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Blog/Localization/Resources/tr.json
new file mode 100644
index 0000000000..5af6a13c50
--- /dev/null
+++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Blog/Localization/Resources/tr.json
@@ -0,0 +1,5 @@
+{
+ "culture": "tr",
+ "texts": {
+ }
+}
\ No newline at end of file
diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Blog/Localization/Resources/zh-Hans.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Blog/Localization/Resources/zh-Hans.json
new file mode 100644
index 0000000000..df772fa60b
--- /dev/null
+++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Blog/Localization/Resources/zh-Hans.json
@@ -0,0 +1,5 @@
+{
+ "culture": "zh-Hans",
+ "texts": {
+ }
+}
\ No newline at end of file
diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/AbpIoCommercialResource.cs b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/AbpIoCommercialResource.cs
new file mode 100644
index 0000000000..76eb74933d
--- /dev/null
+++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/AbpIoCommercialResource.cs
@@ -0,0 +1,10 @@
+using Volo.Abp.Localization;
+
+namespace AbpIoLocalization.Commercial.Localization
+{
+ [LocalizationResourceName("AbpIoCommercial")]
+ public class AbpIoCommercialResource
+ {
+
+ }
+}
\ No newline at end of file
diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/en.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/en.json
new file mode 100644
index 0000000000..0a9dedc788
--- /dev/null
+++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/en.json
@@ -0,0 +1,23 @@
+{
+ "culture": "en",
+ "texts": {
+ "OrganizationManagement": "Organization Management",
+ "OrganizationList": "Organization list",
+ "Volo.AbpIo.Commercial:010003": "You are not owner of this organization!",
+ "OrganizationNotFoundMessage": "No organization found!",
+ "DeveloperCount": "Developer count",
+ "Owners": "Owners",
+ "AddMember": "Add member",
+ "AddOwner": "Add owner",
+ "AddDeveloper": "Add developer",
+ "UserName": "Username",
+ "Name": "Name",
+ "EmailAddress": "Email address",
+ "Developers": "Developers",
+ "LicenseType": "License type",
+ "Manage": "Manage",
+ "StartDate": "Start date",
+ "EndDate": "End date",
+ "Modules": "Modules"
+ }
+}
\ No newline at end of file
diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/tr.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/tr.json
new file mode 100644
index 0000000000..fd25239044
--- /dev/null
+++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/tr.json
@@ -0,0 +1,23 @@
+{
+ "culture": "tr",
+ "texts": {
+ "OrganizationManagement": "Organizasyon yönetimi",
+ "OrganizationList": "Organizasyon listesi",
+ "Volo.AbpIo.Commercial:010003": "Bu organizasyonda yetkili değilsiniz!",
+ "OrganizationNotFoundMessage": "Organizasyon bulunamadı!",
+ "DeveloperCount": "Yazılımcı sayısı",
+ "Owners": "Yetkili sayısı",
+ "AddMember": "Üye ekle",
+ "AddOwner": "Yetkili ekle",
+ "AddDeveloper": "Yazılımcı ekle",
+ "UserName": "Kullanıcı adı",
+ "Name": "İsim",
+ "EmailAddress": "Email adresi",
+ "Developers": "Yazılımcılar",
+ "LicenseType": "lisans türü",
+ "Manage": "Yönet",
+ "StartDate": "Başlangıç tarihi",
+ "EndDate": "bitiş tarihi",
+ "Modules": "Modüller"
+ }
+}
\ No newline at end of file
diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/zh-Hans.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/zh-Hans.json
new file mode 100644
index 0000000000..3347e5ad67
--- /dev/null
+++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/zh-Hans.json
@@ -0,0 +1,23 @@
+{
+ "culture": "zh-Hans",
+ "texts": {
+ "OrganizationManagement": "组织管理",
+ "OrganizationList": "组织列表",
+ "Volo.AbpIo.Commercial:010003": "你不是该组织的所有者!",
+ "OrganizationNotFoundMessage": "找不到任何组织!",
+ "DeveloperCount": "开发者数量",
+ "Owners": "所有者",
+ "AddMember": "添加成员",
+ "AddOwner": "添加所有者",
+ "AddDeveloper": "添加开发者",
+ "UserName": "用户名",
+ "Name": "名称",
+ "EmailAddress": "电子邮件地址",
+ "Developers": "开发者",
+ "LicenseType": "许可证类型",
+ "Manage": "管理",
+ "StartDate": "开始日期",
+ "EndDate": "结束日期",
+ "Modules": "模块"
+ }
+}
\ No newline at end of file
diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Docs/Localization/AbpIoDocsResource.cs b/abp_io/AbpIoLocalization/AbpIoLocalization/Docs/Localization/AbpIoDocsResource.cs
new file mode 100644
index 0000000000..bd155f768d
--- /dev/null
+++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Docs/Localization/AbpIoDocsResource.cs
@@ -0,0 +1,7 @@
+namespace AbpIoLocalization.Docs.Localization
+{
+ public class AbpIoDocsResource
+ {
+
+ }
+}
\ No newline at end of file
diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Docs/Localization/Resources/en.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Docs/Localization/Resources/en.json
new file mode 100644
index 0000000000..189662ee7c
--- /dev/null
+++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Docs/Localization/Resources/en.json
@@ -0,0 +1,5 @@
+{
+ "culture": "en",
+ "texts": {
+ }
+}
\ No newline at end of file
diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Docs/Localization/Resources/tr.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Docs/Localization/Resources/tr.json
new file mode 100644
index 0000000000..5af6a13c50
--- /dev/null
+++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Docs/Localization/Resources/tr.json
@@ -0,0 +1,5 @@
+{
+ "culture": "tr",
+ "texts": {
+ }
+}
\ No newline at end of file
diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Docs/Localization/Resources/zh-Hans.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Docs/Localization/Resources/zh-Hans.json
new file mode 100644
index 0000000000..df772fa60b
--- /dev/null
+++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Docs/Localization/Resources/zh-Hans.json
@@ -0,0 +1,5 @@
+{
+ "culture": "zh-Hans",
+ "texts": {
+ }
+}
\ No newline at end of file
diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Support/Localization/AbpIoSupportResource.cs b/abp_io/AbpIoLocalization/AbpIoLocalization/Support/Localization/AbpIoSupportResource.cs
new file mode 100644
index 0000000000..94be66272a
--- /dev/null
+++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Support/Localization/AbpIoSupportResource.cs
@@ -0,0 +1,7 @@
+namespace AbpIoLocalization.Support.Localization
+{
+ public class AbpIoSupportResource
+ {
+
+ }
+}
\ No newline at end of file
diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Support/Localization/Resources/en.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Support/Localization/Resources/en.json
new file mode 100644
index 0000000000..189662ee7c
--- /dev/null
+++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Support/Localization/Resources/en.json
@@ -0,0 +1,5 @@
+{
+ "culture": "en",
+ "texts": {
+ }
+}
\ No newline at end of file
diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Support/Localization/Resources/tr.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Support/Localization/Resources/tr.json
new file mode 100644
index 0000000000..5af6a13c50
--- /dev/null
+++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Support/Localization/Resources/tr.json
@@ -0,0 +1,5 @@
+{
+ "culture": "tr",
+ "texts": {
+ }
+}
\ No newline at end of file
diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Support/Localization/Resources/zh-Hans.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Support/Localization/Resources/zh-Hans.json
new file mode 100644
index 0000000000..df772fa60b
--- /dev/null
+++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Support/Localization/Resources/zh-Hans.json
@@ -0,0 +1,5 @@
+{
+ "culture": "zh-Hans",
+ "texts": {
+ }
+}
\ No newline at end of file
diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Www/AbpIoWwwResource.cs b/abp_io/AbpIoLocalization/AbpIoLocalization/Www/AbpIoWwwResource.cs
new file mode 100644
index 0000000000..552b5949e1
--- /dev/null
+++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Www/AbpIoWwwResource.cs
@@ -0,0 +1,7 @@
+namespace AbpIoLocalization.Www
+{
+ public class AbpIoWwwResource
+ {
+
+ }
+}
\ No newline at end of file
diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/en.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/en.json
new file mode 100644
index 0000000000..b44c8833bd
--- /dev/null
+++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/en.json
@@ -0,0 +1,158 @@
+{
+ "culture": "en",
+ "texts": {
+ "GetStarted": "Get Started",
+ "Create": "Create",
+ "NewProject": "New Project",
+ "DirectDownload": "Direct Download",
+ "ProjectName": "Project name",
+ "ProjectType": "Project type",
+ "DatabaseProvider": "Database provider",
+ "NTier": "N-Tier",
+ "IncludeUserInterface": "Include user interface",
+ "CreateNow": "Create now",
+ "TheStartupProject": "The startup project",
+ "Tutorial": "Tutorial",
+ "UsingCLI": "Using CLI",
+ "SeeDetails": "See Details",
+ "AbpShortDescription": "ABP is a complete architecture and strong infrastructure to create modern web applications! Follows best practices and conventions to provide you a SOLID development experience.",
+ "SourceCodeUpper": "SOURCE CODE",
+ "LatestReleaseLogs": "Latest release logs",
+ "Infrastructure": "Infrastructure",
+ "Architecture": "Architecture",
+ "Modular": "Modular",
+ "DontRepeatYourself": "Don\u2019t Repeat Yourself",
+ "DeveloperFocused": "Developer Focused",
+ "FullStackApplicationInfrastructure": "Full stack application infrastructure.",
+ "DomainDrivenDesign": "Domain Driven Design",
+ "DomainDrivenDesignExplanation": "Designed and developed based on DDD patterns and principles. Provides a layered model for your application.",
+ "Authorization": "Authorization",
+ "AuthorizationExplanation": "Advanced authorization with user, role and fine-grained permission system. Built on the Microsoft Identity library.",
+ "MultiTenancy": "Multi-Tenancy",
+ "MultiTenancyExplanation": "SaaS applications made easy! Integrated multi-tenancy from database to UI.",
+ "CrossCuttingConcerns": "Cross Cutting Concerns",
+ "CrossCuttingConcernsExplanation": "Complete infrastructure for authorization, validation, exception handling, caching, audit logging, transaction management and so on.",
+ "BuiltInBundlingMinification": "Built-In Bundling & Minification",
+ "BuiltInBundlingMinificationExplanation": "Stop to use external tools for bundling & minification. ABP offers a simpler, dynamic, powerful, modular and built-in way!",
+ "VirtualFileSystem": "Virtual File System",
+ "VirtualFileSystemExplanation": "Embed views, scripts, styles, images... into packages/libraries and reuse in different applications.",
+ "Theming": "Theming",
+ "ThemingExplanation": "Use and customize the bootstrap-based standard UI theme or create your own one.",
+ "BootstrapTagHelpersDynamicForms": "Bootstrap Tag Helpers & Dynamic Forms",
+ "BootstrapTagHelpersDynamicFormsExplanation": "Built-in background job system that can be integrated to Hangfire, RabbitMQ or any tool you like.", //TODO explanation doesn't match.
+ "HTTPAPIsDynamicProxies": "HTTP APIs & Dynamic Proxies",
+ "HTTPAPIsDynamicProxiesExplanation": "Automatically expose application services as REST style HTTP APIs and consume with dynamic JavaScript & C# proxies.",
+ "CompleteArchitectureInfo": "Modern architecture to create maintainable software solutions.",
+ "DomainDrivenDesignBasedLayeringModelExplanation": "Helps you to implement a DDD based layered architecture and build a maintainable code base.",
+ "DomainDrivenDesignBasedLayeringModelExplanationCont": "Provides startup templates, abstractions, base classes, services, documentation and guides to help you to develop your application based on DDD patterns & principles.",
+ "MicroserviceCompatibleModelExplanation": "The core framework & pre-build modules are designed the microservice architecture in mind.",
+ "MicroserviceCompatibleModelExplanationCont": "Provides infrastructure, integrations, samples and documentation to implement microservice solutions easier, while it doesn\u2019t bring additional complexity if you want a monolithic application.",
+ "ModularInfo": "ABP provides complete modularity system to allow you to develop reusable application modules.",
+ "PreBuiltModulesThemes": "Pre-Built Modules & Themes",
+ "PreBuiltModulesThemesExplanation": "Open source and commercial modules & themes are ready to use in your business application.",
+ "NuGetNPMPackages": "NuGet & NPM Packages",
+ "NuGetNPMPackagesExplanation": "Distributed as NuGet & NPM packages. Easy to install and upgrade.",
+ "ExtensibleReplaceable": "Extensible/Replaceable",
+ "ExtensibleReplaceableExplanation": "All services & modules are designed extensibility in mind. You can replace services, pages, styles, components...",
+ "CrossCuttingConcernsExplanation2": "Keep your code cleaner and focus on your own business code.",
+ "CrossCuttingConcernsExplanation3": "Don\u2019t send time to implement common application requirements again and again.",
+ "AuthenticationAuthorization": "Authentication & Authorization",
+ "ExceptionHandling": "Exception Handling",
+ "Validation": "Validation",
+ "DatabaseConnection": "Database Connection",
+ "TransactionManagement": "Transaction management",
+ "AuditLogging": "Audit Logging",
+ "Caching": "Caching",
+ "Multitenancy": "Multitenancy",
+ "DataFiltering": "Data filtering",
+ "ConventionOverConfiguration": "Convention Over Configuration",
+ "ConventionOverConfigurationExplanation": "ABP implements common application conventions by default with a minimal or zero configuration.",
+ "ConventionOverConfigurationExplanationList1": "Auto registers known services to dependency injection.",
+ "ConventionOverConfigurationExplanationList2": "Exposes application services as HTTP APIs by naming conventions.",
+ "ConventionOverConfigurationExplanationList3": "Creates dynamic HTTP client proxies for C# and JavaScript.",
+ "ConventionOverConfigurationExplanationList4": "Provides default repositories for your entities.",
+ "ConventionOverConfigurationExplanationList5": "Manages Unit of Work per web request or application service method.",
+ "ConventionOverConfigurationExplanationList6": "Publishes create, update & delete events for your entities.",
+ "BaseClasses": "Base Classes",
+ "BaseClassesExplanation": "Pre-built base classes for common application patterns.",
+ "DeveloperFocusedExplanation": "ABP is for developers.",
+ "DeveloperFocusedExplanationCont": "It aims to simplify your daily software development while not restricting you to work low level when you need it.",
+ "SeeAllFeatures": "See All Features",
+ "CLI_CommandLineInterface": "CLI (Command Line Interface)",
+ "CLI_CommandLineInterfaceExplanation": "CLI automates to create new projects and add modules to your application.",
+ "StartupTemplates": "Startup Templates",
+ "StartupTemplatesExplanation": "Various startup templates provide you fully configured solution to jump start your development.",
+ "BasedOnFamiliarTools": "Based on Familiar Tools",
+ "BasedOnFamiliarToolsExplanation": "Built on and integrated to popular tools you already know. Low learning curve, easy adaptation, comfortable development.",
+ "ORMIndependent": "ORM Independent",
+ "ORMIndependentExplanation": "The core framework is ORM/database independent and can work with any data source. Entity Framework Core and MongoDB providers are already available.",
+ "Features": "Features",
+ "ABPCLI": "ABP CLI",
+ "Modularity": "Modularity",
+ "BootstrapTagHelpers": "Bootstrap Tag Helpers",
+ "DynamicForms": "Dynamic Forms",
+ "BundlingMinification": "Bundling & Minification",
+ "BackgroundJobs": "Background Jobs",
+ "DDDInfrastructure": "DDD Infrastructure",
+ "DomainDrivenDesignInfrastructure": "Domain Driven Design Infrastructure",
+ "AutoRESTAPIs": "Auto REST APIs",
+ "DynamicClientProxies": "Dynamic Client Proxies",
+ "DistributedEventBus": "Distributed Event Bus",
+ "DistributedEventBusWithRabbitMQIntegration": "Distributed Event Bus with RabbitMQ Integration",
+ "TestInfrastructure": "Test Infrastructure",
+ "AuditLogging": "Audit Logging",
+ "AuditLoggingEntityHistories": "Audit Logging & Entity Histories",
+ "ObjectToObjectMapping": "Object to Object Mapping",
+ "EmailSMSAbstractions": "Email & SMS Abstractions",
+ "EmailSMSAbstractionsWithTemplatingSupport": "Email & SMS Abstractions with Templating Support",
+ "Localization": "Localization",
+ "SettingManagement": "Setting Management",
+ "ExtensionMethods": "Extension Methods",
+ "ExtensionMethodsHelpers": "Extension Methods & Helpers",
+ "AspectOrientedProgramming": "Aspect Oriented Programming",
+ "DependencyInjection": "Dependency Injection",
+ "DependencyInjectionByConventions": "Dependency Injection by Conventions",
+ "ABPCLIExplanation": "ABP CLI (Command Line Interface) is a command line tool to perform some common operations for ABP based solutions.",
+ "ModularityExplanation": "ABP provides a complete infrastructure to build your own application modules those may have entities, services, database integration, APIs, UI components and so on..", //TODO: strong "your own application modules",-
+ "MultiTenancyExplanation": "ABP framework not only supports to develop multi-tenant applications, but also makes your code mostly unaware of the multi-tenancy.",
+ "MultiTenancyExplanation2": "Can automatically determine the current tenant, isolate data of different tenants from each other.",
+ "MultiTenancyExplanation3": "Supports single database, database per tenant and hybrid approaches.",
+ "MultiTenancyExplanation4": "You focus on your business code and let the framework to handle multi-tenancy on behalf of you.",
+ "BootstrapTagHelpersExplanation": "Instead of manually writing the repeating details of bootstrap components, use ABP's tag helpers to simplify it and take advantage of intellisense. You can definitely use Bootstrap whenever you need it.",
+ "DynamicFormsExplanation": "Dynamic form & input tag helpers can create the complete form from a C# class as the model.",
+ "AuthenticationAuthorizationExplanation": "Rich authentication & authorization options integrated to ASP.NET Core Identity & IdentityServer4. Provides an extensible & detailed permission system.",
+ "CrossCuttingConcernsExplanation": "Don't repeat yourself to implement all these common stuff again & again. Focus on your business code and let ABP them automate them by conventions.",
+ "DatabaseConnectionTransactionManagement": "Database Connection & Transaction Management",
+ "CorrelationIdTracking": "Correlation-Id Tracking",
+ "BundlingMinificationExplanation": "ABP offers a simple, dynamic, powerful, modular and built-in bundling & minification system.",
+ "VirtualFileSystemnExplanation": "The Virtual File System makes it possible to manage files those do not physically exist on the file system (disk). It's mainly used to embed (js, css, image, cshtml...) files into assemblies and use them like physical files on runtime.",
+ "ThemingExplanation": "Theming system allows to develop your application & modules theme independent by defining a set of common base libraries and layouts, based on the latest Bootstrap framework.",
+ "DomainDrivenDesignInfrastructureExplanation": "A complete infrastructure to build layered applications based on the Domain Driven Design patterns & principles;",
+ "Specification": "Specification",
+ "Repository": "Repository",
+ "DomainService": "Domain Service",
+ "ValueObject": "Value Object",
+ "ApplicationService": "Application Service",
+ "DataTransferObject": "Data Transfer Object",
+ "AggregateRootEntity": "Aggregate Root, Entity",
+ "AutoRESTAPIsExplanation": "ABP can automagically configure your application services as API Controllers by convention.",
+ "DynamicClientProxiesExplanation": "Easily consume your APIs from JavaScript and C# clients.",
+ "DistributedEventBusWithRabbitMQIntegrationExplanation": "Easily publish & consume distributed events using built-in Distributed Event Bus with RabbitMQ integration available.",
+ "TestInfrastructureExplanation": "The framework has been developed unit & integration testing in mind. Provides you base classes to make it easier. Startup templates come with pre-configured for testing.",
+ "AuditLoggingEntityHistoriesExplanation": "Built-in audit logging for business-critical applications. Request, service, method level audit logging and entity histories with property-level details.",
+ "EmailSMSAbstractionsWithTemplatingSupportExplanation": "IEmailSender and ISmsSender abstractions decouples your application logic from the infrastructure. Advanced email template system allows to create & localize email templates and easily use whenever needed.",
+ "LocalizationExplanation": "Localization system allows to create resources in plain JSON files and use them to localize your UI. It supports advanced scenarios like inheritance, extensions and JavaScript integration while it is fully compatible with AspNet Core's localization system.",
+ "SettingManagementExplanation": "Define settings for your application and get values on runtime based on the current configuration, tenant and user.",
+ "ExtensionMethodsHelpersExplanation": "Don't repeat yourself even for trivial code parts. Extensions & helpers for standard types makes your code much cleaner and easy to write.",
+ "AspectOrientedProgrammingExplanation": "Provides a comfortable infrastructure to create dynamic proxies and implement Aspect Oriented Programming. Intercept any class and execute your code before & after every method execution.",
+ "DependencyInjectionByConventionsExplanation": "No need to register your classes to dependency injection manually. Automatically registers common service types by convention. For other type of services, you can use interfaces and attributes to make it easier and in-place.",
+ "DataFilteringExplanation": "Define and use data filters those are automatically applied when you query entities from database. Soft Delete & MultiTenant filters are provided out of the box when you implement simple interfaces.",
+ "PublishEvents": "Publish Events",
+ "HandleEvents": "Handle Events",
+ "AndMore": "and more...",
+ "Code": "Code",
+ "Result": "Result",
+ "SeeTheDocumentForMoreInformation": "See the {0} document for more information",
+ "IndexPageHeroSection": "open sourceWeb Application
Framework for asp.net core"
+ }
+}
\ No newline at end of file
diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/tr.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/tr.json
new file mode 100644
index 0000000000..5af6a13c50
--- /dev/null
+++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/tr.json
@@ -0,0 +1,5 @@
+{
+ "culture": "tr",
+ "texts": {
+ }
+}
\ No newline at end of file
diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/zh-Hans.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/zh-Hans.json
new file mode 100644
index 0000000000..df772fa60b
--- /dev/null
+++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/zh-Hans.json
@@ -0,0 +1,5 @@
+{
+ "culture": "zh-Hans",
+ "texts": {
+ }
+}
\ No newline at end of file
diff --git a/abp_io/README.md b/abp_io/README.md
index 813329cbea..8819a4fb73 100644
--- a/abp_io/README.md
+++ b/abp_io/README.md
@@ -1,2 +1,11 @@
-## abp.io
-Source code of the official web site: https://abp.io
+## Abp.io platform localization
+
+This project is all localized resources of the abp.io platform.
+
+If you like, you can contribute to the localization resources in this project.
+
+For example: `AbpIoLocalization\AbpIoLocalization\Www\Localization\Resources\zh-Hans.json`
+If the file is missing some translations or the translation is wrong, you can add it.
+If the language file is missing (eg `kr.json`), you can also add it.
+
+Please refer to the [Contribution Guide](https://github.com/abpframework/abp/blob/dev/docs/en/Contribution/Index.md) for details.
\ No newline at end of file
diff --git a/abp_io/Volo.AbpWebSite.sln b/abp_io/Volo.AbpWebSite.sln
deleted file mode 100644
index cc597fb6ae..0000000000
--- a/abp_io/Volo.AbpWebSite.sln
+++ /dev/null
@@ -1,49 +0,0 @@
-
-Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio 15
-VisualStudioVersion = 15.0.27703.1
-MinimumVisualStudioVersion = 10.0.40219.1
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Volo.AbpWebSite.Web", "src\Volo.AbpWebSite.Web\Volo.AbpWebSite.Web.csproj", "{7B8B649E-1C25-43FD-87B1-E9FED3A57ED6}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Volo.AbpWebSite.Domain", "src\Volo.AbpWebSite.Domain\Volo.AbpWebSite.Domain.csproj", "{9D3ED14A-FFC0-486A-B9B4-B249688AC6A6}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Volo.AbpWebSite.Application", "src\Volo.AbpWebSite.Application\Volo.AbpWebSite.Application.csproj", "{DDE85F9B-15E6-4D1F-A27C-1B38569564F6}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Volo.AbpWebSite.EntityFrameworkCore", "src\Volo.AbpWebSite.EntityFrameworkCore\Volo.AbpWebSite.EntityFrameworkCore.csproj", "{028C05DB-61BF-41EF-B9AD-614A43CD0A7F}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Volo.Utils.SolutionTemplating", "src\Volo.Utils.SolutionTemplating\Volo.Utils.SolutionTemplating.csproj", "{742FCDDD-537C-42CC-AF16-A92C094D4B1D}"
-EndProject
-Global
- GlobalSection(SolutionConfigurationPlatforms) = preSolution
- Debug|Any CPU = Debug|Any CPU
- Release|Any CPU = Release|Any CPU
- EndGlobalSection
- GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {7B8B649E-1C25-43FD-87B1-E9FED3A57ED6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {7B8B649E-1C25-43FD-87B1-E9FED3A57ED6}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {7B8B649E-1C25-43FD-87B1-E9FED3A57ED6}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {7B8B649E-1C25-43FD-87B1-E9FED3A57ED6}.Release|Any CPU.Build.0 = Release|Any CPU
- {9D3ED14A-FFC0-486A-B9B4-B249688AC6A6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {9D3ED14A-FFC0-486A-B9B4-B249688AC6A6}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {9D3ED14A-FFC0-486A-B9B4-B249688AC6A6}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {9D3ED14A-FFC0-486A-B9B4-B249688AC6A6}.Release|Any CPU.Build.0 = Release|Any CPU
- {DDE85F9B-15E6-4D1F-A27C-1B38569564F6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {DDE85F9B-15E6-4D1F-A27C-1B38569564F6}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {DDE85F9B-15E6-4D1F-A27C-1B38569564F6}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {DDE85F9B-15E6-4D1F-A27C-1B38569564F6}.Release|Any CPU.Build.0 = Release|Any CPU
- {028C05DB-61BF-41EF-B9AD-614A43CD0A7F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {028C05DB-61BF-41EF-B9AD-614A43CD0A7F}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {028C05DB-61BF-41EF-B9AD-614A43CD0A7F}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {028C05DB-61BF-41EF-B9AD-614A43CD0A7F}.Release|Any CPU.Build.0 = Release|Any CPU
- {742FCDDD-537C-42CC-AF16-A92C094D4B1D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {742FCDDD-537C-42CC-AF16-A92C094D4B1D}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {742FCDDD-537C-42CC-AF16-A92C094D4B1D}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {742FCDDD-537C-42CC-AF16-A92C094D4B1D}.Release|Any CPU.Build.0 = Release|Any CPU
- EndGlobalSection
- GlobalSection(SolutionProperties) = preSolution
- HideSolutionNode = FALSE
- EndGlobalSection
- GlobalSection(ExtensibilityGlobals) = postSolution
- SolutionGuid = {F24AF782-5FD0-421E-A775-CA1C042D46BE}
- EndGlobalSection
-EndGlobal
diff --git a/abp_io/src/Volo.AbpWebSite.Application/Volo.AbpWebSite.Application.csproj b/abp_io/src/Volo.AbpWebSite.Application/Volo.AbpWebSite.Application.csproj
deleted file mode 100644
index 4a5c64eb64..0000000000
--- a/abp_io/src/Volo.AbpWebSite.Application/Volo.AbpWebSite.Application.csproj
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
-
- netcoreapp2.2
-
-
-
-
-
-
-
-
diff --git a/abp_io/src/Volo.AbpWebSite.Application/Volo/AbpWebSite/AbpWebSiteApplicationModule.cs b/abp_io/src/Volo.AbpWebSite.Application/Volo/AbpWebSite/AbpWebSiteApplicationModule.cs
deleted file mode 100644
index b7ec0f4c19..0000000000
--- a/abp_io/src/Volo.AbpWebSite.Application/Volo/AbpWebSite/AbpWebSiteApplicationModule.cs
+++ /dev/null
@@ -1,11 +0,0 @@
-using Volo.Abp.Modularity;
-
-namespace Volo.AbpWebSite
-{
- [DependsOn(
- typeof(AbpWebSiteDomainModule))]
- public class AbpWebSiteApplicationModule : AbpModule
- {
-
- }
-}
\ No newline at end of file
diff --git a/abp_io/src/Volo.AbpWebSite.Domain/Volo.AbpWebSite.Domain.csproj b/abp_io/src/Volo.AbpWebSite.Domain/Volo.AbpWebSite.Domain.csproj
deleted file mode 100644
index 78d1a7ac96..0000000000
--- a/abp_io/src/Volo.AbpWebSite.Domain/Volo.AbpWebSite.Domain.csproj
+++ /dev/null
@@ -1,19 +0,0 @@
-
-
-
- netcoreapp2.2
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/abp_io/src/Volo.AbpWebSite.Domain/Volo/AbpWebSite/AbpWebSiteDomainModule.cs b/abp_io/src/Volo.AbpWebSite.Domain/Volo/AbpWebSite/AbpWebSiteDomainModule.cs
deleted file mode 100644
index 3a85042fa0..0000000000
--- a/abp_io/src/Volo.AbpWebSite.Domain/Volo/AbpWebSite/AbpWebSiteDomainModule.cs
+++ /dev/null
@@ -1,13 +0,0 @@
-using Volo.Abp.Modularity;
-using Volo.Utils.SolutionTemplating;
-
-namespace Volo.AbpWebSite
-{
- [DependsOn(
- typeof(SolutionTemplatingModule)
- )]
- public class AbpWebSiteDomainModule : AbpModule
- {
-
- }
-}
\ No newline at end of file
diff --git a/abp_io/src/Volo.AbpWebSite.EntityFrameworkCore/Migrations/20180627081027_Initial.Designer.cs b/abp_io/src/Volo.AbpWebSite.EntityFrameworkCore/Migrations/20180627081027_Initial.Designer.cs
deleted file mode 100644
index e3faa6128e..0000000000
--- a/abp_io/src/Volo.AbpWebSite.EntityFrameworkCore/Migrations/20180627081027_Initial.Designer.cs
+++ /dev/null
@@ -1,61 +0,0 @@
-//
-using System;
-using Microsoft.EntityFrameworkCore;
-using Microsoft.EntityFrameworkCore.Infrastructure;
-using Microsoft.EntityFrameworkCore.Metadata;
-using Microsoft.EntityFrameworkCore.Migrations;
-using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
-using Volo.AbpWebSite.EntityFrameworkCore;
-
-namespace Volo.AbpWebSite.EntityFrameworkCore.Migrations
-{
- [DbContext(typeof(AbpWebSiteDbContext))]
- [Migration("20180627081027_Initial")]
- partial class Initial
- {
- protected override void BuildTargetModel(ModelBuilder modelBuilder)
- {
-#pragma warning disable 612, 618
- modelBuilder
- .HasAnnotation("ProductVersion", "2.1.0-rtm-30799")
- .HasAnnotation("Relational:MaxIdentifierLength", 128)
- .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);
-
- modelBuilder.Entity("Volo.Docs.Projects.Project", b =>
- {
- b.Property("Id")
- .ValueGeneratedOnAdd();
-
- b.Property("DefaultDocumentName")
- .IsRequired()
- .HasMaxLength(128);
-
- b.Property("DocumentStoreType");
-
- b.Property("ExtraProperties")
- .HasColumnName("ExtraProperties");
-
- b.Property("Format");
-
- b.Property("GoogleCustomSearchId");
-
- b.Property("Name")
- .IsRequired()
- .HasMaxLength(128);
-
- b.Property("NavigationDocumentName")
- .IsRequired()
- .HasMaxLength(128);
-
- b.Property("ShortName")
- .IsRequired()
- .HasMaxLength(32);
-
- b.HasKey("Id");
-
- b.ToTable("DocsProjects");
- });
-#pragma warning restore 612, 618
- }
- }
-}
diff --git a/abp_io/src/Volo.AbpWebSite.EntityFrameworkCore/Migrations/20180627081027_Initial.cs b/abp_io/src/Volo.AbpWebSite.EntityFrameworkCore/Migrations/20180627081027_Initial.cs
deleted file mode 100644
index 6696232ff3..0000000000
--- a/abp_io/src/Volo.AbpWebSite.EntityFrameworkCore/Migrations/20180627081027_Initial.cs
+++ /dev/null
@@ -1,36 +0,0 @@
-using System;
-using Microsoft.EntityFrameworkCore.Migrations;
-
-namespace Volo.AbpWebSite.EntityFrameworkCore.Migrations
-{
- public partial class Initial : Migration
- {
- protected override void Up(MigrationBuilder migrationBuilder)
- {
- migrationBuilder.CreateTable(
- name: "DocsProjects",
- columns: table => new
- {
- Id = table.Column(nullable: false),
- Name = table.Column(maxLength: 128, nullable: false),
- ShortName = table.Column(maxLength: 32, nullable: false),
- Format = table.Column(nullable: true),
- DefaultDocumentName = table.Column(maxLength: 128, nullable: false),
- NavigationDocumentName = table.Column(maxLength: 128, nullable: false),
- DocumentStoreType = table.Column(nullable: true),
- GoogleCustomSearchId = table.Column(nullable: true),
- ExtraProperties = table.Column(nullable: true)
- },
- constraints: table =>
- {
- table.PrimaryKey("PK_DocsProjects", x => x.Id);
- });
- }
-
- protected override void Down(MigrationBuilder migrationBuilder)
- {
- migrationBuilder.DropTable(
- name: "DocsProjects");
- }
- }
-}
diff --git a/abp_io/src/Volo.AbpWebSite.EntityFrameworkCore/Migrations/20180628070043_Add_DownloadInfo.Designer.cs b/abp_io/src/Volo.AbpWebSite.EntityFrameworkCore/Migrations/20180628070043_Add_DownloadInfo.Designer.cs
deleted file mode 100644
index 748a1b3264..0000000000
--- a/abp_io/src/Volo.AbpWebSite.EntityFrameworkCore/Migrations/20180628070043_Add_DownloadInfo.Designer.cs
+++ /dev/null
@@ -1,83 +0,0 @@
-//
-using System;
-using Microsoft.EntityFrameworkCore;
-using Microsoft.EntityFrameworkCore.Infrastructure;
-using Microsoft.EntityFrameworkCore.Metadata;
-using Microsoft.EntityFrameworkCore.Migrations;
-using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
-using Volo.AbpWebSite.EntityFrameworkCore;
-
-namespace Volo.AbpWebSite.EntityFrameworkCore.Migrations
-{
- [DbContext(typeof(AbpWebSiteDbContext))]
- [Migration("20180628070043_Add_DownloadInfo")]
- partial class Add_DownloadInfo
- {
- protected override void BuildTargetModel(ModelBuilder modelBuilder)
- {
-#pragma warning disable 612, 618
- modelBuilder
- .HasAnnotation("ProductVersion", "2.1.0-rtm-30799")
- .HasAnnotation("Relational:MaxIdentifierLength", 128)
- .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);
-
- modelBuilder.Entity("Volo.AbpWebSite.Downloads.DownloadInfo", b =>
- {
- b.Property("Id")
- .ValueGeneratedOnAdd()
- .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);
-
- b.Property("CreationTime");
-
- b.Property("CreatorId");
-
- b.Property("ProjectName")
- .IsRequired()
- .HasMaxLength(128);
-
- b.Property("Version")
- .HasMaxLength(20);
-
- b.HasKey("Id");
-
- b.ToTable("Downloads");
- });
-
- modelBuilder.Entity("Volo.Docs.Projects.Project", b =>
- {
- b.Property("Id")
- .ValueGeneratedOnAdd();
-
- b.Property("DefaultDocumentName")
- .IsRequired()
- .HasMaxLength(128);
-
- b.Property("DocumentStoreType");
-
- b.Property("ExtraProperties")
- .HasColumnName("ExtraProperties");
-
- b.Property("Format");
-
- b.Property("GoogleCustomSearchId");
-
- b.Property("Name")
- .IsRequired()
- .HasMaxLength(128);
-
- b.Property("NavigationDocumentName")
- .IsRequired()
- .HasMaxLength(128);
-
- b.Property("ShortName")
- .IsRequired()
- .HasMaxLength(32);
-
- b.HasKey("Id");
-
- b.ToTable("DocsProjects");
- });
-#pragma warning restore 612, 618
- }
- }
-}
diff --git a/abp_io/src/Volo.AbpWebSite.EntityFrameworkCore/Migrations/20180628070043_Add_DownloadInfo.cs b/abp_io/src/Volo.AbpWebSite.EntityFrameworkCore/Migrations/20180628070043_Add_DownloadInfo.cs
deleted file mode 100644
index 242edd7c88..0000000000
--- a/abp_io/src/Volo.AbpWebSite.EntityFrameworkCore/Migrations/20180628070043_Add_DownloadInfo.cs
+++ /dev/null
@@ -1,34 +0,0 @@
-using System;
-using Microsoft.EntityFrameworkCore.Metadata;
-using Microsoft.EntityFrameworkCore.Migrations;
-
-namespace Volo.AbpWebSite.EntityFrameworkCore.Migrations
-{
- public partial class Add_DownloadInfo : Migration
- {
- protected override void Up(MigrationBuilder migrationBuilder)
- {
- migrationBuilder.CreateTable(
- name: "Downloads",
- columns: table => new
- {
- Id = table.Column(nullable: false)
- .Annotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn),
- CreationTime = table.Column(nullable: false),
- CreatorId = table.Column(nullable: true),
- ProjectName = table.Column(maxLength: 128, nullable: false),
- Version = table.Column(maxLength: 20, nullable: true)
- },
- constraints: table =>
- {
- table.PrimaryKey("PK_Downloads", x => x.Id);
- });
- }
-
- protected override void Down(MigrationBuilder migrationBuilder)
- {
- migrationBuilder.DropTable(
- name: "Downloads");
- }
- }
-}
diff --git a/abp_io/src/Volo.AbpWebSite.EntityFrameworkCore/Migrations/20180628070356_Add_DownloadInfo_CreationDuration.Designer.cs b/abp_io/src/Volo.AbpWebSite.EntityFrameworkCore/Migrations/20180628070356_Add_DownloadInfo_CreationDuration.Designer.cs
deleted file mode 100644
index faa1abbdbc..0000000000
--- a/abp_io/src/Volo.AbpWebSite.EntityFrameworkCore/Migrations/20180628070356_Add_DownloadInfo_CreationDuration.Designer.cs
+++ /dev/null
@@ -1,86 +0,0 @@
-//
-using System;
-using Microsoft.EntityFrameworkCore;
-using Microsoft.EntityFrameworkCore.Infrastructure;
-using Microsoft.EntityFrameworkCore.Metadata;
-using Microsoft.EntityFrameworkCore.Migrations;
-using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
-using Volo.AbpWebSite.EntityFrameworkCore;
-
-namespace Volo.AbpWebSite.EntityFrameworkCore.Migrations
-{
- [DbContext(typeof(AbpWebSiteDbContext))]
- [Migration("20180628070356_Add_DownloadInfo_CreationDuration")]
- partial class Add_DownloadInfo_CreationDuration
- {
- protected override void BuildTargetModel(ModelBuilder modelBuilder)
- {
-#pragma warning disable 612, 618
- modelBuilder
- .HasAnnotation("ProductVersion", "2.1.0-rtm-30799")
- .HasAnnotation("Relational:MaxIdentifierLength", 128)
- .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);
-
- modelBuilder.Entity("Volo.AbpWebSite.Downloads.DownloadInfo", b =>
- {
- b.Property("Id")
- .ValueGeneratedOnAdd()
- .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);
-
- b.Property("CreationDuration");
-
- b.Property("CreationTime");
-
- b.Property("CreatorId");
-
- b.Property("ProjectName")
- .IsRequired()
- .HasMaxLength(128);
-
- b.Property("Version")
- .IsRequired()
- .HasMaxLength(20);
-
- b.HasKey("Id");
-
- b.ToTable("Downloads");
- });
-
- modelBuilder.Entity("Volo.Docs.Projects.Project", b =>
- {
- b.Property("Id")
- .ValueGeneratedOnAdd();
-
- b.Property("DefaultDocumentName")
- .IsRequired()
- .HasMaxLength(128);
-
- b.Property("DocumentStoreType");
-
- b.Property("ExtraProperties")
- .HasColumnName("ExtraProperties");
-
- b.Property("Format");
-
- b.Property("GoogleCustomSearchId");
-
- b.Property("Name")
- .IsRequired()
- .HasMaxLength(128);
-
- b.Property("NavigationDocumentName")
- .IsRequired()
- .HasMaxLength(128);
-
- b.Property("ShortName")
- .IsRequired()
- .HasMaxLength(32);
-
- b.HasKey("Id");
-
- b.ToTable("DocsProjects");
- });
-#pragma warning restore 612, 618
- }
- }
-}
diff --git a/abp_io/src/Volo.AbpWebSite.EntityFrameworkCore/Migrations/20180628070356_Add_DownloadInfo_CreationDuration.cs b/abp_io/src/Volo.AbpWebSite.EntityFrameworkCore/Migrations/20180628070356_Add_DownloadInfo_CreationDuration.cs
deleted file mode 100644
index 6a09b06fdb..0000000000
--- a/abp_io/src/Volo.AbpWebSite.EntityFrameworkCore/Migrations/20180628070356_Add_DownloadInfo_CreationDuration.cs
+++ /dev/null
@@ -1,40 +0,0 @@
-using Microsoft.EntityFrameworkCore.Migrations;
-
-namespace Volo.AbpWebSite.EntityFrameworkCore.Migrations
-{
- public partial class Add_DownloadInfo_CreationDuration : Migration
- {
- protected override void Up(MigrationBuilder migrationBuilder)
- {
- migrationBuilder.AlterColumn(
- name: "Version",
- table: "Downloads",
- maxLength: 20,
- nullable: false,
- oldClrType: typeof(string),
- oldMaxLength: 20,
- oldNullable: true);
-
- migrationBuilder.AddColumn(
- name: "CreationDuration",
- table: "Downloads",
- nullable: false,
- defaultValue: 0);
- }
-
- protected override void Down(MigrationBuilder migrationBuilder)
- {
- migrationBuilder.DropColumn(
- name: "CreationDuration",
- table: "Downloads");
-
- migrationBuilder.AlterColumn(
- name: "Version",
- table: "Downloads",
- maxLength: 20,
- nullable: true,
- oldClrType: typeof(string),
- oldMaxLength: 20);
- }
- }
-}
diff --git a/abp_io/src/Volo.AbpWebSite.EntityFrameworkCore/Migrations/20180715113144_DownloadInfo_TemplateName_And_DatabaseProvider.Designer.cs b/abp_io/src/Volo.AbpWebSite.EntityFrameworkCore/Migrations/20180715113144_DownloadInfo_TemplateName_And_DatabaseProvider.Designer.cs
deleted file mode 100644
index ea72102bb1..0000000000
--- a/abp_io/src/Volo.AbpWebSite.EntityFrameworkCore/Migrations/20180715113144_DownloadInfo_TemplateName_And_DatabaseProvider.Designer.cs
+++ /dev/null
@@ -1,92 +0,0 @@
-//
-using System;
-using Microsoft.EntityFrameworkCore;
-using Microsoft.EntityFrameworkCore.Infrastructure;
-using Microsoft.EntityFrameworkCore.Metadata;
-using Microsoft.EntityFrameworkCore.Migrations;
-using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
-using Volo.AbpWebSite.EntityFrameworkCore;
-
-namespace Volo.AbpWebSite.EntityFrameworkCore.Migrations
-{
- [DbContext(typeof(AbpWebSiteDbContext))]
- [Migration("20180715113144_DownloadInfo_TemplateName_And_DatabaseProvider")]
- partial class DownloadInfo_TemplateName_And_DatabaseProvider
- {
- 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.Docs.Projects.Project", b =>
- {
- b.Property("Id")
- .ValueGeneratedOnAdd();
-
- b.Property("DefaultDocumentName")
- .IsRequired()
- .HasMaxLength(128);
-
- b.Property("DocumentStoreType");
-
- b.Property("ExtraProperties")
- .HasColumnName("ExtraProperties");
-
- b.Property("Format");
-
- b.Property("GoogleCustomSearchId");
-
- b.Property("Name")
- .IsRequired()
- .HasMaxLength(128);
-
- b.Property("NavigationDocumentName")
- .IsRequired()
- .HasMaxLength(128);
-
- b.Property("ShortName")
- .IsRequired()
- .HasMaxLength(32);
-
- b.HasKey("Id");
-
- b.ToTable("DocsProjects");
- });
-
- modelBuilder.Entity("Volo.Utils.SolutionTemplating.DownloadInfo", b =>
- {
- b.Property("Id")
- .ValueGeneratedOnAdd()
- .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);
-
- b.Property("CreationDuration");
-
- b.Property("CreationTime");
-
- b.Property("CreatorId");
-
- b.Property("DatabaseProvider");
-
- b.Property("ProjectName")
- .IsRequired()
- .HasMaxLength(128);
-
- b.Property("TemplateName")
- .IsRequired()
- .HasMaxLength(42);
-
- b.Property("Version")
- .IsRequired()
- .HasMaxLength(20);
-
- b.HasKey("Id");
-
- b.ToTable("Downloads");
- });
-#pragma warning restore 612, 618
- }
- }
-}
diff --git a/abp_io/src/Volo.AbpWebSite.EntityFrameworkCore/Migrations/20180715113144_DownloadInfo_TemplateName_And_DatabaseProvider.cs b/abp_io/src/Volo.AbpWebSite.EntityFrameworkCore/Migrations/20180715113144_DownloadInfo_TemplateName_And_DatabaseProvider.cs
deleted file mode 100644
index 8353bfb2d0..0000000000
--- a/abp_io/src/Volo.AbpWebSite.EntityFrameworkCore/Migrations/20180715113144_DownloadInfo_TemplateName_And_DatabaseProvider.cs
+++ /dev/null
@@ -1,34 +0,0 @@
-using Microsoft.EntityFrameworkCore.Migrations;
-
-namespace Volo.AbpWebSite.EntityFrameworkCore.Migrations
-{
- public partial class DownloadInfo_TemplateName_And_DatabaseProvider : Migration
- {
- protected override void Up(MigrationBuilder migrationBuilder)
- {
- migrationBuilder.AddColumn(
- name: "DatabaseProvider",
- table: "Downloads",
- nullable: false,
- defaultValue: (byte)0);
-
- migrationBuilder.AddColumn(
- name: "TemplateName",
- table: "Downloads",
- maxLength: 42,
- nullable: false,
- defaultValue: "");
- }
-
- protected override void Down(MigrationBuilder migrationBuilder)
- {
- migrationBuilder.DropColumn(
- name: "DatabaseProvider",
- table: "Downloads");
-
- migrationBuilder.DropColumn(
- name: "TemplateName",
- table: "Downloads");
- }
- }
-}
diff --git a/abp_io/src/Volo.AbpWebSite.EntityFrameworkCore/Migrations/20180803070224_Added_Identity_And_Blogging_Modules.Designer.cs b/abp_io/src/Volo.AbpWebSite.EntityFrameworkCore/Migrations/20180803070224_Added_Identity_And_Blogging_Modules.Designer.cs
deleted file mode 100644
index 57475ec752..0000000000
--- a/abp_io/src/Volo.AbpWebSite.EntityFrameworkCore/Migrations/20180803070224_Added_Identity_And_Blogging_Modules.Designer.cs
+++ /dev/null
@@ -1,509 +0,0 @@
-//
-using System;
-using Microsoft.EntityFrameworkCore;
-using Microsoft.EntityFrameworkCore.Infrastructure;
-using Microsoft.EntityFrameworkCore.Metadata;
-using Microsoft.EntityFrameworkCore.Migrations;
-using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
-using Volo.AbpWebSite.EntityFrameworkCore;
-
-namespace Volo.AbpWebSite.EntityFrameworkCore.Migrations
-{
- [DbContext(typeof(AbpWebSiteDbContext))]
- [Migration("20180803070224_Added_Identity_And_Blogging_Modules")]
- partial class Added_Identity_And_Blogging_Modules
- {
- 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.IdentityRole", b =>
- {
- b.Property("Id")
- .ValueGeneratedOnAdd();
-
- b.Property("ConcurrencyStamp");
-
- b.Property("Name")
- .IsRequired()
- .HasMaxLength(256);
-
- b.Property("NormalizedName")
- .IsRequired()
- .HasMaxLength(256);
-
- b.Property("TenantId");
-
- b.HasKey("Id");
-
- b.HasIndex("NormalizedName");
-
- b.ToTable("AbpRoles");
- });
-
- modelBuilder.Entity("Volo.Abp.Identity.IdentityRoleClaim", b =>
- {
- b.Property("Id")
- .ValueGeneratedOnAdd();
-
- b.Property("ClaimType")
- .IsRequired()
- .HasMaxLength(256);
-
- b.Property("ClaimValue")
- .HasMaxLength(1024);
-
- b.Property("RoleId");
-
- b.Property("TenantId");
-
- b.HasKey("Id");
-
- b.HasIndex("RoleId");
-
- b.ToTable("AbpRoleClaims");
- });
-
- modelBuilder.Entity("Volo.Abp.Identity.IdentityUser", b =>
- {
- b.Property("Id")
- .ValueGeneratedOnAdd();
-
- b.Property("AccessFailedCount")
- .ValueGeneratedOnAdd()
- .HasColumnName("AccessFailedCount")
- .HasDefaultValue(0);
-
- b.Property("ConcurrencyStamp")
- .IsRequired()
- .HasColumnName("ConcurrencyStamp")
- .HasMaxLength(256);
-
- b.Property("Email")
- .HasColumnName("Email")
- .HasMaxLength(256);
-
- b.Property("EmailConfirmed")
- .ValueGeneratedOnAdd()
- .HasColumnName("EmailConfirmed")
- .HasDefaultValue(false);
-
- b.Property("ExtraProperties")
- .HasColumnName("ExtraProperties");
-
- b.Property("LockoutEnabled")
- .ValueGeneratedOnAdd()
- .HasColumnName("LockoutEnabled")
- .HasDefaultValue(false);
-
- b.Property("LockoutEnd");
-
- b.Property("NormalizedEmail")
- .HasColumnName("NormalizedEmail")
- .HasMaxLength(256);
-
- b.Property("NormalizedUserName")
- .IsRequired()
- .HasColumnName("NormalizedUserName")
- .HasMaxLength(256);
-
- b.Property("PasswordHash")
- .HasColumnName("PasswordHash")
- .HasMaxLength(256);
-
- b.Property("PhoneNumber")
- .HasColumnName("PhoneNumber")
- .HasMaxLength(16);
-
- b.Property("PhoneNumberConfirmed")
- .ValueGeneratedOnAdd()
- .HasColumnName("PhoneNumberConfirmed")
- .HasDefaultValue(false);
-
- b.Property("SecurityStamp")
- .IsRequired()
- .HasColumnName("SecurityStamp")
- .HasMaxLength(256);
-
- b.Property("TenantId")
- .HasColumnName("TenantId");
-
- b.Property("TwoFactorEnabled")
- .ValueGeneratedOnAdd()
- .HasColumnName("TwoFactorEnabled")
- .HasDefaultValue(false);
-
- b.Property("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("Id")
- .ValueGeneratedOnAdd();
-
- b.Property("ClaimType")
- .IsRequired()
- .HasMaxLength(256);
-
- b.Property("ClaimValue")
- .HasMaxLength(1024);
-
- b.Property("TenantId");
-
- b.Property("UserId");
-
- b.HasKey("Id");
-
- b.HasIndex("UserId");
-
- b.ToTable("AbpUserClaims");
- });
-
- modelBuilder.Entity("Volo.Abp.Identity.IdentityUserLogin", b =>
- {
- b.Property("UserId");
-
- b.Property("LoginProvider")
- .HasMaxLength(64);
-
- b.Property("ProviderDisplayName")
- .HasMaxLength(128);
-
- b.Property("ProviderKey")
- .IsRequired()
- .HasMaxLength(196);
-
- b.Property("TenantId");
-
- b.HasKey("UserId", "LoginProvider");
-
- b.HasIndex("LoginProvider", "ProviderKey");
-
- b.ToTable("AbpUserLogins");
- });
-
- modelBuilder.Entity("Volo.Abp.Identity.IdentityUserRole", b =>
- {
- b.Property("UserId");
-
- b.Property("RoleId");
-
- b.Property("TenantId");
-
- b.HasKey("UserId", "RoleId");
-
- b.HasIndex("RoleId", "UserId");
-
- b.ToTable("AbpUserRoles");
- });
-
- modelBuilder.Entity("Volo.Abp.Identity.IdentityUserToken", b =>
- {
- b.Property("UserId");
-
- b.Property("LoginProvider")
- .HasMaxLength(128);
-
- b.Property("Name");
-
- b.Property("TenantId");
-
- b.Property("Value");
-
- b.HasKey("UserId", "LoginProvider", "Name");
-
- b.ToTable("AbpUserTokens");
- });
-
- modelBuilder.Entity("Volo.Abp.PermissionManagement.PermissionGrant", b =>
- {
- b.Property("Id")
- .ValueGeneratedOnAdd();
-
- b.Property("Name")
- .IsRequired()
- .HasMaxLength(128);
-
- b.Property("ProviderKey")
- .IsRequired()
- .HasMaxLength(64);
-
- b.Property("ProviderName")
- .IsRequired()
- .HasMaxLength(64);
-
- b.Property("TenantId");
-
- b.HasKey("Id");
-
- b.HasIndex("Name", "ProviderName", "ProviderKey");
-
- b.ToTable("AbpPermissionGrants");
- });
-
- modelBuilder.Entity("Volo.Abp.SettingManagement.Setting", b =>
- {
- b.Property("Id")
- .ValueGeneratedOnAdd();
-
- b.Property("Name")
- .IsRequired()
- .HasMaxLength(128);
-
- b.Property("ProviderKey")
- .HasMaxLength(64);
-
- b.Property("ProviderName")
- .HasMaxLength(64);
-
- b.Property("Value")
- .IsRequired()
- .HasMaxLength(2048);
-
- b.HasKey("Id");
-
- b.HasIndex("Name", "ProviderName", "ProviderKey");
-
- b.ToTable("AbpSettings");
- });
-
- modelBuilder.Entity("Volo.Blogging.Blogs.Blog", b =>
- {
- b.Property("Id")
- .ValueGeneratedOnAdd();
-
- b.Property("CreationTime")
- .HasColumnName("CreationTime");
-
- b.Property("CreatorId")
- .HasColumnName("CreatorId");
-
- b.Property("DeleterId")
- .HasColumnName("DeleterId");
-
- b.Property("DeletionTime")
- .HasColumnName("DeletionTime");
-
- b.Property("Description")
- .HasColumnName("Description")
- .HasMaxLength(1024);
-
- b.Property("IsDeleted")
- .ValueGeneratedOnAdd()
- .HasColumnName("IsDeleted")
- .HasDefaultValue(false);
-
- b.Property("LastModificationTime")
- .HasColumnName("LastModificationTime");
-
- b.Property("LastModifierId")
- .HasColumnName("LastModifierId");
-
- b.Property("Name")
- .IsRequired()
- .HasColumnName("Name")
- .HasMaxLength(256);
-
- b.Property("ShortName")
- .IsRequired()
- .HasColumnName("ShortName")
- .HasMaxLength(32);
-
- b.HasKey("Id");
-
- b.ToTable("BlgBlogs");
- });
-
- modelBuilder.Entity("Volo.Blogging.Posts.Post", b =>
- {
- b.Property("Id")
- .ValueGeneratedOnAdd();
-
- b.Property("BlogId")
- .HasColumnName("BlogId");
-
- b.Property("Content")
- .HasColumnName("Content")
- .HasMaxLength(1048576);
-
- b.Property("CreationTime")
- .HasColumnName("CreationTime");
-
- b.Property("CreatorId")
- .HasColumnName("CreatorId");
-
- b.Property("DeleterId")
- .HasColumnName("DeleterId");
-
- b.Property("DeletionTime")
- .HasColumnName("DeletionTime");
-
- b.Property("IsDeleted")
- .ValueGeneratedOnAdd()
- .HasColumnName("IsDeleted")
- .HasDefaultValue(false);
-
- b.Property("LastModificationTime")
- .HasColumnName("LastModificationTime");
-
- b.Property("LastModifierId")
- .HasColumnName("LastModifierId");
-
- b.Property("Title")
- .IsRequired()
- .HasColumnName("Title")
- .HasMaxLength(512);
-
- b.Property("Url")
- .IsRequired()
- .HasColumnName("Url")
- .HasMaxLength(64);
-
- b.HasKey("Id");
-
- b.HasIndex("BlogId");
-
- b.ToTable("BlgPosts");
- });
-
- modelBuilder.Entity("Volo.Docs.Projects.Project", b =>
- {
- b.Property("Id")
- .ValueGeneratedOnAdd();
-
- b.Property("DefaultDocumentName")
- .IsRequired()
- .HasMaxLength(128);
-
- b.Property("DocumentStoreType");
-
- b.Property("ExtraProperties")
- .HasColumnName("ExtraProperties");
-
- b.Property("Format");
-
- b.Property("GoogleCustomSearchId");
-
- b.Property("Name")
- .IsRequired()
- .HasMaxLength(128);
-
- b.Property("NavigationDocumentName")
- .IsRequired()
- .HasMaxLength(128);
-
- b.Property("ShortName")
- .IsRequired()
- .HasMaxLength(32);
-
- b.HasKey("Id");
-
- b.ToTable("DocsProjects");
- });
-
- modelBuilder.Entity("Volo.Utils.SolutionTemplating.DownloadInfo", b =>
- {
- b.Property("Id")
- .ValueGeneratedOnAdd()
- .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);
-
- b.Property("CreationDuration");
-
- b.Property("CreationTime");
-
- b.Property("CreatorId");
-
- b.Property("DatabaseProvider");
-
- b.Property("ProjectName")
- .IsRequired()
- .HasMaxLength(128);
-
- b.Property("TemplateName")
- .IsRequired()
- .HasMaxLength(42);
-
- b.Property("Version")
- .IsRequired()
- .HasMaxLength(20);
-
- b.HasKey("Id");
-
- b.ToTable("Downloads");
- });
-
- 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);
- });
-
- modelBuilder.Entity("Volo.Blogging.Posts.Post", b =>
- {
- b.HasOne("Volo.Blogging.Blogs.Blog")
- .WithMany()
- .HasForeignKey("BlogId")
- .OnDelete(DeleteBehavior.Cascade);
- });
-#pragma warning restore 612, 618
- }
- }
-}
diff --git a/abp_io/src/Volo.AbpWebSite.EntityFrameworkCore/Migrations/20180803070224_Added_Identity_And_Blogging_Modules.cs b/abp_io/src/Volo.AbpWebSite.EntityFrameworkCore/Migrations/20180803070224_Added_Identity_And_Blogging_Modules.cs
deleted file mode 100644
index 9b02f2234f..0000000000
--- a/abp_io/src/Volo.AbpWebSite.EntityFrameworkCore/Migrations/20180803070224_Added_Identity_And_Blogging_Modules.cs
+++ /dev/null
@@ -1,337 +0,0 @@
-using System;
-using Microsoft.EntityFrameworkCore.Migrations;
-
-namespace Volo.AbpWebSite.EntityFrameworkCore.Migrations
-{
- public partial class Added_Identity_And_Blogging_Modules : Migration
- {
- protected override void Up(MigrationBuilder migrationBuilder)
- {
- migrationBuilder.CreateTable(
- name: "AbpPermissionGrants",
- columns: table => new
- {
- Id = table.Column(nullable: false),
- TenantId = table.Column(nullable: true),
- Name = table.Column(maxLength: 128, nullable: false),
- ProviderName = table.Column(maxLength: 64, nullable: false),
- ProviderKey = table.Column(maxLength: 64, nullable: false)
- },
- constraints: table =>
- {
- table.PrimaryKey("PK_AbpPermissionGrants", x => x.Id);
- });
-
- migrationBuilder.CreateTable(
- name: "AbpRoles",
- columns: table => new
- {
- Id = table.Column(nullable: false),
- TenantId = table.Column(nullable: true),
- Name = table.Column(maxLength: 256, nullable: false),
- NormalizedName = table.Column(maxLength: 256, nullable: false),
- ConcurrencyStamp = table.Column(nullable: true)
- },
- constraints: table =>
- {
- table.PrimaryKey("PK_AbpRoles", x => x.Id);
- });
-
- migrationBuilder.CreateTable(
- name: "AbpSettings",
- columns: table => new
- {
- Id = table.Column(nullable: false),
- Name = table.Column(maxLength: 128, nullable: false),
- Value = table.Column(maxLength: 2048, nullable: false),
- ProviderName = table.Column(maxLength: 64, nullable: true),
- ProviderKey = table.Column(maxLength: 64, nullable: true)
- },
- constraints: table =>
- {
- table.PrimaryKey("PK_AbpSettings", x => x.Id);
- });
-
- migrationBuilder.CreateTable(
- name: "AbpUsers",
- columns: table => new
- {
- Id = table.Column(nullable: false),
- TenantId = table.Column(nullable: true),
- UserName = table.Column(maxLength: 256, nullable: false),
- NormalizedUserName = table.Column(maxLength: 256, nullable: false),
- Email = table.Column(maxLength: 256, nullable: true),
- NormalizedEmail = table.Column(maxLength: 256, nullable: true),
- EmailConfirmed = table.Column(nullable: false, defaultValue: false),
- PasswordHash = table.Column(maxLength: 256, nullable: true),
- SecurityStamp = table.Column(maxLength: 256, nullable: false),
- ConcurrencyStamp = table.Column(maxLength: 256, nullable: false),
- PhoneNumber = table.Column(maxLength: 16, nullable: true),
- PhoneNumberConfirmed = table.Column(nullable: false, defaultValue: false),
- TwoFactorEnabled = table.Column(nullable: false, defaultValue: false),
- LockoutEnd = table.Column(nullable: true),
- LockoutEnabled = table.Column(nullable: false, defaultValue: false),
- AccessFailedCount = table.Column(nullable: false, defaultValue: 0),
- ExtraProperties = table.Column(nullable: true)
- },
- constraints: table =>
- {
- table.PrimaryKey("PK_AbpUsers", x => x.Id);
- });
-
- migrationBuilder.CreateTable(
- name: "BlgBlogs",
- columns: table => new
- {
- Id = table.Column(nullable: false),
- CreationTime = table.Column(nullable: false),
- CreatorId = table.Column(nullable: true),
- LastModificationTime = table.Column(nullable: true),
- LastModifierId = table.Column(nullable: true),
- IsDeleted = table.Column(nullable: false, defaultValue: false),
- DeleterId = table.Column(nullable: true),
- DeletionTime = table.Column(nullable: true),
- Name = table.Column(maxLength: 256, nullable: false),
- ShortName = table.Column(maxLength: 32, nullable: false),
- Description = table.Column(maxLength: 1024, nullable: true)
- },
- constraints: table =>
- {
- table.PrimaryKey("PK_BlgBlogs", x => x.Id);
- });
-
- migrationBuilder.CreateTable(
- name: "AbpRoleClaims",
- columns: table => new
- {
- Id = table.Column(nullable: false),
- TenantId = table.Column(nullable: true),
- ClaimType = table.Column(maxLength: 256, nullable: false),
- ClaimValue = table.Column(maxLength: 1024, nullable: true),
- RoleId = table.Column(nullable: false)
- },
- constraints: table =>
- {
- table.PrimaryKey("PK_AbpRoleClaims", x => x.Id);
- table.ForeignKey(
- name: "FK_AbpRoleClaims_AbpRoles_RoleId",
- column: x => x.RoleId,
- principalTable: "AbpRoles",
- principalColumn: "Id",
- onDelete: ReferentialAction.Cascade);
- });
-
- migrationBuilder.CreateTable(
- name: "AbpUserClaims",
- columns: table => new
- {
- Id = table.Column(nullable: false),
- TenantId = table.Column(nullable: true),
- ClaimType = table.Column(maxLength: 256, nullable: false),
- ClaimValue = table.Column(maxLength: 1024, nullable: true),
- UserId = table.Column(nullable: false)
- },
- constraints: table =>
- {
- table.PrimaryKey("PK_AbpUserClaims", x => x.Id);
- table.ForeignKey(
- name: "FK_AbpUserClaims_AbpUsers_UserId",
- column: x => x.UserId,
- principalTable: "AbpUsers",
- principalColumn: "Id",
- onDelete: ReferentialAction.Cascade);
- });
-
- migrationBuilder.CreateTable(
- name: "AbpUserLogins",
- columns: table => new
- {
- TenantId = table.Column(nullable: true),
- UserId = table.Column(nullable: false),
- LoginProvider = table.Column(maxLength: 64, nullable: false),
- ProviderKey = table.Column(maxLength: 196, nullable: false),
- ProviderDisplayName = table.Column(maxLength: 128, nullable: true)
- },
- constraints: table =>
- {
- table.PrimaryKey("PK_AbpUserLogins", x => new { x.UserId, x.LoginProvider });
- table.ForeignKey(
- name: "FK_AbpUserLogins_AbpUsers_UserId",
- column: x => x.UserId,
- principalTable: "AbpUsers",
- principalColumn: "Id",
- onDelete: ReferentialAction.Cascade);
- });
-
- migrationBuilder.CreateTable(
- name: "AbpUserRoles",
- columns: table => new
- {
- TenantId = table.Column(nullable: true),
- UserId = table.Column(nullable: false),
- RoleId = table.Column(nullable: false)
- },
- constraints: table =>
- {
- table.PrimaryKey("PK_AbpUserRoles", x => new { x.UserId, x.RoleId });
- table.ForeignKey(
- name: "FK_AbpUserRoles_AbpRoles_RoleId",
- column: x => x.RoleId,
- principalTable: "AbpRoles",
- principalColumn: "Id",
- onDelete: ReferentialAction.Cascade);
- table.ForeignKey(
- name: "FK_AbpUserRoles_AbpUsers_UserId",
- column: x => x.UserId,
- principalTable: "AbpUsers",
- principalColumn: "Id",
- onDelete: ReferentialAction.Cascade);
- });
-
- migrationBuilder.CreateTable(
- name: "AbpUserTokens",
- columns: table => new
- {
- TenantId = table.Column(nullable: true),
- UserId = table.Column(nullable: false),
- LoginProvider = table.Column(maxLength: 128, nullable: false),
- Name = table.Column(nullable: false),
- Value = table.Column(nullable: true)
- },
- constraints: table =>
- {
- table.PrimaryKey("PK_AbpUserTokens", x => new { x.UserId, x.LoginProvider, x.Name });
- table.ForeignKey(
- name: "FK_AbpUserTokens_AbpUsers_UserId",
- column: x => x.UserId,
- principalTable: "AbpUsers",
- principalColumn: "Id",
- onDelete: ReferentialAction.Cascade);
- });
-
- migrationBuilder.CreateTable(
- name: "BlgPosts",
- columns: table => new
- {
- Id = table.Column(nullable: false),
- CreationTime = table.Column(nullable: false),
- CreatorId = table.Column(nullable: true),
- LastModificationTime = table.Column(nullable: true),
- LastModifierId = table.Column(nullable: true),
- IsDeleted = table.Column(nullable: false, defaultValue: false),
- DeleterId = table.Column(nullable: true),
- DeletionTime = table.Column