Browse Source

Merge pull request #1863 from abpframework/maliming/sample3.0

Upgrade BookStore related samples to asp net core 3.0
pull/1884/head
Halil İbrahim Kalkan 7 years ago
committed by GitHub
parent
commit
018db6baff
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 8
      samples/BookStore-Angular-MongoDb/angular/package.json
  2. 14
      samples/BookStore-Angular-MongoDb/angular/src/app/app.module.ts
  3. 2
      samples/BookStore-Angular-MongoDb/angular/src/app/home/home.component.html
  4. 6
      samples/BookStore-Angular-MongoDb/angular/src/environments/environment.hmr.ts
  5. 6
      samples/BookStore-Angular-MongoDb/angular/src/environments/environment.prod.ts
  6. 6
      samples/BookStore-Angular-MongoDb/angular/src/environments/environment.ts
  7. 26
      samples/BookStore-Angular-MongoDb/aspnet-core/Acme.BookStore.sln.DotSettings
  8. 2
      samples/BookStore-Angular-MongoDb/aspnet-core/src/Acme.BookStore.Application.Contracts/Acme.BookStore.Application.Contracts.csproj
  9. 0
      samples/BookStore-Angular-MongoDb/aspnet-core/src/Acme.BookStore.Application.Contracts/Permissions/BookStorePermissionDefinitionProvider.cs
  10. 0
      samples/BookStore-Angular-MongoDb/aspnet-core/src/Acme.BookStore.Application.Contracts/Permissions/BookStorePermissions.cs
  11. 4
      samples/BookStore-Angular-MongoDb/aspnet-core/src/Acme.BookStore.Application/Acme.BookStore.Application.csproj
  12. 3
      samples/BookStore-Angular-MongoDb/aspnet-core/src/Acme.BookStore.Application/BookStoreApplicationAutoMapperProfile.cs
  13. 6
      samples/BookStore-Angular-MongoDb/aspnet-core/src/Acme.BookStore.Application/BookStoreApplicationModule.cs
  14. 5
      samples/BookStore-Angular-MongoDb/aspnet-core/src/Acme.BookStore.DbMigrator/Acme.BookStore.DbMigrator.csproj
  15. 6
      samples/BookStore-Angular-MongoDb/aspnet-core/src/Acme.BookStore.DbMigrator/BookStoreDbMigratorModule.cs
  16. 6
      samples/BookStore-Angular-MongoDb/aspnet-core/src/Acme.BookStore.DbMigrator/appsettings.json
  17. 4
      samples/BookStore-Angular-MongoDb/aspnet-core/src/Acme.BookStore.Domain.Shared/Acme.BookStore.Domain.Shared.csproj
  18. 5
      samples/BookStore-Angular-MongoDb/aspnet-core/src/Acme.BookStore.Domain/Acme.BookStore.Domain.csproj
  19. 46
      samples/BookStore-Angular-MongoDb/aspnet-core/src/Acme.BookStore.Domain/BookStoreDataSeederContributor.cs
  20. 4
      samples/BookStore-Angular-MongoDb/aspnet-core/src/Acme.BookStore.Domain/IdentityServer/IdentityServerDataSeedContributor.cs
  21. 4
      samples/BookStore-Angular-MongoDb/aspnet-core/src/Acme.BookStore.HttpApi.Client/Acme.BookStore.HttpApi.Client.csproj
  22. 10
      samples/BookStore-Angular-MongoDb/aspnet-core/src/Acme.BookStore.HttpApi.Host/Acme.BookStore.HttpApi.Host.csproj
  23. 21
      samples/BookStore-Angular-MongoDb/aspnet-core/src/Acme.BookStore.HttpApi.Host/BookStoreHttpApiHostModule.cs
  24. 4
      samples/BookStore-Angular-MongoDb/aspnet-core/src/Acme.BookStore.HttpApi.Host/Controllers/HomeController.cs
  25. 6
      samples/BookStore-Angular-MongoDb/aspnet-core/src/Acme.BookStore.HttpApi.Host/Properties/launchSettings.json
  26. 2
      samples/BookStore-Angular-MongoDb/aspnet-core/src/Acme.BookStore.HttpApi.Host/Startup.cs
  27. 7
      samples/BookStore-Angular-MongoDb/aspnet-core/src/Acme.BookStore.HttpApi.Host/appsettings.json
  28. 2
      samples/BookStore-Angular-MongoDb/aspnet-core/src/Acme.BookStore.HttpApi.Host/package.json
  29. 8196
      samples/BookStore-Angular-MongoDb/aspnet-core/src/Acme.BookStore.HttpApi.Host/wwwroot/libs/luxon/luxon.js
  30. 1
      samples/BookStore-Angular-MongoDb/aspnet-core/src/Acme.BookStore.HttpApi.Host/wwwroot/libs/luxon/luxon.js.map
  31. 1
      samples/BookStore-Angular-MongoDb/aspnet-core/src/Acme.BookStore.HttpApi.Host/wwwroot/libs/luxon/luxon.min.js
  32. 1
      samples/BookStore-Angular-MongoDb/aspnet-core/src/Acme.BookStore.HttpApi.Host/wwwroot/libs/luxon/luxon.min.js.map
  33. 219
      samples/BookStore-Angular-MongoDb/aspnet-core/src/Acme.BookStore.HttpApi.Host/yarn.lock
  34. 4
      samples/BookStore-Angular-MongoDb/aspnet-core/src/Acme.BookStore.HttpApi/Acme.BookStore.HttpApi.csproj
  35. 4
      samples/BookStore-Angular-MongoDb/aspnet-core/src/Acme.BookStore.MongoDB/Acme.BookStore.MongoDB.csproj
  36. 4
      samples/BookStore-Angular-MongoDb/aspnet-core/test/Acme.BookStore.Application.Tests/Acme.BookStore.Application.Tests.csproj
  37. 72
      samples/BookStore-Angular-MongoDb/aspnet-core/test/Acme.BookStore.Application.Tests/BookAppService_Tests.cs
  38. 4
      samples/BookStore-Angular-MongoDb/aspnet-core/test/Acme.BookStore.Domain.Tests/Acme.BookStore.Domain.Tests.csproj
  39. 4
      samples/BookStore-Angular-MongoDb/aspnet-core/test/Acme.BookStore.HttpApi.Client.ConsoleTestApp/Acme.BookStore.HttpApi.Client.ConsoleTestApp.csproj
  40. 6
      samples/BookStore-Angular-MongoDb/aspnet-core/test/Acme.BookStore.HttpApi.Client.ConsoleTestApp/appsettings.json
  41. 4
      samples/BookStore-Angular-MongoDb/aspnet-core/test/Acme.BookStore.MongoDB.Tests/Acme.BookStore.MongoDB.Tests.csproj
  42. 2
      samples/BookStore-Angular-MongoDb/aspnet-core/test/Acme.BookStore.MongoDB.Tests/MongoDb/BookStoreMongoDbTestModule.cs
  43. 4
      samples/BookStore-Angular-MongoDb/aspnet-core/test/Acme.BookStore.TestBase/Acme.BookStore.TestBase.csproj
  44. 43
      samples/BookStore-Angular-MongoDb/aspnet-core/test/Acme.BookStore.TestBase/BookStoreTestDataSeedContributor.cs
  45. 12
      samples/BookStore-Modular/application/src/Acme.BookStore.Application.Contracts/Acme.BookStore.Application.Contracts.csproj
  46. 14
      samples/BookStore-Modular/application/src/Acme.BookStore.Application/Acme.BookStore.Application.csproj
  47. 6
      samples/BookStore-Modular/application/src/Acme.BookStore.Application/BookStoreApplicationModule.cs
  48. 5
      samples/BookStore-Modular/application/src/Acme.BookStore.DbMigrator/Acme.BookStore.DbMigrator.csproj
  49. 2
      samples/BookStore-Modular/application/src/Acme.BookStore.DbMigrator/appsettings.json
  50. 18
      samples/BookStore-Modular/application/src/Acme.BookStore.Domain.Shared/Acme.BookStore.Domain.Shared.csproj
  51. 22
      samples/BookStore-Modular/application/src/Acme.BookStore.Domain/Acme.BookStore.Domain.csproj
  52. 4
      samples/BookStore-Modular/application/src/Acme.BookStore.Domain/BookStoreDomainModule.cs
  53. 6
      samples/BookStore-Modular/application/src/Acme.BookStore.EntityFrameworkCore.DbMigrations/Acme.BookStore.EntityFrameworkCore.DbMigrations.csproj
  54. 18
      samples/BookStore-Modular/application/src/Acme.BookStore.EntityFrameworkCore.DbMigrations/Migrations/20190918061142_Initial.Designer.cs
  55. 14
      samples/BookStore-Modular/application/src/Acme.BookStore.EntityFrameworkCore.DbMigrations/Migrations/20190918061142_Initial.cs
  56. 782
      samples/BookStore-Modular/application/src/Acme.BookStore.EntityFrameworkCore.DbMigrations/Migrations/20191008070344_Added_Book_Entity.Designer.cs
  57. 15
      samples/BookStore-Modular/application/src/Acme.BookStore.EntityFrameworkCore.DbMigrations/Migrations/20191008070344_Added_Book_Entity.cs
  58. 780
      samples/BookStore-Modular/application/src/Acme.BookStore.EntityFrameworkCore.DbMigrations/Migrations/BookStoreMigrationsDbContextModelSnapshot.cs
  59. 22
      samples/BookStore-Modular/application/src/Acme.BookStore.EntityFrameworkCore/Acme.BookStore.EntityFrameworkCore.csproj
  60. 14
      samples/BookStore-Modular/application/src/Acme.BookStore.HttpApi.Client/Acme.BookStore.HttpApi.Client.csproj
  61. 14
      samples/BookStore-Modular/application/src/Acme.BookStore.HttpApi/Acme.BookStore.HttpApi.csproj
  62. 24
      samples/BookStore-Modular/application/src/Acme.BookStore.Web/Acme.BookStore.Web.csproj
  63. 25
      samples/BookStore-Modular/application/src/Acme.BookStore.Web/BookStoreWebModule.cs
  64. 2
      samples/BookStore-Modular/application/src/Acme.BookStore.Web/Program.cs
  65. 6
      samples/BookStore-Modular/application/src/Acme.BookStore.Web/Properties/launchSettings.json
  66. 4
      samples/BookStore-Modular/application/src/Acme.BookStore.Web/appsettings.json
  67. 2
      samples/BookStore-Modular/application/src/Acme.BookStore.Web/package.json
  68. 2067
      samples/BookStore-Modular/application/src/Acme.BookStore.Web/wwwroot/libs/bootstrap/css/bootstrap.css
  69. 6645
      samples/BookStore-Modular/application/src/Acme.BookStore.Web/wwwroot/libs/bootstrap/js/bootstrap.bundle.js
  70. 6
      samples/BookStore-Modular/application/src/Acme.BookStore.Web/wwwroot/libs/datatables.net-bs4/css/dataTables.bootstrap4.css
  71. 10
      samples/BookStore-Modular/application/src/Acme.BookStore.Web/wwwroot/libs/datatables.net-bs4/js/dataTables.bootstrap4.js
  72. 200
      samples/BookStore-Modular/application/src/Acme.BookStore.Web/wwwroot/libs/datatables.net/js/jquery.dataTables.js
  73. 19
      samples/BookStore-Modular/application/src/Acme.BookStore.Web/wwwroot/libs/jquery-validation-unobtrusive/jquery.validate.unobtrusive.js
  74. 85
      samples/BookStore-Modular/application/src/Acme.BookStore.Web/wwwroot/libs/jquery-validation/jquery.validate.js
  75. 4
      samples/BookStore-Modular/application/src/Acme.BookStore.Web/wwwroot/libs/jquery-validation/localization/messages_ar.min.js
  76. 4
      samples/BookStore-Modular/application/src/Acme.BookStore.Web/wwwroot/libs/jquery-validation/localization/messages_az.min.js
  77. 2
      samples/BookStore-Modular/application/src/Acme.BookStore.Web/wwwroot/libs/jquery-validation/localization/messages_bg.js
  78. 4
      samples/BookStore-Modular/application/src/Acme.BookStore.Web/wwwroot/libs/jquery-validation/localization/messages_bg.min.js
  79. 4
      samples/BookStore-Modular/application/src/Acme.BookStore.Web/wwwroot/libs/jquery-validation/localization/messages_bn_BD.min.js
  80. 4
      samples/BookStore-Modular/application/src/Acme.BookStore.Web/wwwroot/libs/jquery-validation/localization/messages_ca.min.js
  81. 3
      samples/BookStore-Modular/application/src/Acme.BookStore.Web/wwwroot/libs/jquery-validation/localization/messages_cs.js
  82. 4
      samples/BookStore-Modular/application/src/Acme.BookStore.Web/wwwroot/libs/jquery-validation/localization/messages_cs.min.js
  83. 22
      samples/BookStore-Modular/application/src/Acme.BookStore.Web/wwwroot/libs/jquery-validation/localization/messages_da.js
  84. 4
      samples/BookStore-Modular/application/src/Acme.BookStore.Web/wwwroot/libs/jquery-validation/localization/messages_da.min.js
  85. 58
      samples/BookStore-Modular/application/src/Acme.BookStore.Web/wwwroot/libs/jquery-validation/localization/messages_de.js
  86. 4
      samples/BookStore-Modular/application/src/Acme.BookStore.Web/wwwroot/libs/jquery-validation/localization/messages_de.min.js
  87. 4
      samples/BookStore-Modular/application/src/Acme.BookStore.Web/wwwroot/libs/jquery-validation/localization/messages_el.min.js
  88. 4
      samples/BookStore-Modular/application/src/Acme.BookStore.Web/wwwroot/libs/jquery-validation/localization/messages_es.min.js
  89. 4
      samples/BookStore-Modular/application/src/Acme.BookStore.Web/wwwroot/libs/jquery-validation/localization/messages_es_AR.min.js
  90. 4
      samples/BookStore-Modular/application/src/Acme.BookStore.Web/wwwroot/libs/jquery-validation/localization/messages_es_PE.min.js
  91. 4
      samples/BookStore-Modular/application/src/Acme.BookStore.Web/wwwroot/libs/jquery-validation/localization/messages_et.min.js
  92. 4
      samples/BookStore-Modular/application/src/Acme.BookStore.Web/wwwroot/libs/jquery-validation/localization/messages_eu.min.js
  93. 13
      samples/BookStore-Modular/application/src/Acme.BookStore.Web/wwwroot/libs/jquery-validation/localization/messages_fa.js
  94. 4
      samples/BookStore-Modular/application/src/Acme.BookStore.Web/wwwroot/libs/jquery-validation/localization/messages_fa.min.js
  95. 4
      samples/BookStore-Modular/application/src/Acme.BookStore.Web/wwwroot/libs/jquery-validation/localization/messages_fi.min.js
  96. 2
      samples/BookStore-Modular/application/src/Acme.BookStore.Web/wwwroot/libs/jquery-validation/localization/messages_fr.js
  97. 4
      samples/BookStore-Modular/application/src/Acme.BookStore.Web/wwwroot/libs/jquery-validation/localization/messages_fr.min.js
  98. 4
      samples/BookStore-Modular/application/src/Acme.BookStore.Web/wwwroot/libs/jquery-validation/localization/messages_ge.min.js
  99. 4
      samples/BookStore-Modular/application/src/Acme.BookStore.Web/wwwroot/libs/jquery-validation/localization/messages_gl.min.js
  100. 4
      samples/BookStore-Modular/application/src/Acme.BookStore.Web/wwwroot/libs/jquery-validation/localization/messages_he.min.js

8
samples/BookStore-Angular-MongoDb/angular/package.json

@ -13,10 +13,10 @@
},
"private": true,
"dependencies": {
"@abp/ng.account": "^0.8.3",
"@abp/ng.identity": "^0.8.3",
"@abp/ng.tenant-management": "^0.8.3",
"@abp/ng.theme.basic": "^0.8.3",
"@abp/ng.account": "^0.9.0",
"@abp/ng.identity": "^0.9.0",
"@abp/ng.tenant-management": "^0.9.0",
"@abp/ng.theme.basic": "^0.9.0",
"@angular/animations": "~8.2.2",
"@angular/common": "~8.2.2",
"@angular/compiler": "~8.2.2",

14
samples/BookStore-Angular-MongoDb/angular/src/app/app.module.ts

@ -11,15 +11,14 @@ import { AppRoutingModule } from './app-routing.module';
import { AppComponent } from './app.component';
import { SharedModule } from './shared/shared.module';
import { ThemeSharedModule } from '@abp/ng.theme.shared';
import { AccountProviders } from '@abp/ng.account';
import { IdentityProviders } from '@abp/ng.identity';
import { TenantManagementProviders } from '@abp/ng.tenant-management';
import { BooksState } from './store/states/books.state';
@NgModule({
declarations: [AppComponent],
imports: [
BrowserModule,
BrowserAnimationsModule,
AppRoutingModule,
SharedModule,
ThemeSharedModule.forRoot(),
CoreModule.forRoot({
environment,
@ -28,10 +27,15 @@ import { BooksState } from './store/states/books.state';
},
}),
OAuthModule.forRoot(),
NgxsModule.forRoot([]),
BrowserModule,
BrowserAnimationsModule,
AppRoutingModule,
SharedModule,
NgxsModule.forRoot([BooksState, ]),
NgxsReduxDevtoolsPluginModule.forRoot({ disabled: environment.production }),
],
providers: [],
providers: [...AccountProviders({ redirectUrl: '/' }), ...IdentityProviders(), ...TenantManagementProviders()],
bootstrap: [AppComponent],
})
export class AppModule {}

2
samples/BookStore-Angular-MongoDb/angular/src/app/home/home.component.html

@ -5,7 +5,7 @@
{{ '::LongWelcomeMessage' | abpLocalization }}
</p>
<p *ngIf="!hasLoggedIn">
<a routerLink="/account/login" [state]="{ redirectUrl: '/home' }" class="btn btn-primary" role="button"
<a routerLink="/account/login" [state]="{ redirectUrl: '/' }" class="btn btn-primary" role="button"
><i class="fa fa-sign-in"></i>{{ 'AbpIdentity::Login' | abpLocalization }}</a
>
</p>

6
samples/BookStore-Angular-MongoDb/angular/src/environments/environment.hmr.ts

@ -6,8 +6,8 @@ export const environment = {
logoUrl: '',
},
oAuthConfig: {
issuer: 'https://localhost:44359',
clientId: 'BookStore_ConsoleTestApp',
issuer: 'https://localhost:44341',
clientId: 'BookStore_App',
dummyClientSecret: '1q2w3e*',
scope: 'BookStore',
showDebugInformation: true,
@ -16,7 +16,7 @@ export const environment = {
},
apis: {
default: {
url: 'https://localhost:44359',
url: 'https://localhost:44341',
},
},
localization: {

6
samples/BookStore-Angular-MongoDb/angular/src/environments/environment.prod.ts

@ -6,8 +6,8 @@ export const environment = {
logoUrl: '',
},
oAuthConfig: {
issuer: 'https://localhost:44359',
clientId: 'BookStore_ConsoleTestApp',
issuer: 'https://localhost:44341',
clientId: 'BookStore_App',
dummyClientSecret: '1q2w3e*',
scope: 'BookStore',
showDebugInformation: true,
@ -16,7 +16,7 @@ export const environment = {
},
apis: {
default: {
url: 'https://localhost:44359',
url: 'https://localhost:44341',
},
},
localization: {

6
samples/BookStore-Angular-MongoDb/angular/src/environments/environment.ts

@ -6,8 +6,8 @@ export const environment = {
logoUrl: '',
},
oAuthConfig: {
issuer: 'https://localhost:44359',
clientId: 'BookStore_ConsoleTestApp',
issuer: 'https://localhost:44341',
clientId: 'BookStore_App',
dummyClientSecret: '1q2w3e*',
scope: 'BookStore',
showDebugInformation: true,
@ -16,7 +16,7 @@ export const environment = {
},
apis: {
default: {
url: 'https://localhost:44359',
url: 'https://localhost:44341',
},
},
localization: {

26
samples/BookStore-Angular-MongoDb/aspnet-core/Acme.BookStore.sln.DotSettings

@ -1,7 +1,23 @@
<wpf:ResourceDictionary xml:space="preserve" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:s="clr-namespace:System;assembly=mscorlib" xmlns:ss="urn:shemas-jetbrains-com:settings-storage-xaml" xmlns:wpf="http://schemas.microsoft.com/winfx/2006/xaml/presentation">
<s:Boolean x:Key="/Default/Environment/InjectedLayers/FileInjectedLayer/=59923913AE66194DB837F628B1FC08BE/@KeyIndexDefined">True</s:Boolean>
<s:String x:Key="/Default/Environment/InjectedLayers/FileInjectedLayer/=59923913AE66194DB837F628B1FC08BE/AbsolutePath/@EntryValue">D:\github\abp\common.DotSettings</s:String>
<s:String x:Key="/Default/Environment/InjectedLayers/FileInjectedLayer/=59923913AE66194DB837F628B1FC08BE/RelativePath/@EntryValue">..\..\..\common.DotSettings</s:String>
<s:Boolean x:Key="/Default/Environment/InjectedLayers/InjectedLayerCustomization/=File59923913AE66194DB837F628B1FC08BE/@KeyIndexDefined">True</s:Boolean>
<s:Double x:Key="/Default/Environment/InjectedLayers/InjectedLayerCustomization/=File59923913AE66194DB837F628B1FC08BE/RelativePriority/@EntryValue">1</s:Double>
<s:Boolean x:Key="/Default/CodeEditing/Intellisense/CodeCompletion/IntelliSenseCompletingCharacters/CSharpCompletingCharacters/UpgradedFromVSSettings/@EntryValue">True</s:Boolean>
<s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=EnforceDoWhileStatementBraces/@EntryIndexedValue">WARNING</s:String>
<s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=EnforceFixedStatementBraces/@EntryIndexedValue">WARNING</s:String>
<s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=EnforceForeachStatementBraces/@EntryIndexedValue">WARNING</s:String>
<s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=EnforceForStatementBraces/@EntryIndexedValue">WARNING</s:String>
<s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=EnforceIfStatementBraces/@EntryIndexedValue">WARNING</s:String>
<s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=EnforceLockStatementBraces/@EntryIndexedValue">WARNING</s:String>
<s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=EnforceUsingStatementBraces/@EntryIndexedValue">WARNING</s:String>
<s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=EnforceWhileStatementBraces/@EntryIndexedValue">WARNING</s:String>
<s:String x:Key="/Default/CodeStyle/CodeFormatting/CSharpCodeStyle/BRACES_FOR_FOR/@EntryValue">Required</s:String>
<s:String x:Key="/Default/CodeStyle/CodeFormatting/CSharpCodeStyle/BRACES_FOR_FOREACH/@EntryValue">Required</s:String>
<s:String x:Key="/Default/CodeStyle/CodeFormatting/CSharpCodeStyle/BRACES_FOR_IFELSE/@EntryValue">Required</s:String>
<s:String x:Key="/Default/CodeStyle/CodeFormatting/CSharpCodeStyle/BRACES_FOR_WHILE/@EntryValue">Required</s:String>
<s:Boolean x:Key="/Default/CodeStyle/CodeFormatting/CSharpCodeStyle/BRACES_REDUNDANT/@EntryValue">False</s:Boolean>
<s:Boolean x:Key="/Default/CodeStyle/Generate/=Implementations/@KeyIndexDefined">True</s:Boolean>
<s:String x:Key="/Default/CodeStyle/Generate/=Implementations/Options/=Async/@EntryIndexedValue">False</s:String>
<s:String x:Key="/Default/CodeStyle/Generate/=Implementations/Options/=Mutable/@EntryIndexedValue">False</s:String>
<s:Boolean x:Key="/Default/CodeStyle/Generate/=Overrides/@KeyIndexDefined">True</s:Boolean>
<s:String x:Key="/Default/CodeStyle/Generate/=Overrides/Options/=Async/@EntryIndexedValue">False</s:String>
<s:String x:Key="/Default/CodeStyle/Generate/=Overrides/Options/=Mutable/@EntryIndexedValue">False</s:String>
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=SQL/@EntryIndexedValue">SQL</s:String>
</wpf:ResourceDictionary>

2
samples/BookStore-Angular-MongoDb/aspnet-core/src/Acme.BookStore.Application.Contracts/Acme.BookStore.Application.Contracts.csproj

@ -1,4 +1,4 @@
<Project Sdk="Microsoft.NET.Sdk">
<Project Sdk="Microsoft.NET.Sdk">
<Import Project="..\..\common.props" />

0
samples/BookStore-Angular-MongoDb/aspnet-core/src/Acme.BookStore.Application/Permissions/BookStorePermissionDefinitionProvider.cs → samples/BookStore-Angular-MongoDb/aspnet-core/src/Acme.BookStore.Application.Contracts/Permissions/BookStorePermissionDefinitionProvider.cs

0
samples/BookStore-Angular-MongoDb/aspnet-core/src/Acme.BookStore.Application/Permissions/BookStorePermissions.cs → samples/BookStore-Angular-MongoDb/aspnet-core/src/Acme.BookStore.Application.Contracts/Permissions/BookStorePermissions.cs

4
samples/BookStore-Angular-MongoDb/aspnet-core/src/Acme.BookStore.Application/Acme.BookStore.Application.csproj

@ -1,9 +1,9 @@
<Project Sdk="Microsoft.NET.Sdk">
<Project Sdk="Microsoft.NET.Sdk">
<Import Project="..\..\common.props" />
<PropertyGroup>
<TargetFramework>netcoreapp2.2</TargetFramework>
<TargetFramework>netcoreapp3.0</TargetFramework>
<RootNamespace>Acme.BookStore</RootNamespace>
</PropertyGroup>

3
samples/BookStore-Angular-MongoDb/aspnet-core/src/Acme.BookStore.Application/BookStoreApplicationAutoMapperProfile.cs

@ -6,6 +6,9 @@ namespace Acme.BookStore
{
public BookStoreApplicationAutoMapperProfile()
{
/* You can configure your AutoMapper mapping configuration here.
* Alternatively, you can split your mapping configurations
* into multiple profile classes for a better organization. */
CreateMap<Book, BookDto>();
CreateMap<CreateUpdateBookDto, Book>();
}

6
samples/BookStore-Angular-MongoDb/aspnet-core/src/Acme.BookStore.Application/BookStoreApplicationModule.cs

@ -23,11 +23,7 @@ namespace Acme.BookStore
{
Configure<AbpAutoMapperOptions>(options =>
{
/* Use `true` for the `validate` parameter if you want to
* validate the profile on application startup.
* See http://docs.automapper.org/en/stable/Configuration-validation.html for more info
* about the configuration validation. */
options.AddProfile<BookStoreApplicationAutoMapperProfile>();
options.AddMaps<BookStoreApplicationModule>();
});
}
}

5
samples/BookStore-Angular-MongoDb/aspnet-core/src/Acme.BookStore.DbMigrator/Acme.BookStore.DbMigrator.csproj

@ -1,10 +1,10 @@
<Project Sdk="Microsoft.NET.Sdk">
<Project Sdk="Microsoft.NET.Sdk">
<Import Project="..\..\common.props" />
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>netcoreapp2.2</TargetFramework>
<TargetFramework>netcoreapp3.0</TargetFramework>
</PropertyGroup>
<ItemGroup>
@ -22,6 +22,7 @@
<PackageReference Include="Serilog.Extensions.Logging" Version="2.0.4" />
<PackageReference Include="Serilog.Sinks.File" Version="4.0.0" />
<PackageReference Include="Serilog.Sinks.Console" Version="3.1.1" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="3.0.0" />
</ItemGroup>
<ItemGroup>

6
samples/BookStore-Angular-MongoDb/aspnet-core/src/Acme.BookStore.DbMigrator/BookStoreDbMigratorModule.cs

@ -1,5 +1,6 @@
using Acme.BookStore.MongoDB;
using Volo.Abp.Autofac;
using Volo.Abp.BackgroundJobs;
using Volo.Abp.Modularity;
namespace Acme.BookStore.DbMigrator
@ -11,6 +12,9 @@ namespace Acme.BookStore.DbMigrator
)]
public class BookStoreDbMigratorModule : AbpModule
{
public override void ConfigureServices(ServiceConfigurationContext context)
{
Configure<BackgroundJobOptions>(options => options.IsJobExecutionEnabled = false);
}
}
}

6
samples/BookStore-Angular-MongoDb/aspnet-core/src/Acme.BookStore.DbMigrator/appsettings.json

@ -7,10 +7,10 @@
"BookStore_Web": {
"ClientId": "BookStore_Web",
"ClientSecret": "1q2w3e*",
"RootUrl": "https://localhost:44335"
"RootUrl": "https://localhost:44357"
},
"BookStore_ConsoleTestApp": {
"ClientId": "BookStore_ConsoleTestApp",
"BookStore_App": {
"ClientId": "BookStore_App",
"ClientSecret": "1q2w3e*"
}
}

4
samples/BookStore-Angular-MongoDb/aspnet-core/src/Acme.BookStore.Domain.Shared/Acme.BookStore.Domain.Shared.csproj

@ -1,4 +1,4 @@
<Project Sdk="Microsoft.NET.Sdk">
<Project Sdk="Microsoft.NET.Sdk">
<Import Project="..\..\common.props" />
@ -8,7 +8,7 @@
</PropertyGroup>
<ItemGroup>
<ProjectReference Include="..\..\..\..\..\modules\identity\src\Volo.Abp.Identity.Domain.Shared\Volo.Abp.Identity.Domain.Shared.csproj" />
<ProjectReference Include="..\..\..\..\..\modules\identity\src\Volo.Abp.Identity.Domain.Shared\Volo.Abp.Identity.Domain.Shared.csproj" />
<ProjectReference Include="..\..\..\..\..\modules\identityserver\src\Volo.Abp.IdentityServer.Domain.Shared\Volo.Abp.IdentityServer.Domain.Shared.csproj" />
<ProjectReference Include="..\..\..\..\..\modules\background-jobs\src\Volo.Abp.BackgroundJobs.Domain.Shared\Volo.Abp.BackgroundJobs.Domain.Shared.csproj" />
<ProjectReference Include="..\..\..\..\..\modules\audit-logging\src\Volo.Abp.AuditLogging.Domain.Shared\Volo.Abp.AuditLogging.Domain.Shared.csproj" />

5
samples/BookStore-Angular-MongoDb/aspnet-core/src/Acme.BookStore.Domain/Acme.BookStore.Domain.csproj

@ -1,9 +1,9 @@
<Project Sdk="Microsoft.NET.Sdk">
<Project Sdk="Microsoft.NET.Sdk">
<Import Project="..\..\common.props" />
<PropertyGroup>
<TargetFramework>netcoreapp2.2</TargetFramework>
<TargetFramework>netcoreapp3.0</TargetFramework>
<RootNamespace>Acme.BookStore</RootNamespace>
</PropertyGroup>
@ -12,7 +12,6 @@
</ItemGroup>
<ItemGroup>
<PackageReference Include="Microsoft.AspNetCore.Mvc.DataAnnotations" Version="2.2.0" />
<ProjectReference Include="..\..\..\..\..\modules\identity\src\Volo.Abp.Identity.Domain\Volo.Abp.Identity.Domain.csproj" />
<ProjectReference Include="..\..\..\..\..\modules\identity\src\Volo.Abp.PermissionManagement.Domain.Identity\Volo.Abp.PermissionManagement.Domain.Identity.csproj" />
<ProjectReference Include="..\..\..\..\..\modules\identityserver\src\Volo.Abp.IdentityServer.Domain\Volo.Abp.IdentityServer.Domain.csproj" />

46
samples/BookStore-Angular-MongoDb/aspnet-core/src/Acme.BookStore.Domain/BookStoreDataSeederContributor.cs

@ -1,46 +0,0 @@
using System;
using System.Threading.Tasks;
using Volo.Abp.Data;
using Volo.Abp.DependencyInjection;
using Volo.Abp.Domain.Repositories;
namespace Acme.BookStore
{
public class BookStoreDataSeederContributor : IDataSeedContributor, ITransientDependency
{
private readonly IRepository<Book, Guid> _bookRepository;
public BookStoreDataSeederContributor(IRepository<Book, Guid> bookRepository)
{
_bookRepository = bookRepository;
}
public async Task SeedAsync(DataSeedContext context)
{
if (await _bookRepository.GetCountAsync() > 0)
{
return;
}
await _bookRepository.InsertAsync(
new Book
{
Name = "1984",
Type = BookType.Dystopia,
PublishDate = new DateTime(1949, 6, 8),
Price = 19.84f
}
);
await _bookRepository.InsertAsync(
new Book
{
Name = "The Hitchhiker's Guide to the Galaxy",
Type = BookType.ScienceFiction,
PublishDate = new DateTime(1995, 9, 27),
Price = 42.0f
}
);
}
}
}

4
samples/BookStore-Angular-MongoDb/aspnet-core/src/Acme.BookStore.Domain/IdentityServer/IdentityServerDataSeedContributor.cs

@ -126,14 +126,14 @@ namespace Acme.BookStore.IdentityServer
}
//Console Test Client
var consoleClientId = configurationSection["BookStore_ConsoleTestApp:ClientId"];
var consoleClientId = configurationSection["BookStore_App:ClientId"];
if (!consoleClientId.IsNullOrWhiteSpace())
{
await CreateClientAsync(
consoleClientId,
commonScopes,
new[] { "password", "client_credentials" },
(configurationSection["BookStore_ConsoleTestApp:ClientSecret"] ?? "1q2w3e*").Sha256()
(configurationSection["BookStore_App:ClientSecret"] ?? "1q2w3e*").Sha256()
);
}
}

4
samples/BookStore-Angular-MongoDb/aspnet-core/src/Acme.BookStore.HttpApi.Client/Acme.BookStore.HttpApi.Client.csproj

@ -1,9 +1,9 @@
<Project Sdk="Microsoft.NET.Sdk">
<Project Sdk="Microsoft.NET.Sdk">
<Import Project="..\..\common.props" />
<PropertyGroup>
<TargetFramework>netstandard2.0</TargetFramework>
<TargetFramework>netcoreapp3.0</TargetFramework>
<RootNamespace>Acme.BookStore</RootNamespace>
</PropertyGroup>

10
samples/BookStore-Angular-MongoDb/aspnet-core/src/Acme.BookStore.HttpApi.Host/Acme.BookStore.HttpApi.Host.csproj

@ -1,21 +1,21 @@
<Project Sdk="Microsoft.NET.Sdk.Web">
<Project Sdk="Microsoft.NET.Sdk.Web">
<Import Project="..\..\common.props" />
<PropertyGroup>
<TargetFramework>netcoreapp2.2</TargetFramework>
<TargetFramework>netcoreapp3.0</TargetFramework>
<AspNetCoreHostingModel>InProcess</AspNetCoreHostingModel>
<RootNamespace>Acme.BookStore</RootNamespace>
<PreserveCompilationReferences>true</PreserveCompilationReferences>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.AspNetCore.App" />
<PackageReference Include="Microsoft.AspNetCore.Razor.Design" Version="2.2.0" PrivateAssets="All" />
<PackageReference Include="Serilog.AspNetCore" Version="2.1.1" />
<PackageReference Include="Serilog.Sinks.File" Version="4.0.0" />
<PackageReference Include="Serilog.Sinks.Async" Version="1.4.0" />
<PackageReference Include="Swashbuckle.AspNetCore" Version="4.0.1" />
<PackageReference Include="IdentityServer4.AccessTokenValidation" Version="2.7.0" />
<PackageReference Include="IdentityServer4.AccessTokenValidation" Version="3.0.0" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="3.0.0" />
<ProjectReference Include="..\..\..\..\..\framework\src\Volo.Abp.AspNetCore.MultiTenancy\Volo.Abp.AspNetCore.MultiTenancy.csproj" />
<ProjectReference Include="..\..\..\..\..\framework\src\Volo.Abp.Autofac\Volo.Abp.Autofac.csproj" />
<ProjectReference Include="..\..\..\..\..\framework\src\Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic\Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.csproj" />

21
samples/BookStore-Angular-MongoDb/aspnet-core/src/Acme.BookStore.HttpApi.Host/BookStoreHttpApiHostModule.cs

@ -2,11 +2,13 @@
using System.IO;
using System.Linq;
using System.Net.Http;
using Acme.BookStore.MongoDB;
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Cors;
using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
using Acme.BookStore.MongoDB;
using Acme.BookStore.MultiTenancy;
using Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic;
using Swashbuckle.AspNetCore.Swagger;
@ -45,10 +47,12 @@ namespace Acme.BookStore
ConfigureUrls(configuration);
ConfigureConventionalControllers();
ConfigureAuthentication(context, configuration);
ConfigureSwagger(context);
ConfigureLocalization();
ConfigureVirtualFileSystem(context);
ConfigureCors(context, configuration);
//Disabled swagger since it does not support ASP.NET Core 3.0 yet!
//ConfigureSwaggerServices(context);
}
private void ConfigureUrls(IConfigurationRoot configuration)
@ -98,7 +102,7 @@ namespace Acme.BookStore
});
}
private static void ConfigureSwagger(ServiceConfigurationContext context)
private static void ConfigureSwaggerServices(ServiceConfigurationContext context)
{
context.Services.AddSwaggerGen(
options =>
@ -133,6 +137,7 @@ namespace Acme.BookStore
.Select(o => o.RemovePostFix("/"))
.ToArray()
)
.WithAbpExposedHeaders()
.SetIsOriginAllowedToAllowWildcardSubdomains()
.AllowAnyHeader()
.AllowAnyMethod()
@ -145,10 +150,12 @@ namespace Acme.BookStore
{
var app = context.GetApplicationBuilder();
app.UseCors(DefaultCorsPolicyName);
app.UseCorrelationId();
app.UseVirtualFiles();
app.UseRouting();
app.UseCors(DefaultCorsPolicyName);
app.UseAuthentication();
app.UseAuthorization();
app.UseJwtTokenMiddleware();
if (MultiTenancyConsts.IsEnabled)
@ -158,11 +165,15 @@ namespace Acme.BookStore
app.UseIdentityServer();
app.UseAbpRequestLocalization();
/* Disabled swagger since it does not support ASP.NET Core 3.0 yet!
app.UseSwagger();
app.UseSwaggerUI(options =>
{
options.SwaggerEndpoint("/swagger/v1/swagger.json", "BookStore API");
});
*/
app.UseAuditing();
app.UseMvcWithDefaultRouteAndArea();
}

4
samples/BookStore-Angular-MongoDb/aspnet-core/src/Acme.BookStore.HttpApi.Host/Controllers/HomeController.cs

@ -7,7 +7,9 @@ namespace Acme.BookStore.Controllers
{
public ActionResult Index()
{
return Redirect("/swagger");
//TODO: Enabled once Swagger supports ASP.NET Core 3.x
//return Redirect("/swagger");
return Content("OK: Acme.BookStore.HttpApi.Host is running...");
}
}
}

6
samples/BookStore-Angular-MongoDb/aspnet-core/src/Acme.BookStore.HttpApi.Host/Properties/launchSettings.json

@ -3,8 +3,8 @@
"windowsAuthentication": false,
"anonymousAuthentication": true,
"iisExpress": {
"applicationUrl": "https://localhost:44359",
"sslPort": 44359
"applicationUrl": "https://localhost:44341",
"sslPort": 44341
}
},
"profiles": {
@ -18,7 +18,7 @@
"Acme.BookStore.HttpApi.Host": {
"commandName": "Project",
"launchBrowser": true,
"applicationUrl": "https://localhost:44359",
"applicationUrl": "https://localhost:44341",
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
}

2
samples/BookStore-Angular-MongoDb/aspnet-core/src/Acme.BookStore.HttpApi.Host/Startup.cs

@ -19,7 +19,7 @@ namespace Acme.BookStore
return services.BuildServiceProviderFromFactory();
}
public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
public void Configure(IApplicationBuilder app, IWebHostEnvironment env, ILoggerFactory loggerFactory)
{
app.InitializeApplication();
}

7
samples/BookStore-Angular-MongoDb/aspnet-core/src/Acme.BookStore.HttpApi.Host/appsettings.json

@ -1,15 +1,12 @@
{
"App": {
"SelfUrl": "https://localhost:44359",
"SelfUrl": "https://localhost:44341",
"CorsOrigins": "https://*.BookStore.com,http://localhost:4200"
},
"ConnectionStrings": {
"Default": "mongodb://localhost:27017/BookStore"
},
"Redis": {
"Configuration": "127.0.0.1"
},
"AuthServer": {
"Authority": "https://localhost:44359"
"Authority": "https://localhost:44341"
}
}

2
samples/BookStore-Angular-MongoDb/aspnet-core/src/Acme.BookStore.HttpApi.Host/package.json

@ -3,6 +3,6 @@
"name": "my-app",
"private": true,
"dependencies": {
"@abp/aspnetcore.mvc.ui.theme.basic": "^0.8.0"
"@abp/aspnetcore.mvc.ui.theme.basic": "^0.9.0"
}
}

8196
samples/BookStore-Angular-MongoDb/aspnet-core/src/Acme.BookStore.HttpApi.Host/wwwroot/libs/luxon/luxon.js

File diff suppressed because it is too large

1
samples/BookStore-Angular-MongoDb/aspnet-core/src/Acme.BookStore.HttpApi.Host/wwwroot/libs/luxon/luxon.js.map

File diff suppressed because one or more lines are too long

1
samples/BookStore-Angular-MongoDb/aspnet-core/src/Acme.BookStore.HttpApi.Host/wwwroot/libs/luxon/luxon.min.js

File diff suppressed because one or more lines are too long

1
samples/BookStore-Angular-MongoDb/aspnet-core/src/Acme.BookStore.HttpApi.Host/wwwroot/libs/luxon/luxon.min.js.map

File diff suppressed because one or more lines are too long

219
samples/BookStore-Angular-MongoDb/aspnet-core/src/Acme.BookStore.HttpApi.Host/yarn.lock

@ -2,35 +2,36 @@
# yarn lockfile v1
"@abp/aspnetcore.mvc.ui.theme.basic@^0.8.0":
version "0.8.0"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-0.8.0.tgz#8b6b5fdcee9d0a61b2e6d602158c814eac808ef9"
integrity sha512-TLP5iCXnxfL7IECBHiJFTpvlgVEuzb9wm0vvxAGFZYiu5IkxeZxVMreQHiXOwJdRFGtyJtM6T5+va4LqNQtfCw==
dependencies:
"@abp/aspnetcore.mvc.ui.theme.shared" "^0.8.0"
"@abp/aspnetcore.mvc.ui.theme.shared@^0.8.0":
version "0.8.0"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-0.8.0.tgz#3892843e1519aa8e9bf56bd08d69a7114de20b56"
integrity sha512-s63rg2nmjbJn5oBrPwt0VBw0V8LQsS4kpup7b7jW8f6Fw1k07w6i4XVG0JZCZPx3HTCZbHc+Nu3fBTUhZfokaA==
dependencies:
"@abp/aspnetcore.mvc.ui" "^0.8.0"
"@abp/bootstrap" "^0.8.0"
"@abp/datatables.net-bs4" "^0.8.0"
"@abp/font-awesome" "^0.8.0"
"@abp/jquery-form" "^0.8.0"
"@abp/jquery-validation-unobtrusive" "^0.8.0"
"@abp/lodash" "^0.8.0"
"@abp/malihu-custom-scrollbar-plugin" "^0.8.0"
"@abp/select2" "^0.8.0"
"@abp/sweetalert" "^0.8.0"
"@abp/timeago" "^0.8.0"
"@abp/toastr" "^0.8.0"
"@abp/aspnetcore.mvc.ui@^0.8.0":
version "0.8.0"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-0.8.0.tgz#bb5234696771a900caa91a22033d017ceecd7df5"
integrity sha512-3wokY7KSjoft9O4UnysHZ5756YPTYdKMogxWddzJXCZXK8jJfx0hbAwV0sK+3Q0f4DGOzIzRoxE0UH6Dk2a9pw==
"@abp/aspnetcore.mvc.ui.theme.basic@^0.9.0":
version "0.9.0"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-0.9.0.tgz#7f68998a082c1b0972a101d9d4f7e15d0a86599c"
integrity sha512-5SW+Y5zIzjsy5SweBo9+C4ZX1xnJSLSmPhQW6Qup3Sfy7A+862ZcJj5IrSgH6Vxc36pNdBz4WyHj/gXQDuZ70Q==
dependencies:
"@abp/aspnetcore.mvc.ui.theme.shared" "^0.9.0"
"@abp/aspnetcore.mvc.ui.theme.shared@^0.9.0":
version "0.9.0"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-0.9.0.tgz#8bce8ad565ddba9768ddae121ea0c04111485e53"
integrity sha512-mgf3fqKi/ksdWZEPeM9uUluc48MM7V+9BwR9P3bCwih0P9+6aWJq6gq/BsnZrNAe9qKd11smjFku22OC1/c/tg==
dependencies:
"@abp/aspnetcore.mvc.ui" "^0.9.0"
"@abp/bootstrap" "^0.9.0"
"@abp/datatables.net-bs4" "^0.9.0"
"@abp/font-awesome" "^0.9.0"
"@abp/jquery-form" "^0.9.0"
"@abp/jquery-validation-unobtrusive" "^0.9.0"
"@abp/lodash" "^0.9.0"
"@abp/luxon" "^0.9.0"
"@abp/malihu-custom-scrollbar-plugin" "^0.9.0"
"@abp/select2" "^0.9.0"
"@abp/sweetalert" "^0.9.0"
"@abp/timeago" "^0.9.0"
"@abp/toastr" "^0.9.0"
"@abp/aspnetcore.mvc.ui@^0.9.0":
version "0.9.0"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-0.9.0.tgz#85a7745a59dd10164aa3862cc0e0d2839bab1dc7"
integrity sha512-DlcjrMk5dLRC6NJpITNO3XiqsbSPNwkSkqq8aqGYC5iN+tq9wzRgf1b8rz4sJsOeBZxaHH2U4L4SXSufsy7weg==
dependencies:
ansi-colors "^3.2.4"
extend-object "^1.0.0"
@ -39,121 +40,128 @@
path "^0.12.7"
rimraf "^2.6.3"
"@abp/bootstrap@^0.8.0":
version "0.8.0"
resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-0.8.0.tgz#ef5b076a892c47ebf00a13420b819a5f627b0beb"
integrity sha512-ZUu+4pbX1ky1Ub41d68VKAa1M/dy+u5RtEAvv2aqECsGu9LUZTxG5hc9adU59ZdnhPjARe2AeG9LA7Pf4KOAVA==
"@abp/bootstrap@^0.9.0":
version "0.9.0"
resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-0.9.0.tgz#6ff1df5b34197996938c08b06288dc7f6a161aa3"
integrity sha512-0aHTrJSKXqI0+V7V8+t3M6wG0L1E5Zq+UzJAzd79FXlXF9MoaNbMPpPrnnya4p+d0cZQsZm3lnWx0LwVXj2AVA==
dependencies:
"@abp/core" "^0.8.0"
"@abp/core" "^0.9.0"
bootstrap "^4.1.1"
"@abp/core@^0.8.0":
version "0.8.0"
resolved "https://registry.yarnpkg.com/@abp/core/-/core-0.8.0.tgz#e7504cc14acc3a44bee2a414717a43c234600a14"
integrity sha512-hAY1HzZ+NkpmeutVrSajA1jBLoyaNonncO+qa6J463v2UJ/a7+WYGIfllsAIhaUDNqHhFtED2LJHQNEG9gpCfA==
"@abp/core@^0.9.0":
version "0.9.0"
resolved "https://registry.yarnpkg.com/@abp/core/-/core-0.9.0.tgz#ef15f932bbc8d2b6345be9fe0c762810cf33c306"
integrity sha512-/Lg36ud9B6muLDjbaigCiMP9K+FgVCdERPuq+6We1k5xpPuVj+/cIJZQHlgSY25VIciOLMLbJg2lAOyuHSXbAA==
"@abp/datatables.net-bs4@^0.8.0":
version "0.8.0"
resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-0.8.0.tgz#acc42026a49948405792fcea2bcece002fe13e38"
integrity sha512-jqWxpbzfaq9VL+xb8qNMYJc0odAwZCbybHbN4kTPN4vIasL4Yhiotsxv6EC7T6YR9FxbAXnHpdmKBUogO3TGrw==
"@abp/datatables.net-bs4@^0.9.0":
version "0.9.0"
resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-0.9.0.tgz#30adb5e3afbf0cc58eec3ee52fdbd62cf2a1cce1"
integrity sha512-dD7ELc30bQeZdPFmTfZ/EUtmL6o4iY+1Ew17vdvkUxX3x+j7jmiaH2BJahKrtUTKtc4zCnv38dKt4ZwichsrBg==
dependencies:
"@abp/datatables.net" "^0.8.0"
"@abp/datatables.net" "^0.9.0"
datatables.net-bs4 "^1.10.16"
"@abp/datatables.net@^0.8.0":
version "0.8.0"
resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-0.8.0.tgz#0a596cbf810a224eeae9189442d0e993eaf4c18a"
integrity sha512-u2o6ZYzJ5kDi7t3ONhbwe14qNSVUj/5egIy645Ab8tDN7wEOt3eS7M3kledCEFmCcdmH2Ls9lxeHK5KMaizzzA==
"@abp/datatables.net@^0.9.0":
version "0.9.0"
resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-0.9.0.tgz#bcfa60fda70c1184e19fdde15d6e6aea706f9e0a"
integrity sha512-hYvGrG9PCfEO0D7jD/a7XbE/HOBCV2PQBSMakut81cx5piB0Gz4Zhw7I90ZHJ4r4CEqCM8u8A/xyaBFkQEqsbw==
dependencies:
"@abp/core" "^0.8.0"
"@abp/core" "^0.9.0"
datatables.net "^1.10.16"
"@abp/font-awesome@^0.8.0":
version "0.8.0"
resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-0.8.0.tgz#9325be9f6c7c1258c71b8706a0aea4f8436c67d1"
integrity sha512-R9NGupEjpMFaQ7EOumMwZd5+DgO+UIZ9KgvLU8q+SYTSQ/aSpYUX85BuUpaCWihKpOmucRHDBY4Jy8X/hBtLgQ==
"@abp/font-awesome@^0.9.0":
version "0.9.0"
resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-0.9.0.tgz#577196f787d3069216e8c7ed81fe1826b0036e79"
integrity sha512-6IAI7I7AMP3ubfTvjy4MKZUGIAYTzEDJq59UrLWuLrmpzwmdU/XRI3ItWg6hFbqkzkDiQh+qc5Eu9Oy15oi4JQ==
dependencies:
"@abp/core" "^0.8.0"
"@abp/core" "^0.9.0"
font-awesome "^4.7.0"
"@abp/jquery-form@^0.8.0":
version "0.8.0"
resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-0.8.0.tgz#9408a9fb7b240d21163fe3ccad703701fe22f40c"
integrity sha512-krUQkEV0HbrjsPmKB6qivVGJvB69SfyGE0t4hRrrOPh2NpSPeeQvVHlm9uTuzJyQ57/JPYuGINe2M8/bVbHdNA==
"@abp/jquery-form@^0.9.0":
version "0.9.0"
resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-0.9.0.tgz#351723fdfb0f0f84bad98a456eff209b556bca4c"
integrity sha512-aTx84JamYJnqQmNRLVN6PVQgZbFE+dS9jSQMHOs/zxJb/FU0Ko7sen0JQPgQ3SXuBYLHvqZgn9AFNg58nD9Kuw==
dependencies:
"@abp/jquery" "^0.8.0"
"@abp/jquery" "^0.9.0"
jquery-form "^4.2.2"
"@abp/jquery-validation-unobtrusive@^0.8.0":
version "0.8.0"
resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-0.8.0.tgz#369c9e995b6da6ef76519ce1f3ed41dc2f4e2bac"
integrity sha512-qkEXYe6kiI3UECK1vfiR+8zrdrr3bzhbdttP6F+DdstncPEe593B976H/jcXYruAXYAPIgP8sM5CTWoL0HrF2Q==
"@abp/jquery-validation-unobtrusive@^0.9.0":
version "0.9.0"
resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-0.9.0.tgz#731e2a74c2d551f395b3cb3dd18389843ac24735"
integrity sha512-dPBwdUu2ih0OKt3H7DciyLX2/+Db4HzsMejtzKQqpDhTQTccxGqOi0KDCj08Ak/JlEYgQI6pN1Vo9v7crBd29A==
dependencies:
"@abp/jquery-validation" "^0.8.0"
"@abp/jquery-validation" "^0.9.0"
jquery-validation-unobtrusive "^3.2.9"
"@abp/jquery-validation@^0.8.0":
version "0.8.0"
resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-0.8.0.tgz#c9fccfa8afd7b2bc2c455c131fd95338c2954c60"
integrity sha512-9ug0UTTfPdjOKlbUImzTP30SPY+IXz6BBHU4ODpNpIB9bnspW0VymSme3XJnM01pAiwjYEptf+uh7wuXbUvnDQ==
"@abp/jquery-validation@^0.9.0":
version "0.9.0"
resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-0.9.0.tgz#c32fbc119609ca2088e4e92b4134af52cabdc555"
integrity sha512-aUObKQVWb04GFt9Pmz232fzR5LQ/7+sjtoZEzO6ZT1zgYllFRPXEyiwjvsUyIQ4lzx8RQWfVLYCR5JBvcwZ/Ew==
dependencies:
"@abp/jquery" "^0.8.0"
"@abp/jquery" "^0.9.0"
jquery-validation "^1.17.0"
"@abp/jquery@^0.8.0":
version "0.8.0"
resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-0.8.0.tgz#3ece7d75f6f19adc1adf07f54e5db5c7c74931c2"
integrity sha512-cAZR/Jl5zWSbnYBKiLYbfItTVIf8teIeGVztA1pI6l40KpvtbGJsokz94su89kSMQj4Ixzo8SfSYlCgaFwYFSg==
"@abp/jquery@^0.9.0":
version "0.9.0"
resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-0.9.0.tgz#95a591ddbbcf13f772143ccfba5cbc8ab74c16fb"
integrity sha512-pqnqV5LtTolZz4J3aT+a+9yoBcv4LkaP3cG40r64fIdO1RsgWmNc6OWeRdD0N42bLJuPB7BQXd1vjNn+nT+cyA==
dependencies:
"@abp/core" "^0.8.0"
"@abp/core" "^0.9.0"
jquery "^3.3.1"
"@abp/lodash@^0.8.0":
version "0.8.0"
resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-0.8.0.tgz#54bfbe8d69dbd6866b1d923973f20033fc01457d"
integrity sha512-hzkSD36Ig127futjVBTi8HkO6KLPcsCyPiwVyncu1TVNTf37LVOcgtSdp7kaHV6ExwNs+u5FCpUUUftA+MHZig==
"@abp/lodash@^0.9.0":
version "0.9.0"
resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-0.9.0.tgz#df1128c7189e18f98dad379244015ce0ca230db2"
integrity sha512-ZzqSQy6F52p3XxcxTpzSj11gLJnTv3NzRPfSbl3FlRF++NJjLxFqKwYpAtZ2ExlnH5gWZwGBa5zdDmFMO0gMIQ==
dependencies:
"@abp/core" "^0.8.0"
"@abp/core" "^0.9.0"
lodash "^4.17.10"
"@abp/malihu-custom-scrollbar-plugin@^0.8.0":
version "0.8.0"
resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-0.8.0.tgz#fdd561e34d2e78dbb18141a5b45f3067e78d13f7"
integrity sha512-YAcVVWkmCv+eAiZl8FMK4inQAYLgqvtT6wp3LHPSwpi9M+npP7rsM1F8Xh8Yxi19ts7/QSluQMdfUqAlC8tzrg==
"@abp/luxon@^0.9.0":
version "0.9.0"
resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-0.9.0.tgz#3f10ff30382b17872cadc642285f3dfec54cd3c3"
integrity sha512-x8erCOutFMnDxSV/crnjriMtFCwTezSTdnv1eeWfAeFLu0H2Y4Y7f2OcXlxB0/n6qh+N4tffXsU9DaXKCi6XNA==
dependencies:
"@abp/core" "^0.8.0"
luxon "^1.17.3"
"@abp/malihu-custom-scrollbar-plugin@^0.9.0":
version "0.9.0"
resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-0.9.0.tgz#05b959c799d826e3f1bfcc6e112894613c3c9917"
integrity sha512-x9E09tyvuhMulzHvvjkgK/DvD5KPDH8J/gcVYtnJNlX6YGV6fBA/t1+nRgqPVbcGfhCzOW+ocqpJRQ05zIsVZw==
dependencies:
"@abp/core" "^0.9.0"
malihu-custom-scrollbar-plugin "^3.1.5"
"@abp/select2@^0.8.0":
version "0.8.0"
resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-0.8.0.tgz#037600ea3ef68ecd0b9d895a8a715b5e52a0ac85"
integrity sha512-Q2HV4/+zk9NNkZP7i0rbeEunE2usXtAHzTiSOFDHJaKCC3b1pAyo9ZZFwlVE69CVb9j0khXeem8T6zQmO9A88Q==
"@abp/select2@^0.9.0":
version "0.9.0"
resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-0.9.0.tgz#879a9ce03bb7e7c7b92847cf8c91696b459e3997"
integrity sha512-qoA0+KPpxRadQz5zA6UoDSNHXiu+mFU4oiqSvAngY2FvR5tC4w79n+6MNwDa+s2qUsUM6B6G0Q7LhcSVp6cWQA==
dependencies:
"@abp/core" "^0.8.0"
"@abp/core" "^0.9.0"
select2 "^4.0.5"
"@abp/sweetalert@^0.8.0":
version "0.8.0"
resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-0.8.0.tgz#d81d553d318c2809c8ff37aa92a4eed6492513e4"
integrity sha512-AcUil0SDrbuOSZyrBEOqa9TB9bqwVyfBGtULjRTxlVfYxyfPYxCajsqDL2W0uu9Ju+vRLZRIzY6IiAE7GFm8Ug==
"@abp/sweetalert@^0.9.0":
version "0.9.0"
resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-0.9.0.tgz#2efe24e5a678956259a060d3161a0a9f41fd8e49"
integrity sha512-90dvkVzO+SGEvE/L/7TZjIarU75VDqMooRRX71WH8H7hxyo/6Wq43/0Mw9X/nekSrUAO8iwDbUAVcmIooUjQtQ==
dependencies:
"@abp/core" "^0.8.0"
"@abp/core" "^0.9.0"
sweetalert "^2.1.0"
"@abp/timeago@^0.8.0":
version "0.8.0"
resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-0.8.0.tgz#9035f3476e26b7a70560280c7f87aa99c2a1ff29"
integrity sha512-/DJKXHorakg2Y4Tul+LV4Qihx3rsIAnuA236tttGQCuwynBXMCgNQxSDdvfdxYKlx36N+q1+FNa/d7bJ3bLY8g==
"@abp/timeago@^0.9.0":
version "0.9.0"
resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-0.9.0.tgz#be1b8e45a49502ce3df152279607b11233c5db9f"
integrity sha512-89hBxxGbd8LLLVPiRjKX2emybHzhAAfXMTL0eJVXAQj4f3pGPtD10TqfNmEaEQDS3ADrOmMTqOUHsHvkDy75rA==
dependencies:
"@abp/jquery" "^0.8.0"
"@abp/jquery" "^0.9.0"
timeago "^1.6.3"
"@abp/toastr@^0.8.0":
version "0.8.0"
resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-0.8.0.tgz#474e03e8154270fac7998a375d24469a1447e480"
integrity sha512-UUyhYE30KfeTc33kq0QTYuaUseVtHTYzybUDKTpZkXj9Tvb7hJ3MNVfmNcCzX9HYw/oKNNcvYgJHFUuSFX3bwQ==
"@abp/toastr@^0.9.0":
version "0.9.0"
resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-0.9.0.tgz#f7ae4499404ac5a5563acfe6d436419ae561a089"
integrity sha512-JEZKlmXLdPToVP9vmMUnSThBuY7dGutCw/DMo+w/mLuBC1Pv4e2FTzJdXQqM3ccunyy/pFZqXMfcoJtC+fwkTw==
dependencies:
"@abp/jquery" "^0.8.0"
"@abp/jquery" "^0.9.0"
toastr "^2.1.4"
abbrev@1:
@ -1410,6 +1418,11 @@ lodash@^4.17.10:
version "4.17.10"
resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.10.tgz#1b7793cf7259ea38fb3661d4d38b3260af8ae4e7"
luxon@^1.17.3:
version "1.19.2"
resolved "https://registry.yarnpkg.com/luxon/-/luxon-1.19.2.tgz#f041a9031e7dff6fdbff46e46c73b3fdf4ab2764"
integrity sha512-4Dn6oriheX04QQd7mMhuScnyQPdD7h11aCJgSTq9FqkOWdxX7xRUXoX/OXu4rkw98NmcVz3QSLpLbDnT6lVsMw==
make-iterator@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/make-iterator/-/make-iterator-1.0.1.tgz#29b33f312aa8f547c4a5e490f56afcec99133ad6"

4
samples/BookStore-Angular-MongoDb/aspnet-core/src/Acme.BookStore.HttpApi/Acme.BookStore.HttpApi.csproj

@ -1,9 +1,9 @@
<Project Sdk="Microsoft.NET.Sdk">
<Project Sdk="Microsoft.NET.Sdk">
<Import Project="..\..\common.props" />
<PropertyGroup>
<TargetFramework>netcoreapp2.2</TargetFramework>
<TargetFramework>netcoreapp3.0</TargetFramework>
<RootNamespace>Acme.BookStore</RootNamespace>
</PropertyGroup>

4
samples/BookStore-Angular-MongoDb/aspnet-core/src/Acme.BookStore.MongoDB/Acme.BookStore.MongoDB.csproj

@ -1,9 +1,9 @@
<Project Sdk="Microsoft.NET.Sdk">
<Project Sdk="Microsoft.NET.Sdk">
<Import Project="..\..\common.props" />
<PropertyGroup>
<TargetFramework>netcoreapp2.2</TargetFramework>
<TargetFramework>netcoreapp3.0</TargetFramework>
<RootNamespace>Acme.BookStore</RootNamespace>
</PropertyGroup>

4
samples/BookStore-Angular-MongoDb/aspnet-core/test/Acme.BookStore.Application.Tests/Acme.BookStore.Application.Tests.csproj

@ -1,9 +1,9 @@
<Project Sdk="Microsoft.NET.Sdk">
<Project Sdk="Microsoft.NET.Sdk">
<Import Project="..\..\common.props" />
<PropertyGroup>
<TargetFramework>netcoreapp2.2</TargetFramework>
<TargetFramework>netcoreapp3.0</TargetFramework>
<RootNamespace>Acme.BookStore</RootNamespace>
</PropertyGroup>

72
samples/BookStore-Angular-MongoDb/aspnet-core/test/Acme.BookStore.Application.Tests/BookAppService_Tests.cs

@ -1,72 +0,0 @@
using System;
using System.Linq;
using System.Threading.Tasks;
using Shouldly;
using Volo.Abp.Application.Dtos;
using Volo.Abp.Validation;
using Xunit;
namespace Acme.BookStore
{
public class BookAppService_Tests : BookStoreApplicationTestBase
{
private readonly IBookAppService _bookAppService;
public BookAppService_Tests()
{
_bookAppService = GetRequiredService<IBookAppService>();
}
[Fact]
public async Task Should_Get_List_Of_Books()
{
//Act
var result = await _bookAppService.GetListAsync(
new PagedAndSortedResultRequestDto()
);
//Assert
result.TotalCount.ShouldBeGreaterThan(0);
result.Items.ShouldContain(b => b.Name == "Test book 1");
}
[Fact]
public async Task Should_Create_A_Valid_Book()
{
//Act
var result = await _bookAppService.CreateAsync(
new CreateUpdateBookDto
{
Name = "New test book 42",
Price = 10,
PublishDate = DateTime.Now,
Type = BookType.ScienceFiction
}
);
//Assert
result.Id.ShouldNotBe(Guid.Empty);
result.Name.ShouldBe("New test book 42");
}
[Fact]
public async Task Should_Not_Create_A_Book_Without_Name()
{
var exception = await Assert.ThrowsAsync<AbpValidationException>(async () =>
{
await _bookAppService.CreateAsync(
new CreateUpdateBookDto
{
Name = "",
Price = 10,
PublishDate = DateTime.Now,
Type = BookType.ScienceFiction
}
);
});
exception.ValidationErrors
.ShouldContain(err => err.MemberNames.Any(mem => mem == "Name"));
}
}
}

4
samples/BookStore-Angular-MongoDb/aspnet-core/test/Acme.BookStore.Domain.Tests/Acme.BookStore.Domain.Tests.csproj

@ -1,9 +1,9 @@
<Project Sdk="Microsoft.NET.Sdk">
<Project Sdk="Microsoft.NET.Sdk">
<Import Project="..\..\common.props" />
<PropertyGroup>
<TargetFramework>netcoreapp2.2</TargetFramework>
<TargetFramework>netcoreapp3.0</TargetFramework>
<RootNamespace>Acme.BookStore</RootNamespace>
</PropertyGroup>

4
samples/BookStore-Angular-MongoDb/aspnet-core/test/Acme.BookStore.HttpApi.Client.ConsoleTestApp/Acme.BookStore.HttpApi.Client.ConsoleTestApp.csproj

@ -1,8 +1,8 @@
<Project Sdk="Microsoft.NET.Sdk">
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>netcoreapp2.2</TargetFramework>
<TargetFramework>netcoreapp3.0</TargetFramework>
</PropertyGroup>
<ItemGroup>

6
samples/BookStore-Angular-MongoDb/aspnet-core/test/Acme.BookStore.HttpApi.Client.ConsoleTestApp/appsettings.json

@ -1,17 +1,17 @@
{
"RemoteServices": {
"Default": {
"BaseUrl": "https://localhost:44351"
"BaseUrl": "https://localhost:44341"
}
},
"IdentityClients": {
"Default": {
"GrantType": "password",
"ClientId": "BookStore_ConsoleTestApp",
"ClientId": "BookStore_App",
"ClientSecret": "1q2w3e*",
"UserName": "admin",
"UserPassword": "1q2w3E*",
"Authority": "https://localhost:44331",
"Authority": "https://localhost:44341",
"Scope": "BookStore"
}
}

4
samples/BookStore-Angular-MongoDb/aspnet-core/test/Acme.BookStore.MongoDB.Tests/Acme.BookStore.MongoDB.Tests.csproj

@ -1,9 +1,9 @@
<Project Sdk="Microsoft.NET.Sdk">
<Project Sdk="Microsoft.NET.Sdk">
<Import Project="..\..\common.props" />
<PropertyGroup>
<TargetFramework>netcoreapp2.2</TargetFramework>
<TargetFramework>netcoreapp3.0</TargetFramework>
<RootNamespace>Acme.BookStore</RootNamespace>
</PropertyGroup>

2
samples/BookStore-Angular-MongoDb/aspnet-core/test/Acme.BookStore.MongoDB.Tests/MongoDb/BookStoreMongoDbTestModule.cs

@ -1,4 +1,4 @@
using System;
using System;
using Mongo2Go;
using Volo.Abp.Data;
using Volo.Abp.Modularity;

4
samples/BookStore-Angular-MongoDb/aspnet-core/test/Acme.BookStore.TestBase/Acme.BookStore.TestBase.csproj

@ -1,9 +1,9 @@
<Project Sdk="Microsoft.NET.Sdk">
<Project Sdk="Microsoft.NET.Sdk">
<Import Project="..\..\common.props" />
<PropertyGroup>
<TargetFramework>netcoreapp2.2</TargetFramework>
<TargetFramework>netcoreapp3.0</TargetFramework>
<RootNamespace>Acme.BookStore</RootNamespace>
</PropertyGroup>

43
samples/BookStore-Angular-MongoDb/aspnet-core/test/Acme.BookStore.TestBase/BookStoreTestDataSeedContributor.cs

@ -1,49 +1,16 @@
using System;
using System.Threading.Tasks;
using System.Threading.Tasks;
using Volo.Abp.Data;
using Volo.Abp.DependencyInjection;
using Volo.Abp.Domain.Repositories;
using Volo.Abp.Guids;
namespace Acme.BookStore
{
public class BookStoreTestDataSeedContributor
: IDataSeedContributor, ITransientDependency
public class BookStoreTestDataSeedContributor : IDataSeedContributor, ITransientDependency
{
private readonly IRepository<Book, Guid> _bookRepository;
private readonly IGuidGenerator _guidGenerator;
public BookStoreTestDataSeedContributor(
IRepository<Book, Guid> bookRepository,
IGuidGenerator guidGenerator)
{
_bookRepository = bookRepository;
_guidGenerator = guidGenerator;
}
public async Task SeedAsync(DataSeedContext context)
public Task SeedAsync(DataSeedContext context)
{
await _bookRepository.InsertAsync(
new Book
{
Id = _guidGenerator.Create(),
Name = "Test book 1",
Type = BookType.Fantastic,
PublishDate = new DateTime(2015, 05, 24),
Price = 21
}
);
/* Seed additional test data... */
await _bookRepository.InsertAsync(
new Book
{
Id = _guidGenerator.Create(),
Name = "Test book 2",
Type = BookType.Science,
PublishDate = new DateTime(2014, 02, 11),
Price = 15
}
);
return Task.CompletedTask;
}
}
}

12
samples/BookStore-Modular/application/src/Acme.BookStore.Application.Contracts/Acme.BookStore.Application.Contracts.csproj

@ -1,4 +1,4 @@
<Project Sdk="Microsoft.NET.Sdk">
<Project Sdk="Microsoft.NET.Sdk">
<Import Project="..\..\common.props" />
@ -12,11 +12,11 @@
</ItemGroup>
<ItemGroup>
<PackageReference Include="Volo.Abp.Account.Application.Contracts" Version="0.19.0" />
<PackageReference Include="Volo.Abp.Identity.Application.Contracts" Version="0.19.0" />
<PackageReference Include="Volo.Abp.PermissionManagement.Application.Contracts" Version="0.19.0" />
<PackageReference Include="Volo.Abp.TenantManagement.Application.Contracts" Version="0.19.0" />
<PackageReference Include="Volo.Abp.FeatureManagement.Application.Contracts" Version="0.19.0" />
<PackageReference Include="Volo.Abp.Account.Application.Contracts" Version="0.21.0" />
<PackageReference Include="Volo.Abp.Identity.Application.Contracts" Version="0.21.0" />
<PackageReference Include="Volo.Abp.PermissionManagement.Application.Contracts" Version="0.21.0" />
<PackageReference Include="Volo.Abp.TenantManagement.Application.Contracts" Version="0.21.0" />
<PackageReference Include="Volo.Abp.FeatureManagement.Application.Contracts" Version="0.21.0" />
<ProjectReference Include="..\..\..\modules\book-management\src\Acme.BookStore.BookManagement.Application.Contracts\Acme.BookStore.BookManagement.Application.Contracts.csproj" />
</ItemGroup>

14
samples/BookStore-Modular/application/src/Acme.BookStore.Application/Acme.BookStore.Application.csproj

@ -1,9 +1,9 @@
<Project Sdk="Microsoft.NET.Sdk">
<Project Sdk="Microsoft.NET.Sdk">
<Import Project="..\..\common.props" />
<PropertyGroup>
<TargetFramework>netcoreapp2.2</TargetFramework>
<TargetFramework>netcoreapp3.0</TargetFramework>
<RootNamespace>Acme.BookStore</RootNamespace>
</PropertyGroup>
@ -13,11 +13,11 @@
</ItemGroup>
<ItemGroup>
<PackageReference Include="Volo.Abp.Account.Application" Version="0.19.0" />
<PackageReference Include="Volo.Abp.Identity.Application" Version="0.19.0" />
<PackageReference Include="Volo.Abp.PermissionManagement.Application" Version="0.19.0" />
<PackageReference Include="Volo.Abp.TenantManagement.Application" Version="0.19.0" />
<PackageReference Include="Volo.Abp.FeatureManagement.Application" Version="0.19.0" />
<PackageReference Include="Volo.Abp.Account.Application" Version="0.21.0" />
<PackageReference Include="Volo.Abp.Identity.Application" Version="0.21.0" />
<PackageReference Include="Volo.Abp.PermissionManagement.Application" Version="0.21.0" />
<PackageReference Include="Volo.Abp.TenantManagement.Application" Version="0.21.0" />
<PackageReference Include="Volo.Abp.FeatureManagement.Application" Version="0.21.0" />
<ProjectReference Include="..\..\..\modules\book-management\src\Acme.BookStore.BookManagement.Application\Acme.BookStore.BookManagement.Application.csproj" />
</ItemGroup>

6
samples/BookStore-Modular/application/src/Acme.BookStore.Application/BookStoreApplicationModule.cs

@ -25,11 +25,7 @@ namespace Acme.BookStore
{
Configure<AbpAutoMapperOptions>(options =>
{
/* Use `true` for the `validate` parameter if you want to
* validate the profile on application startup.
* See http://docs.automapper.org/en/stable/Configuration-validation.html for more info
* about the configuration validation. */
options.AddProfile<BookStoreApplicationAutoMapperProfile>();
options.AddMaps<BookStoreApplicationModule>();
});
}
}

5
samples/BookStore-Modular/application/src/Acme.BookStore.DbMigrator/Acme.BookStore.DbMigrator.csproj

@ -4,7 +4,7 @@
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>netcoreapp2.2</TargetFramework>
<TargetFramework>netcoreapp3.0</TargetFramework>
</PropertyGroup>
<ItemGroup>
@ -22,10 +22,11 @@
<PackageReference Include="Serilog.Extensions.Logging" Version="2.0.4" />
<PackageReference Include="Serilog.Sinks.File" Version="4.0.0" />
<PackageReference Include="Serilog.Sinks.Console" Version="3.1.1" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="3.0.0" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="Volo.Abp.Autofac" Version="0.19.0" />
<PackageReference Include="Volo.Abp.Autofac" Version="0.21.0" />
<ProjectReference Include="..\Acme.BookStore.Application.Contracts\Acme.BookStore.Application.Contracts.csproj" />
<ProjectReference Include="..\Acme.BookStore.EntityFrameworkCore.DbMigrations\Acme.BookStore.EntityFrameworkCore.DbMigrations.csproj" />
</ItemGroup>

2
samples/BookStore-Modular/application/src/Acme.BookStore.DbMigrator/appsettings.json

@ -7,7 +7,7 @@
"BookStore_Web": {
"ClientId": "BookStore_Web",
"ClientSecret": "1q2w3e*",
"RootUrl": "https://localhost:44388"
"RootUrl": "https://localhost:44367"
},
"BookStore_App": {
"ClientId": "BookStore_App",

18
samples/BookStore-Modular/application/src/Acme.BookStore.Domain.Shared/Acme.BookStore.Domain.Shared.csproj

@ -1,4 +1,4 @@
<Project Sdk="Microsoft.NET.Sdk">
<Project Sdk="Microsoft.NET.Sdk">
<Import Project="..\..\common.props" />
@ -8,14 +8,14 @@
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Volo.Abp.Identity.Domain.Shared" Version="0.19.0" />
<PackageReference Include="Volo.Abp.IdentityServer.Domain.Shared" Version="0.19.0" />
<PackageReference Include="Volo.Abp.BackgroundJobs.Domain.Shared" Version="0.19.0" />
<PackageReference Include="Volo.Abp.AuditLogging.Domain.Shared" Version="0.19.0" />
<PackageReference Include="Volo.Abp.TenantManagement.Domain.Shared" Version="0.19.0" />
<PackageReference Include="Volo.Abp.FeatureManagement.Domain.Shared" Version="0.19.0" />
<PackageReference Include="Volo.Abp.PermissionManagement.Domain.Shared" Version="0.19.0" />
<PackageReference Include="Volo.Abp.SettingManagement.Domain.Shared" Version="0.19.0" />
<PackageReference Include="Volo.Abp.Identity.Domain.Shared" Version="0.21.0" />
<PackageReference Include="Volo.Abp.IdentityServer.Domain.Shared" Version="0.21.0" />
<PackageReference Include="Volo.Abp.BackgroundJobs.Domain.Shared" Version="0.21.0" />
<PackageReference Include="Volo.Abp.AuditLogging.Domain.Shared" Version="0.21.0" />
<PackageReference Include="Volo.Abp.TenantManagement.Domain.Shared" Version="0.21.0" />
<PackageReference Include="Volo.Abp.FeatureManagement.Domain.Shared" Version="0.21.0" />
<PackageReference Include="Volo.Abp.PermissionManagement.Domain.Shared" Version="0.21.0" />
<PackageReference Include="Volo.Abp.SettingManagement.Domain.Shared" Version="0.21.0" />
<ProjectReference Include="..\..\..\modules\book-management\src\Acme.BookStore.BookManagement.Domain.Shared\Acme.BookStore.BookManagement.Domain.Shared.csproj" />
</ItemGroup>

22
samples/BookStore-Modular/application/src/Acme.BookStore.Domain/Acme.BookStore.Domain.csproj

@ -1,9 +1,9 @@
<Project Sdk="Microsoft.NET.Sdk">
<Project Sdk="Microsoft.NET.Sdk">
<Import Project="..\..\common.props" />
<PropertyGroup>
<TargetFramework>netcoreapp2.2</TargetFramework>
<TargetFramework>netcoreapp3.0</TargetFramework>
<RootNamespace>Acme.BookStore</RootNamespace>
</PropertyGroup>
@ -13,15 +13,15 @@
<ItemGroup>
<PackageReference Include="Microsoft.AspNetCore.Mvc.DataAnnotations" Version="2.2.0" />
<PackageReference Include="Volo.Abp.Identity.Domain" Version="0.19.0" />
<PackageReference Include="Volo.Abp.PermissionManagement.Domain.Identity" Version="0.19.0" />
<PackageReference Include="Volo.Abp.IdentityServer.Domain" Version="0.19.0" />
<PackageReference Include="Volo.Abp.PermissionManagement.Domain.IdentityServer" Version="0.19.0" />
<PackageReference Include="Volo.Abp.BackgroundJobs.Domain" Version="0.19.0" />
<PackageReference Include="Volo.Abp.AuditLogging.Domain" Version="0.19.0" />
<PackageReference Include="Volo.Abp.TenantManagement.Domain" Version="0.19.0" />
<PackageReference Include="Volo.Abp.FeatureManagement.Domain" Version="0.19.0" />
<PackageReference Include="Volo.Abp.SettingManagement.Domain" Version="0.19.0" />
<PackageReference Include="Volo.Abp.Identity.Domain" Version="0.21.0" />
<PackageReference Include="Volo.Abp.PermissionManagement.Domain.Identity" Version="0.21.0" />
<PackageReference Include="Volo.Abp.IdentityServer.Domain" Version="0.21.0" />
<PackageReference Include="Volo.Abp.PermissionManagement.Domain.IdentityServer" Version="0.21.0" />
<PackageReference Include="Volo.Abp.BackgroundJobs.Domain" Version="0.21.0" />
<PackageReference Include="Volo.Abp.AuditLogging.Domain" Version="0.21.0" />
<PackageReference Include="Volo.Abp.TenantManagement.Domain" Version="0.21.0" />
<PackageReference Include="Volo.Abp.FeatureManagement.Domain" Version="0.21.0" />
<PackageReference Include="Volo.Abp.SettingManagement.Domain" Version="0.21.0" />
<ProjectReference Include="..\..\..\modules\book-management\src\Acme.BookStore.BookManagement.Domain\Acme.BookStore.BookManagement.Domain.csproj" />
</ItemGroup>

4
samples/BookStore-Modular/application/src/Acme.BookStore.Domain/BookStoreDomainModule.cs

@ -1,4 +1,5 @@
using Acme.BookStore.MultiTenancy;
using Acme.BookStore.BookManagement;
using Acme.BookStore.MultiTenancy;
using Volo.Abp.AuditLogging;
using Volo.Abp.BackgroundJobs;
using Volo.Abp.FeatureManagement;
@ -10,7 +11,6 @@ using Volo.Abp.PermissionManagement.Identity;
using Volo.Abp.PermissionManagement.IdentityServer;
using Volo.Abp.SettingManagement;
using Volo.Abp.TenantManagement;
using Acme.BookStore.BookManagement;
namespace Acme.BookStore
{

6
samples/BookStore-Modular/application/src/Acme.BookStore.EntityFrameworkCore.DbMigrations/Acme.BookStore.EntityFrameworkCore.DbMigrations.csproj

@ -1,9 +1,9 @@
<Project Sdk="Microsoft.NET.Sdk">
<Project Sdk="Microsoft.NET.Sdk">
<Import Project="..\..\common.props" />
<PropertyGroup>
<TargetFramework>netcoreapp2.2</TargetFramework>
<TargetFramework>netcoreapp3.0</TargetFramework>
<RootNamespace>Acme.BookStore</RootNamespace>
</PropertyGroup>
@ -12,7 +12,7 @@
</ItemGroup>
<ItemGroup>
<PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="2.2.6" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="3.0.0" />
</ItemGroup>
</Project>

18
samples/BookStore-Modular/application/src/Acme.BookStore.EntityFrameworkCore.DbMigrations/Migrations/20190523122033_Initial.Designer.cs → samples/BookStore-Modular/application/src/Acme.BookStore.EntityFrameworkCore.DbMigrations/Migrations/20190918061142_Initial.Designer.cs

@ -10,14 +10,14 @@ using Acme.BookStore.EntityFrameworkCore;
namespace Acme.BookStore.Migrations
{
[DbContext(typeof(BookStoreMigrationsDbContext))]
[Migration("20190523122033_Initial")]
[Migration("20190918061142_Initial")]
partial class Initial
{
protected override void BuildTargetModel(ModelBuilder modelBuilder)
{
#pragma warning disable 612, 618
modelBuilder
.HasAnnotation("ProductVersion", "2.2.4-servicing-10062")
.HasAnnotation("ProductVersion", "2.2.6-servicing-10079")
.HasAnnotation("Relational:MaxIdentifierLength", 128)
.HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);
@ -636,6 +636,8 @@ namespace Acme.BookStore.Migrations
.IsRequired()
.HasMaxLength(200);
b.Property<string>("Properties");
b.HasKey("Id");
b.ToTable("IdentityServerApiResources");
@ -776,6 +778,8 @@ namespace Acme.BookStore.Migrations
b.Property<string>("Description")
.HasMaxLength(1000);
b.Property<int>("DeviceCodeLifetime");
b.Property<bool>("EnableLocalLogin");
b.Property<bool>("Enabled");
@ -827,10 +831,14 @@ namespace Acme.BookStore.Migrations
b.Property<bool>("UpdateAccessTokenClaimsOnRefresh");
b.Property<string>("UserCodeType")
.HasMaxLength(100);
b.Property<int?>("UserSsoLifetime");
b.HasKey("Id");
b.HasIndex("ClientId")
.IsUnique();
b.HasIndex("ClientId");
b.ToTable("IdentityServerClients");
});
@ -1056,6 +1064,8 @@ namespace Acme.BookStore.Migrations
.IsRequired()
.HasMaxLength(200);
b.Property<string>("Properties");
b.Property<bool>("Required");
b.Property<bool>("ShowInDiscoveryDocument");

14
samples/BookStore-Modular/application/src/Acme.BookStore.EntityFrameworkCore.DbMigrations/Migrations/20190523122033_Initial.cs → samples/BookStore-Modular/application/src/Acme.BookStore.EntityFrameworkCore.DbMigrations/Migrations/20190918061142_Initial.cs

@ -218,7 +218,8 @@ namespace Acme.BookStore.Migrations
Name = table.Column<string>(maxLength: 200, nullable: false),
DisplayName = table.Column<string>(maxLength: 200, nullable: true),
Description = table.Column<string>(maxLength: 1000, nullable: true),
Enabled = table.Column<bool>(nullable: false)
Enabled = table.Column<bool>(nullable: false),
Properties = table.Column<string>(nullable: true)
},
constraints: table =>
{
@ -272,7 +273,10 @@ namespace Acme.BookStore.Migrations
IncludeJwtId = table.Column<bool>(nullable: false),
AlwaysSendClientClaims = table.Column<bool>(nullable: false),
ClientClaimsPrefix = table.Column<string>(maxLength: 200, nullable: true),
PairWiseSubjectSalt = table.Column<string>(maxLength: 200, nullable: true)
PairWiseSubjectSalt = table.Column<string>(maxLength: 200, nullable: true),
UserSsoLifetime = table.Column<int>(nullable: true),
UserCodeType = table.Column<string>(maxLength: 100, nullable: true),
DeviceCodeLifetime = table.Column<int>(nullable: false)
},
constraints: table =>
{
@ -299,7 +303,8 @@ namespace Acme.BookStore.Migrations
Enabled = table.Column<bool>(nullable: false),
Required = table.Column<bool>(nullable: false),
Emphasize = table.Column<bool>(nullable: false),
ShowInDiscoveryDocument = table.Column<bool>(nullable: false)
ShowInDiscoveryDocument = table.Column<bool>(nullable: false),
Properties = table.Column<string>(nullable: true)
},
constraints: table =>
{
@ -902,8 +907,7 @@ namespace Acme.BookStore.Migrations
migrationBuilder.CreateIndex(
name: "IX_IdentityServerClients_ClientId",
table: "IdentityServerClients",
column: "ClientId",
unique: true);
column: "ClientId");
migrationBuilder.CreateIndex(
name: "IX_IdentityServerPersistedGrants_SubjectId_ClientId_Type",

782
samples/BookStore-Modular/application/src/Acme.BookStore.EntityFrameworkCore.DbMigrations/Migrations/20190914071643_Added_Book_Entity.Designer.cs → samples/BookStore-Modular/application/src/Acme.BookStore.EntityFrameworkCore.DbMigrations/Migrations/20191008070344_Added_Book_Entity.Designer.cs

File diff suppressed because it is too large

15
samples/BookStore-Modular/application/src/Acme.BookStore.EntityFrameworkCore.DbMigrations/Migrations/20190914071643_Added_Book_Entity.cs → samples/BookStore-Modular/application/src/Acme.BookStore.EntityFrameworkCore.DbMigrations/Migrations/20191008070344_Added_Book_Entity.cs

@ -7,6 +7,14 @@ namespace Acme.BookStore.Migrations
{
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.AlterColumn<string>(
name: "Data",
table: "IdentityServerPersistedGrants",
nullable: false,
oldClrType: typeof(string),
oldType: "nvarchar(max)",
oldNullable: true);
migrationBuilder.CreateTable(
name: "BmBooks",
columns: table => new
@ -33,6 +41,13 @@ namespace Acme.BookStore.Migrations
{
migrationBuilder.DropTable(
name: "BmBooks");
migrationBuilder.AlterColumn<string>(
name: "Data",
table: "IdentityServerPersistedGrants",
type: "nvarchar(max)",
nullable: true,
oldClrType: typeof(string));
}
}
}

780
samples/BookStore-Modular/application/src/Acme.BookStore.EntityFrameworkCore.DbMigrations/Migrations/BookStoreMigrationsDbContextModelSnapshot.cs

File diff suppressed because it is too large

22
samples/BookStore-Modular/application/src/Acme.BookStore.EntityFrameworkCore/Acme.BookStore.EntityFrameworkCore.csproj

@ -1,23 +1,23 @@
<Project Sdk="Microsoft.NET.Sdk">
<Project Sdk="Microsoft.NET.Sdk">
<Import Project="..\..\common.props" />
<PropertyGroup>
<TargetFramework>netcoreapp2.2</TargetFramework>
<TargetFramework>netcoreapp3.0</TargetFramework>
<RootNamespace>Acme.BookStore</RootNamespace>
</PropertyGroup>
<ItemGroup>
<ProjectReference Include="..\Acme.BookStore.Domain\Acme.BookStore.Domain.csproj" />
<PackageReference Include="Volo.Abp.EntityFrameworkCore.SqlServer" Version="0.19.0" />
<PackageReference Include="Volo.Abp.PermissionManagement.EntityFrameworkCore" Version="0.19.0" />
<PackageReference Include="Volo.Abp.SettingManagement.EntityFrameworkCore" Version="0.19.0" />
<PackageReference Include="Volo.Abp.Identity.EntityFrameworkCore" Version="0.19.0" />
<PackageReference Include="Volo.Abp.IdentityServer.EntityFrameworkCore" Version="0.19.0" />
<PackageReference Include="Volo.Abp.BackgroundJobs.EntityFrameworkCore" Version="0.19.0" />
<PackageReference Include="Volo.Abp.AuditLogging.EntityFrameworkCore" Version="0.19.0" />
<PackageReference Include="Volo.Abp.TenantManagement.EntityFrameworkCore" Version="0.19.0" />
<PackageReference Include="Volo.Abp.FeatureManagement.EntityFrameworkCore" Version="0.19.0" />
<PackageReference Include="Volo.Abp.EntityFrameworkCore.SqlServer" Version="0.21.0" />
<PackageReference Include="Volo.Abp.PermissionManagement.EntityFrameworkCore" Version="0.21.0" />
<PackageReference Include="Volo.Abp.SettingManagement.EntityFrameworkCore" Version="0.21.0" />
<PackageReference Include="Volo.Abp.Identity.EntityFrameworkCore" Version="0.21.0" />
<PackageReference Include="Volo.Abp.IdentityServer.EntityFrameworkCore" Version="0.21.0" />
<PackageReference Include="Volo.Abp.BackgroundJobs.EntityFrameworkCore" Version="0.21.0" />
<PackageReference Include="Volo.Abp.AuditLogging.EntityFrameworkCore" Version="0.21.0" />
<PackageReference Include="Volo.Abp.TenantManagement.EntityFrameworkCore" Version="0.21.0" />
<PackageReference Include="Volo.Abp.FeatureManagement.EntityFrameworkCore" Version="0.21.0" />
<ProjectReference Include="..\..\..\modules\book-management\src\Acme.BookStore.BookManagement.EntityFrameworkCore\Acme.BookStore.BookManagement.EntityFrameworkCore.csproj" />
</ItemGroup>

14
samples/BookStore-Modular/application/src/Acme.BookStore.HttpApi.Client/Acme.BookStore.HttpApi.Client.csproj

@ -1,9 +1,9 @@
<Project Sdk="Microsoft.NET.Sdk">
<Project Sdk="Microsoft.NET.Sdk">
<Import Project="..\..\common.props" />
<PropertyGroup>
<TargetFramework>netstandard2.0</TargetFramework>
<TargetFramework>netcoreapp3.0</TargetFramework>
<RootNamespace>Acme.BookStore</RootNamespace>
</PropertyGroup>
@ -13,11 +13,11 @@
</ItemGroup>
<ItemGroup>
<PackageReference Include="Volo.Abp.Account.HttpApi.Client" Version="0.19.0" />
<PackageReference Include="Volo.Abp.Identity.HttpApi.Client" Version="0.19.0" />
<PackageReference Include="Volo.Abp.PermissionManagement.HttpApi.Client" Version="0.19.0" />
<PackageReference Include="Volo.Abp.TenantManagement.HttpApi.Client" Version="0.19.0" />
<PackageReference Include="Volo.Abp.FeatureManagement.HttpApi.Client" Version="0.19.0" />
<PackageReference Include="Volo.Abp.Account.HttpApi.Client" Version="0.21.0" />
<PackageReference Include="Volo.Abp.Identity.HttpApi.Client" Version="0.21.0" />
<PackageReference Include="Volo.Abp.PermissionManagement.HttpApi.Client" Version="0.21.0" />
<PackageReference Include="Volo.Abp.TenantManagement.HttpApi.Client" Version="0.21.0" />
<PackageReference Include="Volo.Abp.FeatureManagement.HttpApi.Client" Version="0.21.0" />
</ItemGroup>
</Project>

14
samples/BookStore-Modular/application/src/Acme.BookStore.HttpApi/Acme.BookStore.HttpApi.csproj

@ -1,9 +1,9 @@
<Project Sdk="Microsoft.NET.Sdk">
<Project Sdk="Microsoft.NET.Sdk">
<Import Project="..\..\common.props" />
<PropertyGroup>
<TargetFramework>netcoreapp2.2</TargetFramework>
<TargetFramework>netcoreapp3.0</TargetFramework>
<RootNamespace>Acme.BookStore</RootNamespace>
</PropertyGroup>
@ -13,11 +13,11 @@
</ItemGroup>
<ItemGroup>
<PackageReference Include="Volo.Abp.Account.HttpApi" Version="0.19.0" />
<PackageReference Include="Volo.Abp.Identity.HttpApi" Version="0.19.0" />
<PackageReference Include="Volo.Abp.PermissionManagement.HttpApi" Version="0.19.0" />
<PackageReference Include="Volo.Abp.TenantManagement.HttpApi" Version="0.19.0" />
<PackageReference Include="Volo.Abp.FeatureManagement.HttpApi" Version="0.19.0" />
<PackageReference Include="Volo.Abp.Account.HttpApi" Version="0.21.0" />
<PackageReference Include="Volo.Abp.Identity.HttpApi" Version="0.21.0" />
<PackageReference Include="Volo.Abp.PermissionManagement.HttpApi" Version="0.21.0" />
<PackageReference Include="Volo.Abp.TenantManagement.HttpApi" Version="0.21.0" />
<PackageReference Include="Volo.Abp.FeatureManagement.HttpApi" Version="0.21.0" />
</ItemGroup>
</Project>

24
samples/BookStore-Modular/application/src/Acme.BookStore.Web/Acme.BookStore.Web.csproj

@ -1,9 +1,9 @@
<Project Sdk="Microsoft.NET.Sdk.Web">
<Project Sdk="Microsoft.NET.Sdk.Web">
<Import Project="..\..\common.props" />
<PropertyGroup>
<TargetFramework>netcoreapp2.2</TargetFramework>
<TargetFramework>netcoreapp3.0</TargetFramework>
<AspNetCoreHostingModel>InProcess</AspNetCoreHostingModel>
<RootNamespace>Acme.BookStore.Web</RootNamespace>
<AssetTargetFallback>$(AssetTargetFallback);portable-net45+win8+wp8+wpa81;</AssetTargetFallback>
@ -12,6 +12,7 @@
<GenerateRuntimeConfigurationFiles>true</GenerateRuntimeConfigurationFiles>
<PreserveCompilationContext>true</PreserveCompilationContext>
<MvcRazorExcludeRefAssembliesFromPublish>false</MvcRazorExcludeRefAssembliesFromPublish>
<PreserveCompilationReferences>true</PreserveCompilationReferences>
</PropertyGroup>
<ItemGroup>
@ -31,13 +32,12 @@
</ItemGroup>
<ItemGroup>
<PackageReference Include="Microsoft.AspNetCore.App" />
<PackageReference Include="Microsoft.AspNetCore.Razor.Design" Version="2.2.0" PrivateAssets="All" />
<PackageReference Include="Serilog.AspNetCore" Version="2.1.1" />
<PackageReference Include="Serilog.Sinks.File" Version="4.0.0" />
<PackageReference Include="Serilog.Sinks.Async" Version="1.4.0" />
<PackageReference Include="Swashbuckle.AspNetCore" Version="4.0.1" />
<PackageReference Include="IdentityServer4.AccessTokenValidation" Version="2.7.0" />
<PackageReference Include="IdentityServer4.AccessTokenValidation" Version="3.0.0" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="3.0.0" />
</ItemGroup>
<ItemGroup>
@ -45,13 +45,13 @@
<ProjectReference Include="..\Acme.BookStore.Application\Acme.BookStore.Application.csproj" />
<ProjectReference Include="..\Acme.BookStore.HttpApi\Acme.BookStore.HttpApi.csproj" />
<ProjectReference Include="..\Acme.BookStore.EntityFrameworkCore.DbMigrations\Acme.BookStore.EntityFrameworkCore.DbMigrations.csproj" />
<PackageReference Include="Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic" Version="0.19.0" />
<PackageReference Include="Volo.Abp.Autofac" Version="0.19.0" />
<PackageReference Include="Volo.Abp.AspNetCore.Authentication.JwtBearer" Version="0.19.0" />
<PackageReference Include="Volo.Abp.Identity.Web" Version="0.19.0" />
<PackageReference Include="Volo.Abp.Account.Web.IdentityServer" Version="0.19.0" />
<PackageReference Include="Volo.Abp.TenantManagement.Web" Version="0.19.0" />
<PackageReference Include="Volo.Abp.FeatureManagement.Web" Version="0.19.0" />
<PackageReference Include="Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic" Version="0.21.0" />
<PackageReference Include="Volo.Abp.Autofac" Version="0.21.0" />
<PackageReference Include="Volo.Abp.AspNetCore.Authentication.JwtBearer" Version="0.21.0" />
<PackageReference Include="Volo.Abp.Identity.Web" Version="0.21.0" />
<PackageReference Include="Volo.Abp.Account.Web.IdentityServer" Version="0.21.0" />
<PackageReference Include="Volo.Abp.TenantManagement.Web" Version="0.21.0" />
<PackageReference Include="Volo.Abp.FeatureManagement.Web" Version="0.21.0" />
</ItemGroup>
</Project>

25
samples/BookStore-Modular/application/src/Acme.BookStore.Web/BookStoreWebModule.cs

@ -6,6 +6,7 @@ using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
using Acme.BookStore.EntityFrameworkCore;
using Acme.BookStore.Localization;
using Acme.BookStore.MultiTenancy;
@ -18,10 +19,12 @@ using Volo.Abp.AspNetCore.Mvc;
using Volo.Abp.AspNetCore.Mvc.Localization;
using Volo.Abp.AspNetCore.Mvc.UI;
using Volo.Abp.AspNetCore.Mvc.UI.Bootstrap;
using Volo.Abp.AspNetCore.Mvc.UI.MultiTenancy;
using Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic;
using Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared;
using Volo.Abp.Autofac;
using Volo.Abp.AutoMapper;
using Volo.Abp.FeatureManagement;
using Volo.Abp.Identity.Web;
using Volo.Abp.Localization;
using Volo.Abp.Modularity;
@ -75,7 +78,9 @@ namespace Acme.BookStore.Web
ConfigureLocalizationServices();
ConfigureNavigationServices();
ConfigureAutoApiControllers();
ConfigureSwaggerServices(context.Services);
//Disabled swagger since it does not support ASP.NET Core 3.0 yet!
//ConfigureSwaggerServices(context.Services);
}
private void ConfigureUrls(IConfigurationRoot configuration)
@ -101,16 +106,12 @@ namespace Acme.BookStore.Web
{
Configure<AbpAutoMapperOptions>(options =>
{
/* use `true` for the `validate` parameter if you want to
* validate the profile on application startup.
* See http://docs.automapper.org/en/stable/Configuration-validation.html for more
* about configuration validation.
*/
options.AddProfile<BookStoreWebAutoMapperProfile>();
options.AddMaps<BookStoreWebModule>();
});
}
private void ConfigureVirtualFileSystem(IHostingEnvironment hostingEnvironment)
private void ConfigureVirtualFileSystem(IWebHostEnvironment hostingEnvironment)
{
if (hostingEnvironment.IsDevelopment())
{
@ -181,6 +182,8 @@ namespace Acme.BookStore.Web
var app = context.GetApplicationBuilder();
var env = context.GetEnvironment();
app.UseCorrelationId();
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
@ -191,7 +194,9 @@ namespace Acme.BookStore.Web
}
app.UseVirtualFiles();
app.UseRouting();
app.UseAuthentication();
app.UseAuthorization();
app.UseJwtTokenMiddleware();
if (MultiTenancyConsts.IsEnabled)
@ -201,11 +206,15 @@ namespace Acme.BookStore.Web
app.UseIdentityServer();
app.UseAbpRequestLocalization();
/* Disabled swagger since it does not support ASP.NET Core 3.0 yet!
app.UseSwagger();
app.UseSwaggerUI(options =>
{
options.SwaggerEndpoint("/swagger/v1/swagger.json", "BookStore API");
});
*/
app.UseAuditing();
app.UseMvcWithDefaultRouteAndArea();
}

2
samples/BookStore-Modular/application/src/Acme.BookStore.Web/Program.cs

@ -19,7 +19,7 @@ namespace Acme.BookStore.Web
#else
.MinimumLevel.Information()
#endif
.MinimumLevel.Override("Microsoft", LogEventLevel.Information)
.MinimumLevel.Override("Microsoft", LogEventLevel.Debug)
.Enrich.FromLogContext()
.WriteTo.Async(c => c.File("Logs/logs.txt"))
.CreateLogger();

6
samples/BookStore-Modular/application/src/Acme.BookStore.Web/Properties/launchSettings.json

@ -3,8 +3,8 @@
"windowsAuthentication": false,
"anonymousAuthentication": true,
"iisExpress": {
"applicationUrl": "https://localhost:44388/",
"sslPort": 44388
"applicationUrl": "https://localhost:44367/",
"sslPort": 44367
}
},
"profiles": {
@ -21,7 +21,7 @@
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
},
"applicationUrl": "https://localhost:44388/"
"applicationUrl": "https://localhost:44367/"
}
}
}

4
samples/BookStore-Modular/application/src/Acme.BookStore.Web/appsettings.json

@ -1,12 +1,12 @@
{
"App": {
"SelfUrl": "https://localhost:44388"
"SelfUrl": "https://localhost:44367"
},
"ConnectionStrings": {
"Default": "Server=localhost;Database=BookStore;Trusted_Connection=True;MultipleActiveResultSets=true"
},
"AuthServer": {
"Authority": "https://localhost:44388"
"Authority": "https://localhost:44367"
},
"IdentityServer": {
"Clients": {

2
samples/BookStore-Modular/application/src/Acme.BookStore.Web/package.json

@ -3,6 +3,6 @@
"name": "my-app",
"private": true,
"dependencies": {
"@abp/aspnetcore.mvc.ui.theme.basic": "^0.8.0"
"@abp/aspnetcore.mvc.ui.theme.basic": "^0.9.0"
}
}

2067
samples/BookStore-Modular/application/src/Acme.BookStore.Web/wwwroot/libs/bootstrap/css/bootstrap.css

File diff suppressed because it is too large

6645
samples/BookStore-Modular/application/src/Acme.BookStore.Web/wwwroot/libs/bootstrap/js/bootstrap.bundle.js

File diff suppressed because it is too large

6
samples/BookStore-Modular/application/src/Acme.BookStore.Web/wwwroot/libs/datatables.net-bs4/css/dataTables.bootstrap4.css

@ -4,6 +4,7 @@ table.dataTable {
margin-bottom: 6px !important;
max-width: none !important;
border-collapse: separate !important;
border-spacing: 0;
}
table.dataTable td,
table.dataTable th {
@ -25,7 +26,7 @@ div.dataTables_wrapper div.dataTables_length label {
white-space: nowrap;
}
div.dataTables_wrapper div.dataTables_length select {
width: 75px;
width: auto;
display: inline-block;
}
div.dataTables_wrapper div.dataTables_filter {
@ -132,6 +133,9 @@ div.dataTables_scrollBody table {
margin-top: 0 !important;
margin-bottom: 0 !important;
}
div.dataTables_scrollBody table thead .sorting:before,
div.dataTables_scrollBody table thead .sorting_asc:before,
div.dataTables_scrollBody table thead .sorting_desc:before,
div.dataTables_scrollBody table thead .sorting:after,
div.dataTables_scrollBody table thead .sorting_asc:after,
div.dataTables_scrollBody table thead .sorting_desc:after {

10
samples/BookStore-Modular/application/src/Acme.BookStore.Web/wwwroot/libs/datatables.net-bs4/js/dataTables.bootstrap4.js

@ -1,9 +1,9 @@
/*! DataTables Bootstrap 3 integration
* ©2011-2015 SpryMedia Ltd - datatables.net/license
/*! DataTables Bootstrap 4 integration
* ©2011-2017 SpryMedia Ltd - datatables.net/license
*/
/**
* DataTables integration for Bootstrap 3. This requires Bootstrap 3 and
* DataTables integration for Bootstrap 4. This requires Bootstrap 4 and
* DataTables 1.10 or newer.
*
* This file sets the defaults and adds options to DataTables to style its
@ -55,9 +55,9 @@ $.extend( true, DataTable.defaults, {
/* Default class modification */
$.extend( DataTable.ext.classes, {
sWrapper: "dataTables_wrapper container-fluid dt-bootstrap4",
sWrapper: "dataTables_wrapper dt-bootstrap4",
sFilterInput: "form-control form-control-sm",
sLengthSelect: "form-control form-control-sm",
sLengthSelect: "custom-select custom-select-sm form-control form-control-sm",
sProcessing: "dataTables_processing card",
sPageButton: "paginate_button page-item"
} );

200
samples/BookStore-Modular/application/src/Acme.BookStore.Web/wwwroot/libs/datatables.net/js/jquery.dataTables.js

@ -1,15 +1,15 @@
/*! DataTables 1.10.16
* ©2008-2017 SpryMedia Ltd - datatables.net/license
/*! DataTables 1.10.19
* ©2008-2018 SpryMedia Ltd - datatables.net/license
*/
/**
* @summary DataTables
* @description Paginate, search and order HTML tables
* @version 1.10.16
* @version 1.10.19
* @file jquery.dataTables.js
* @author SpryMedia Ltd
* @contact www.datatables.net
* @copyright Copyright 2008-2017 SpryMedia Ltd.
* @copyright Copyright 2008-2018 SpryMedia Ltd.
*
* This source file is free software, available under the following license:
* MIT license - http://datatables.net/license
@ -909,8 +909,11 @@
var s = allSettings[i];
/* Base check on table node */
if ( s.nTable == this || s.nTHead.parentNode == this || (s.nTFoot && s.nTFoot.parentNode == this) )
{
if (
s.nTable == this ||
(s.nTHead && s.nTHead.parentNode == this) ||
(s.nTFoot && s.nTFoot.parentNode == this)
) {
var bRetrieve = oInit.bRetrieve !== undefined ? oInit.bRetrieve : defaults.bRetrieve;
var bDestroy = oInit.bDestroy !== undefined ? oInit.bDestroy : defaults.bDestroy;
@ -967,11 +970,7 @@
// Backwards compatibility, before we apply all the defaults
_fnCompatOpts( oInit );
if ( oInit.oLanguage )
{
_fnLanguageCompat( oInit.oLanguage );
}
_fnLanguageCompat( oInit.oLanguage );
// If the length menu is given, but the init display length is not, use the length menu
if ( oInit.aLengthMenu && ! oInit.iDisplayLength )
@ -1354,8 +1353,10 @@
// - fr - Swiss Franc
// - kr - Swedish krona, Norwegian krone and Danish krone
// - \u2009 is thin space and \u202F is narrow no-break space, both used in many
// - Ƀ - Bitcoin
// - Ξ - Ethereum
// standards as thousands separators.
var _re_formatted_numeric = /[',$£€¥%\u2009\u202F\u20BD\u20a9\u20BArfk]/gi;
var _re_formatted_numeric = /[',$£€¥%\u2009\u202F\u20BD\u20a9\u20BArfkɃΞ]/gi;
var _empty = function ( d ) {
@ -1730,33 +1731,43 @@
*/
function _fnLanguageCompat( lang )
{
// Note the use of the Hungarian notation for the parameters in this method as
// this is called after the mapping of camelCase to Hungarian
var defaults = DataTable.defaults.oLanguage;
var zeroRecords = lang.sZeroRecords;
/* Backwards compatibility - if there is no sEmptyTable given, then use the same as
* sZeroRecords - assuming that is given.
*/
if ( ! lang.sEmptyTable && zeroRecords &&
defaults.sEmptyTable === "No data available in table" )
{
_fnMap( lang, lang, 'sZeroRecords', 'sEmptyTable' );
// Default mapping
var defaultDecimal = defaults.sDecimal;
if ( defaultDecimal ) {
_addNumericSort( defaultDecimal );
}
/* Likewise with loading records */
if ( ! lang.sLoadingRecords && zeroRecords &&
defaults.sLoadingRecords === "Loading..." )
{
_fnMap( lang, lang, 'sZeroRecords', 'sLoadingRecords' );
}
if ( lang ) {
var zeroRecords = lang.sZeroRecords;
// Old parameter name of the thousands separator mapped onto the new
if ( lang.sInfoThousands ) {
lang.sThousands = lang.sInfoThousands;
}
// Backwards compatibility - if there is no sEmptyTable given, then use the same as
// sZeroRecords - assuming that is given.
if ( ! lang.sEmptyTable && zeroRecords &&
defaults.sEmptyTable === "No data available in table" )
{
_fnMap( lang, lang, 'sZeroRecords', 'sEmptyTable' );
}
var decimal = lang.sDecimal;
if ( decimal ) {
_addNumericSort( decimal );
// Likewise with loading records
if ( ! lang.sLoadingRecords && zeroRecords &&
defaults.sLoadingRecords === "Loading..." )
{
_fnMap( lang, lang, 'sZeroRecords', 'sLoadingRecords' );
}
// Old parameter name of the thousands separator mapped onto the new
if ( lang.sInfoThousands ) {
lang.sThousands = lang.sInfoThousands;
}
var decimal = lang.sDecimal;
if ( decimal && defaultDecimal !== decimal ) {
_addNumericSort( decimal );
}
}
}
@ -3128,7 +3139,7 @@
}
}
_fnCallbackFire( oSettings, 'aoRowCreatedCallback', null, [nTr, rowData, iRow] );
_fnCallbackFire( oSettings, 'aoRowCreatedCallback', null, [nTr, rowData, iRow, cells] );
}
// Remove once webkit bug 131819 and Chromium bug 365619 have been resolved
@ -3453,7 +3464,7 @@
// iRowCount and j are not currently documented. Are they at all
// useful?
_fnCallbackFire( oSettings, 'aoRowCallback', null,
[nRow, aoData._aData, iRowCount, j] );
[nRow, aoData._aData, iRowCount, j, iDataIndex] );
anRows.push( nRow );
iRowCount++;
@ -3857,12 +3868,12 @@
{
ajaxData = ajax.data;
var newData = $.isFunction( ajaxData ) ?
var newData = typeof ajaxData === 'function' ?
ajaxData( data, oSettings ) : // fn can manipulate data or return
ajaxData; // an object object or array to merge
// If the function returned something, use that alone
data = $.isFunction( ajaxData ) && newData ?
data = typeof ajaxData === 'function' && newData ?
newData :
$.extend( true, data, newData );
@ -3926,7 +3937,7 @@
url: ajax || oSettings.sAjaxSource
} ) );
}
else if ( $.isFunction( ajax ) )
else if ( typeof ajax === 'function' )
{
// Is a function - let the caller define what needs to be done
oSettings.jqXHR = ajax.call( instance, data, callback, oSettings );
@ -5360,14 +5371,18 @@
// both match, but we want to hide it completely. We want to also fix their
// width to what they currently are
_fnApplyToChildren( function(nSizer, i) {
nSizer.innerHTML = '<div class="dataTables_sizing" style="height:0;overflow:hidden;">'+headerContent[i]+'</div>';
nSizer.innerHTML = '<div class="dataTables_sizing">'+headerContent[i]+'</div>';
nSizer.childNodes[0].style.height = "0";
nSizer.childNodes[0].style.overflow = "hidden";
nSizer.style.width = headerWidths[i];
}, headerSrcEls );
if ( footer )
{
_fnApplyToChildren( function(nSizer, i) {
nSizer.innerHTML = '<div class="dataTables_sizing" style="height:0;overflow:hidden;">'+footerContent[i]+'</div>';
nSizer.innerHTML = '<div class="dataTables_sizing">'+footerContent[i]+'</div>';
nSizer.childNodes[0].style.height = "0";
nSizer.childNodes[0].style.overflow = "hidden";
nSizer.style.width = footerWidths[i];
}, footerSrcEls );
}
@ -6561,7 +6576,7 @@
{
$(n)
.on( 'click.DT', oData, function (e) {
n.blur(); // Remove focus outline for mouse users
$(n).blur(); // Remove focus outline for mouse users
fn(e);
} )
.on( 'keypress.DT', oData, function (e){
@ -7801,13 +7816,26 @@
}
}
else if ( order == 'current' || order == 'applied' ) {
a = search == 'none' ?
displayMaster.slice() : // no search
search == 'applied' ?
displayFiltered.slice() : // applied search
$.map( displayMaster, function (el, i) { // removed search
return $.inArray( el, displayFiltered ) === -1 ? el : null;
} );
if ( search == 'none') {
a = displayMaster.slice();
}
else if ( search == 'applied' ) {
a = displayFiltered.slice();
}
else if ( search == 'removed' ) {
// O(n+m) solution by creating a hash map
var displayFilteredMap = {};
for ( var i=0, ien=displayFiltered.length ; i<ien ; i++ ) {
displayFilteredMap[displayFiltered[i]] = null;
}
a = $.map( displayMaster, function (el) {
return ! displayFilteredMap.hasOwnProperty(el) ?
el :
null;
} );
}
}
else if ( order == 'index' || order == 'original' ) {
for ( i=0, ien=settings.aoData.length ; i<ien ; i++ ) {
@ -7840,14 +7868,13 @@
* {array} - jQuery array of nodes, or simply an array of TR nodes
*
*/
var __row_selector = function ( settings, selector, opts )
{
var rows;
var run = function ( sel ) {
var selInt = _intVal( sel );
var i, ien;
var aoData = settings.aoData;
// Short cut - selector is a number and no options provided (default is
// all records, so no need to check if the index is in there, since it
@ -7872,23 +7899,26 @@
// Selector - function
if ( typeof sel === 'function' ) {
return $.map( rows, function (idx) {
var row = settings.aoData[ idx ];
var row = aoData[ idx ];
return sel( idx, row._aData, row.nTr ) ? idx : null;
} );
}
// Get nodes in the order from the `rows` array with null values removed
var nodes = _removeEmpty(
_pluck_order( settings.aoData, rows, 'nTr' )
);
// Selector - node
if ( sel.nodeName ) {
if ( sel._DT_RowIndex !== undefined ) {
return [ sel._DT_RowIndex ]; // Property added by DT for fast lookup
var rowIdx = sel._DT_RowIndex; // Property added by DT for fast lookup
var cellIdx = sel._DT_CellIndex;
if ( rowIdx !== undefined ) {
// Make sure that the row is actually still present in the table
return aoData[ rowIdx ] && aoData[ rowIdx ].nTr === sel ?
[ rowIdx ] :
[];
}
else if ( sel._DT_CellIndex ) {
return [ sel._DT_CellIndex.row ];
else if ( cellIdx ) {
return aoData[ cellIdx.row ] && aoData[ cellIdx.row ].nTr === sel ?
[ cellIdx.row ] :
[];
}
else {
var host = $(sel).closest('*[data-dt-row]');
@ -7917,6 +7947,11 @@
// need to fall through to jQuery in case there is DOM id that
// matches
}
// Get nodes in the order from the `rows` array with null values removed
var nodes = _removeEmpty(
_pluck_order( settings.aoData, rows, 'nTr' )
);
// Selector - jQuery selector string, array of nodes or jQuery object/
// As jQuery's .filter() allows jQuery objects to be passed in filter,
@ -8111,7 +8146,13 @@
}
// Set
ctx[0].aoData[ this[0] ]._aData = data;
var row = ctx[0].aoData[ this[0] ];
row._aData = data;
// If the DOM has an id, and the data source is an array
if ( $.isArray( data ) && row.nTr.id ) {
_fnSetObjectDataFn( ctx[0].rowId )( data, row.nTr.id );
}
// Automatically invalidate
_fnInvalidate( ctx[0], this[0], 'data' );
@ -8537,6 +8578,12 @@
_fnDrawHead( settings, settings.aoHeader );
_fnDrawHead( settings, settings.aoFooter );
// Update colspan for no records display. Child rows and extensions will use their own
// listeners to do this - only need to update the empty table item here
if ( ! settings.aiDisplay.length ) {
$(settings.nTBody).find('td[colspan]').attr('colspan', _fnVisbleColumns(settings));
}
_fnSaveState( settings );
};
@ -8702,7 +8749,10 @@
// Selector - index
if ( $.isPlainObject( s ) ) {
return [s];
// Valid cell index and its in the array of selectable rows
return s.column !== undefined && s.row !== undefined && $.inArray( s.row, rows ) !== -1 ?
[s] :
[];
}
// Selector - jQuery filtered cells
@ -8766,11 +8816,11 @@
}
// Row + column selector
var columns = this.columns( columnSelector, opts );
var rows = this.rows( rowSelector, opts );
var columns = this.columns( columnSelector );
var rows = this.rows( rowSelector );
var a, i, ien, j, jen;
var cells = this.iterator( 'table', function ( settings, idx ) {
this.iterator( 'table', function ( settings, idx ) {
a = [];
for ( i=0, ien=rows[idx].length ; i<ien ; i++ ) {
@ -8781,10 +8831,11 @@
} );
}
}
return a;
}, 1 );
// Now pass through the cell selector for options
var cells = this.cells( a, opts );
$.extend( cells.selector, {
cols: columnSelector,
rows: rowSelector,
@ -9412,7 +9463,7 @@
* @type string
* @default Version number
*/
DataTable.version = "1.10.16";
DataTable.version = "1.10.19";
/**
* Private data store, containing all of the settings objects that are
@ -12350,8 +12401,8 @@
* { "data": "engine" },
* { "data": "browser" },
* { "data": "platform.inner" },
* { "data": "platform.details.0" },
* { "data": "platform.details.1" }
* { "data": "details.0" },
* { "data": "details.1" }
* ]
* } );
* } );
@ -14148,7 +14199,7 @@
* $.fn.dataTable.ext.type.detect.push(
* function ( data, settings ) {
* // Check the numeric part
* if ( ! $.isNumeric( data.substring(1) ) ) {
* if ( ! data.substring(1).match(/[0-9]/) ) {
* return null;
* }
*
@ -14731,7 +14782,8 @@
$.extend( _ext.type.order, {
// Dates
"date-pre": function ( d ) {
return Date.parse( d ) || -Infinity;
var ts = Date.parse( d );
return isNaN(ts) ? -Infinity : ts;
},
// html
@ -14922,7 +14974,8 @@
text: function () {
return {
display: __htmlEscapeEntities
display: __htmlEscapeEntities,
filter: __htmlEscapeEntities
};
}
};
@ -15047,6 +15100,7 @@
_fnRenderer: _fnRenderer,
_fnDataSource: _fnDataSource,
_fnRowAttributes: _fnRowAttributes,
_fnExtend: _fnExtend,
_fnCalculateEnd: function () {} // Used by a lot of plug-ins, but redundant
// in 1.10, so this dead-end function is
// added to prevent errors

19
samples/BookStore-Modular/application/src/Acme.BookStore.Web/wwwroot/libs/jquery-validation-unobtrusive/jquery.validate.unobtrusive.js

@ -1,6 +1,7 @@
// Unobtrusive validation support library for jQuery and jQuery Validate
// Copyright (C) Microsoft Corporation. All rights reserved.
// @version v3.2.9
// Copyright (c) .NET Foundation. All rights reserved.
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
// @version v3.2.11
/*jslint white: true, browser: true, onevar: true, undef: true, nomen: true, eqeqeq: true, plusplus: true, bitwise: true, regexp: true, newcap: true, immed: true, strict: false */
/*global document: false, jQuery: false */
@ -8,7 +9,7 @@
(function (factory) {
if (typeof define === 'function' && define.amd) {
// AMD. Register as an anonymous module.
define("jquery.validate.unobtrusive", ['jquery.validation'], factory);
define("jquery.validate.unobtrusive", ['jquery-validation'], factory);
} else if (typeof module === 'object' && module.exports) {
// CommonJS-like environments that support module.exports
module.exports = factory(require('jquery-validation'));
@ -117,7 +118,7 @@
.removeClass("field-validation-error")
.removeData("unobtrusiveContainer")
.find(">*") // If we were using valmsg-replace, get the underlying error
.removeData("unobtrusiveContainer");
.removeData("unobtrusiveContainer");
}
function validationInfo(form) {
@ -233,10 +234,10 @@
// element with data-val=true
var $selector = $(selector),
$forms = $selector.parents()
.addBack()
.filter("form")
.add($selector.find("form"))
.has("[data-val=true]");
.addBack()
.filter("form")
.add($selector.find("form"))
.has("[data-val=true]");
$selector.find("[data-val=true]").each(function () {
$jQval.unobtrusive.parseElement(this, true);
@ -428,4 +429,4 @@
});
return $jQval.unobtrusive;
}));
}));

85
samples/BookStore-Modular/application/src/Acme.BookStore.Web/wwwroot/libs/jquery-validation/jquery.validate.js

@ -1,9 +1,9 @@
/*!
* jQuery Validation Plugin v1.17.0
* jQuery Validation Plugin v1.19.1
*
* https://jqueryvalidation.org/
*
* Copyright (c) 2017 Jörn Zaefferer
* Copyright (c) 2019 Jörn Zaefferer
* Released under the MIT license
*/
(function( factory ) {
@ -67,6 +67,7 @@ $.extend( $.fn, {
// Prevent form submit to be able to see console output
event.preventDefault();
}
function handle() {
var hidden, result;
@ -82,7 +83,7 @@ $.extend( $.fn, {
.appendTo( validator.currentForm );
}
if ( validator.settings.submitHandler ) {
if ( validator.settings.submitHandler && !validator.settings.debug ) {
result = validator.settings.submitHandler.call( validator, validator.currentForm, event );
if ( hidden ) {
@ -142,6 +143,7 @@ $.extend( $.fn, {
// https://jqueryvalidation.org/rules/
rules: function( command, argument ) {
var element = this[ 0 ],
isContentEditable = typeof this.attr( "contenteditable" ) !== "undefined" && this.attr( "contenteditable" ) !== "false",
settings, staticRules, existingRules, data, param, filtered;
// If nothing is selected, return empty object; can't chain anyway
@ -149,7 +151,7 @@ $.extend( $.fn, {
return;
}
if ( !element.form && element.hasAttribute( "contenteditable" ) ) {
if ( !element.form && isContentEditable ) {
element.form = this.closest( "form" )[ 0 ];
element.name = this.attr( "name" );
}
@ -393,7 +395,8 @@ $.extend( $.validator, {
this.invalid = {};
this.reset();
var groups = ( this.groups = {} ),
var currentForm = this.currentForm,
groups = ( this.groups = {} ),
rules;
$.each( this.settings.groups, function( key, value ) {
if ( typeof value === "string" ) {
@ -409,13 +412,20 @@ $.extend( $.validator, {
} );
function delegate( event ) {
var isContentEditable = typeof $( this ).attr( "contenteditable" ) !== "undefined" && $( this ).attr( "contenteditable" ) !== "false";
// Set form expando on contenteditable
if ( !this.form && this.hasAttribute( "contenteditable" ) ) {
if ( !this.form && isContentEditable ) {
this.form = $( this ).closest( "form" )[ 0 ];
this.name = $( this ).attr( "name" );
}
// Ignore the element if it belongs to another form. This will happen mainly
// when setting the `form` attribute of an input to the id of another form.
if ( currentForm !== this.form ) {
return;
}
var validator = $.data( this.form, "validator" ),
eventType = "on" + event.type.replace( /^validate/, "" ),
settings = validator.settings;
@ -610,7 +620,7 @@ $.extend( $.validator, {
try {
$( this.findLastActive() || this.errorList.length && this.errorList[ 0 ].element || [] )
.filter( ":visible" )
.focus()
.trigger( "focus" )
// Manually trigger focusin event; without it, focusin handler isn't called, findLastActive won't have anything to find
.trigger( "focusin" );
@ -639,16 +649,23 @@ $.extend( $.validator, {
.not( this.settings.ignore )
.filter( function() {
var name = this.name || $( this ).attr( "name" ); // For contenteditable
var isContentEditable = typeof $( this ).attr( "contenteditable" ) !== "undefined" && $( this ).attr( "contenteditable" ) !== "false";
if ( !name && validator.settings.debug && window.console ) {
console.error( "%o has no name assigned", this );
}
// Set form expando on contenteditable
if ( this.hasAttribute( "contenteditable" ) ) {
if ( isContentEditable ) {
this.form = $( this ).closest( "form" )[ 0 ];
this.name = name;
}
// Ignore elements that belong to other/nested forms
if ( this.form !== validator.currentForm ) {
return false;
}
// Select only the first element for each name, and only those with rules specified
if ( name in rulesCache || !validator.objectLength( $( this ).rules() ) ) {
return false;
@ -694,6 +711,7 @@ $.extend( $.validator, {
elementValue: function( element ) {
var $element = $( element ),
type = element.type,
isContentEditable = typeof $element.attr( "contenteditable" ) !== "undefined" && $element.attr( "contenteditable" ) !== "false",
val, idx;
if ( type === "radio" || type === "checkbox" ) {
@ -702,7 +720,7 @@ $.extend( $.validator, {
return element.validity.badInput ? "NaN" : $element.val();
}
if ( element.hasAttribute( "contenteditable" ) ) {
if ( isContentEditable ) {
val = $element.text();
} else {
val = $element.val();
@ -763,10 +781,6 @@ $.extend( $.validator, {
if ( normalizer ) {
val = normalizer.call( element, val );
if ( typeof val !== "string" ) {
throw new TypeError( "The normalizer should return a string value." );
}
// Delete the normalizer from rules to avoid treating it as a pre-defined method.
delete rules.normalizer;
}
@ -1142,7 +1156,19 @@ $.extend( $.validator, {
.removeData( "validator" )
.find( ".validate-equalTo-blur" )
.off( ".validate-equalTo" )
.removeClass( "validate-equalTo-blur" );
.removeClass( "validate-equalTo-blur" )
.find( ".validate-lessThan-blur" )
.off( ".validate-lessThan" )
.removeClass( "validate-lessThan-blur" )
.find( ".validate-lessThanEqual-blur" )
.off( ".validate-lessThanEqual" )
.removeClass( "validate-lessThanEqual-blur" )
.find( ".validate-greaterThanEqual-blur" )
.off( ".validate-greaterThanEqual" )
.removeClass( "validate-greaterThanEqual-blur" )
.find( ".validate-greaterThan-blur" )
.off( ".validate-greaterThan" )
.removeClass( "validate-greaterThan-blur" );
}
},
@ -1246,6 +1272,12 @@ $.extend( $.validator, {
for ( method in $.validator.methods ) {
value = $element.data( "rule" + method.charAt( 0 ).toUpperCase() + method.substring( 1 ).toLowerCase() );
// Cast empty attributes like `data-rule-required` to `true`
if ( value === "" ) {
value = true;
}
this.normalizeAttributeRule( rules, type, method, value );
}
return rules;
@ -1371,7 +1403,7 @@ $.extend( $.validator, {
if ( this.checkable( element ) ) {
return this.getLength( value, element ) > 0;
}
return value.length > 0;
return value !== undefined && value !== null && value.length > 0;
},
// https://jqueryvalidation.org/email-method/
@ -1395,9 +1427,26 @@ $.extend( $.validator, {
},
// https://jqueryvalidation.org/date-method/
date: function( value, element ) {
return this.optional( element ) || !/Invalid|NaN/.test( new Date( value ).toString() );
},
date: ( function() {
var called = false;
return function( value, element ) {
if ( !called ) {
called = true;
if ( this.settings.debug && window.console ) {
console.warn(
"The `date` method is deprecated and will be removed in version '2.0.0'.\n" +
"Please don't use it, since it relies on the Date constructor, which\n" +
"behaves very differently across browsers and locales. Use `dateISO`\n" +
"instead or one of the locale specific methods in `localizations/`\n" +
"and `additional-methods.js`."
);
}
}
return this.optional( element ) || !/Invalid|NaN/.test( new Date( value ).toString() );
};
}() ),
// https://jqueryvalidation.org/dateISO-method/
dateISO: function( value, element ) {

4
samples/BookStore-Modular/application/src/Acme.BookStore.Web/wwwroot/libs/jquery-validation/localization/messages_ar.min.js

@ -0,0 +1,4 @@
/*! jQuery Validation Plugin - v1.19.1 - 6/15/2019
* https://jqueryvalidation.org/
* Copyright (c) 2019 Jörn Zaefferer; Licensed MIT */
!function(a){"function"==typeof define&&define.amd?define(["jquery","../jquery.validate.min"],a):"object"==typeof module&&module.exports?module.exports=a(require("jquery")):a(jQuery)}(function(a){return a.extend(a.validator.messages,{required:"هذا الحقل إلزامي",remote:"يرجى تصحيح هذا الحقل للمتابعة",email:"رجاء إدخال عنوان بريد إلكتروني صحيح",url:"رجاء إدخال عنوان موقع إلكتروني صحيح",date:"رجاء إدخال تاريخ صحيح",dateISO:"رجاء إدخال تاريخ صحيح (ISO)",number:"رجاء إدخال عدد بطريقة صحيحة",digits:"رجاء إدخال أرقام فقط",creditcard:"رجاء إدخال رقم بطاقة ائتمان صحيح",equalTo:"رجاء إدخال نفس القيمة",extension:"رجاء إدخال ملف بامتداد موافق عليه",maxlength:a.validator.format("الحد الأقصى لعدد الحروف هو {0}"),minlength:a.validator.format("الحد الأدنى لعدد الحروف هو {0}"),rangelength:a.validator.format("عدد الحروف يجب أن يكون بين {0} و {1}"),range:a.validator.format("رجاء إدخال عدد قيمته بين {0} و {1}"),max:a.validator.format("رجاء إدخال عدد أقل من أو يساوي {0}"),min:a.validator.format("رجاء إدخال عدد أكبر من أو يساوي {0}")}),a});

4
samples/BookStore-Modular/application/src/Acme.BookStore.Web/wwwroot/libs/jquery-validation/localization/messages_az.min.js

@ -0,0 +1,4 @@
/*! jQuery Validation Plugin - v1.19.1 - 6/15/2019
* https://jqueryvalidation.org/
* Copyright (c) 2019 Jörn Zaefferer; Licensed MIT */
!function(a){"function"==typeof define&&define.amd?define(["jquery","../jquery.validate.min"],a):"object"==typeof module&&module.exports?module.exports=a(require("jquery")):a(jQuery)}(function(a){return a.extend(a.validator.messages,{required:"Bu xana mütləq doldurulmalıdır.",remote:"Zəhmət olmasa, düzgün məna daxil edin.",email:"Zəhmət olmasa, düzgün elektron poçt daxil edin.",url:"Zəhmət olmasa, düzgün URL daxil edin.",date:"Zəhmət olmasa, düzgün tarix daxil edin.",dateISO:"Zəhmət olmasa, düzgün ISO formatlı tarix daxil edin.",number:"Zəhmət olmasa, düzgün rəqəm daxil edin.",digits:"Zəhmət olmasa, yalnız rəqəm daxil edin.",creditcard:"Zəhmət olmasa, düzgün kredit kart nömrəsini daxil edin.",equalTo:"Zəhmət olmasa, eyni mənanı bir daha daxil edin.",extension:"Zəhmət olmasa, düzgün genişlənməyə malik faylı seçin.",maxlength:a.validator.format("Zəhmət olmasa, {0} simvoldan çox olmayaraq daxil edin."),minlength:a.validator.format("Zəhmət olmasa, {0} simvoldan az olmayaraq daxil edin."),rangelength:a.validator.format("Zəhmət olmasa, {0} - {1} aralığında uzunluğa malik simvol daxil edin."),range:a.validator.format("Zəhmət olmasa, {0} - {1} aralığında rəqəm daxil edin."),max:a.validator.format("Zəhmət olmasa, {0} və ondan kiçik rəqəm daxil edin."),min:a.validator.format("Zəhmət olmasa, {0} və ondan böyük rəqəm daxil edin")}),a});

2
samples/BookStore-Modular/application/src/Acme.BookStore.Web/wwwroot/libs/jquery-validation/localization/messages_bg.js

@ -24,7 +24,7 @@ $.extend( $.validator.messages, {
creditcard: "Моля, въведете валиден номер на кредитна карта.",
equalTo: "Моля, въведете същата стойност отново.",
extension: "Моля, въведете стойност с валидно разширение.",
maxlength: $.validator.format( "Моля, въведете повече от {0} символа." ),
maxlength: $.validator.format( "Моля, въведете не повече от {0} символа." ),
minlength: $.validator.format( "Моля, въведете поне {0} символа." ),
rangelength: $.validator.format( "Моля, въведете стойност с дължина между {0} и {1} символа." ),
range: $.validator.format( "Моля, въведете стойност между {0} и {1}." ),

4
samples/BookStore-Modular/application/src/Acme.BookStore.Web/wwwroot/libs/jquery-validation/localization/messages_bg.min.js

@ -0,0 +1,4 @@
/*! jQuery Validation Plugin - v1.19.1 - 6/15/2019
* https://jqueryvalidation.org/
* Copyright (c) 2019 Jörn Zaefferer; Licensed MIT */
!function(a){"function"==typeof define&&define.amd?define(["jquery","../jquery.validate.min"],a):"object"==typeof module&&module.exports?module.exports=a(require("jquery")):a(jQuery)}(function(a){return a.extend(a.validator.messages,{required:"Полето е задължително.",remote:"Моля, въведете правилната стойност.",email:"Моля, въведете валиден email.",url:"Моля, въведете валидно URL.",date:"Моля, въведете валидна дата.",dateISO:"Моля, въведете валидна дата (ISO).",number:"Моля, въведете валиден номер.",digits:"Моля, въведете само цифри.",creditcard:"Моля, въведете валиден номер на кредитна карта.",equalTo:"Моля, въведете същата стойност отново.",extension:"Моля, въведете стойност с валидно разширение.",maxlength:a.validator.format("Моля, въведете не повече от {0} символа."),minlength:a.validator.format("Моля, въведете поне {0} символа."),rangelength:a.validator.format("Моля, въведете стойност с дължина между {0} и {1} символа."),range:a.validator.format("Моля, въведете стойност между {0} и {1}."),max:a.validator.format("Моля, въведете стойност по-малка или равна на {0}."),min:a.validator.format("Моля, въведете стойност по-голяма или равна на {0}.")}),a});

4
samples/BookStore-Modular/application/src/Acme.BookStore.Web/wwwroot/libs/jquery-validation/localization/messages_bn_BD.min.js

@ -0,0 +1,4 @@
/*! jQuery Validation Plugin - v1.19.1 - 6/15/2019
* https://jqueryvalidation.org/
* Copyright (c) 2019 Jörn Zaefferer; Licensed MIT */
!function(a){"function"==typeof define&&define.amd?define(["jquery","../jquery.validate.min"],a):"object"==typeof module&&module.exports?module.exports=a(require("jquery")):a(jQuery)}(function(a){return a.extend(a.validator.messages,{required:"এই তথ্যটি আবশ্যক।",remote:"এই তথ্যটি ঠিক করুন।",email:"অনুগ্রহ করে একটি সঠিক মেইল ঠিকানা লিখুন।",url:"অনুগ্রহ করে একটি সঠিক লিঙ্ক দিন।",date:"তারিখ সঠিক নয়।",dateISO:"অনুগ্রহ করে একটি সঠিক (ISO) তারিখ লিখুন।",number:"অনুগ্রহ করে একটি সঠিক নম্বর লিখুন।",digits:"এখানে শুধু সংখ্যা ব্যবহার করা যাবে।",creditcard:"অনুগ্রহ করে একটি ক্রেডিট কার্ডের সঠিক নম্বর লিখুন।",equalTo:"একই মান আবার লিখুন।",extension:"সঠিক ধরনের ফাইল আপলোড করুন।",maxlength:a.validator.format("{0}টির বেশি অক্ষর লেখা যাবে না।"),minlength:a.validator.format("{0}টির কম অক্ষর লেখা যাবে না।"),rangelength:a.validator.format("{0} থেকে {1} টি অক্ষর সম্বলিত মান লিখুন।"),range:a.validator.format("{0} থেকে {1} এর মধ্যে একটি মান ব্যবহার করুন।"),max:a.validator.format("অনুগ্রহ করে {0} বা তার চাইতে কম মান ব্যবহার করুন।"),min:a.validator.format("অনুগ্রহ করে {0} বা তার চাইতে বেশি মান ব্যবহার করুন।")}),a});

4
samples/BookStore-Modular/application/src/Acme.BookStore.Web/wwwroot/libs/jquery-validation/localization/messages_ca.min.js

@ -0,0 +1,4 @@
/*! jQuery Validation Plugin - v1.19.1 - 6/15/2019
* https://jqueryvalidation.org/
* Copyright (c) 2019 Jörn Zaefferer; Licensed MIT */
!function(a){"function"==typeof define&&define.amd?define(["jquery","../jquery.validate.min"],a):"object"==typeof module&&module.exports?module.exports=a(require("jquery")):a(jQuery)}(function(a){return a.extend(a.validator.messages,{required:"Aquest camp és obligatori.",remote:"Si us plau, omple aquest camp.",email:"Si us plau, escriu una adreça de correu-e vàlida",url:"Si us plau, escriu una URL vàlida.",date:"Si us plau, escriu una data vàlida.",dateISO:"Si us plau, escriu una data (ISO) vàlida.",number:"Si us plau, escriu un número enter vàlid.",digits:"Si us plau, escriu només dígits.",creditcard:"Si us plau, escriu un número de tarjeta vàlid.",equalTo:"Si us plau, escriu el mateix valor de nou.",extension:"Si us plau, escriu un valor amb una extensió acceptada.",maxlength:a.validator.format("Si us plau, no escriguis més de {0} caracters."),minlength:a.validator.format("Si us plau, no escriguis menys de {0} caracters."),rangelength:a.validator.format("Si us plau, escriu un valor entre {0} i {1} caracters."),range:a.validator.format("Si us plau, escriu un valor entre {0} i {1}."),max:a.validator.format("Si us plau, escriu un valor menor o igual a {0}."),min:a.validator.format("Si us plau, escriu un valor major o igual a {0}.")}),a});

3
samples/BookStore-Modular/application/src/Acme.BookStore.Web/wwwroot/libs/jquery-validation/localization/messages_cs.js

@ -29,7 +29,8 @@ $.extend( $.validator.messages, {
rangelength: $.validator.format( "Prosím, zadejte od {0} do {1} znaků." ),
range: $.validator.format( "Prosím, zadejte hodnotu od {0} do {1}." ),
max: $.validator.format( "Prosím, zadejte hodnotu menší nebo rovnu {0}." ),
min: $.validator.format( "Prosím, zadejte hodnotu větší nebo rovnu {0}." )
min: $.validator.format( "Prosím, zadejte hodnotu větší nebo rovnu {0}." ),
step: $.validator.format( "Musí být násobkem čísla {0}." )
} );
return $;
}));

4
samples/BookStore-Modular/application/src/Acme.BookStore.Web/wwwroot/libs/jquery-validation/localization/messages_cs.min.js

@ -0,0 +1,4 @@
/*! jQuery Validation Plugin - v1.19.1 - 6/15/2019
* https://jqueryvalidation.org/
* Copyright (c) 2019 Jörn Zaefferer; Licensed MIT */
!function(a){"function"==typeof define&&define.amd?define(["jquery","../jquery.validate.min"],a):"object"==typeof module&&module.exports?module.exports=a(require("jquery")):a(jQuery)}(function(a){return a.extend(a.validator.messages,{required:"Tento údaj je povinný.",remote:"Prosím, opravte tento údaj.",email:"Prosím, zadejte platný e-mail.",url:"Prosím, zadejte platné URL.",date:"Prosím, zadejte platné datum.",dateISO:"Prosím, zadejte platné datum (ISO).",number:"Prosím, zadejte číslo.",digits:"Prosím, zadávejte pouze číslice.",creditcard:"Prosím, zadejte číslo kreditní karty.",equalTo:"Prosím, zadejte znovu stejnou hodnotu.",extension:"Prosím, zadejte soubor se správnou příponou.",maxlength:a.validator.format("Prosím, zadejte nejvíce {0} znaků."),minlength:a.validator.format("Prosím, zadejte nejméně {0} znaků."),rangelength:a.validator.format("Prosím, zadejte od {0} do {1} znaků."),range:a.validator.format("Prosím, zadejte hodnotu od {0} do {1}."),max:a.validator.format("Prosím, zadejte hodnotu menší nebo rovnu {0}."),min:a.validator.format("Prosím, zadejte hodnotu větší nebo rovnu {0}."),step:a.validator.format("Musí být násobkem čísla {0}.")}),a});

22
samples/BookStore-Modular/application/src/Acme.BookStore.Web/wwwroot/libs/jquery-validation/localization/messages_da.js

@ -14,19 +14,33 @@
*/
$.extend( $.validator.messages, {
required: "Dette felt er påkrævet.",
maxlength: $.validator.format( "Indtast højst {0} tegn." ),
minlength: $.validator.format( "Indtast mindst {0} tegn." ),
rangelength: $.validator.format( "Indtast mindst {0} og højst {1} tegn." ),
remote: "Ret venligst dette felt",
email: "Indtast en gyldig email-adresse.",
url: "Indtast en gyldig URL.",
date: "Indtast en gyldig dato.",
number: "Indtast et tal.",
digits: "Indtast kun cifre.",
creditcard: "Indtast et gyldigt kreditkortnummer.",
equalTo: "Indtast den samme værdi igen.",
time: "Angiv en gyldig tid mellem kl. 00:00 og 23:59.",
ipv4: "Angiv venligst en gyldig IPv4-adresse.",
ipv6: "Angiv venligst en gyldig IPv6-adresse.",
require_from_group: $.validator.format( "Angiv mindst {0} af disse felter." ),
extension: "Indtast venligst en værdi med en gyldig endelse",
pattern: "Ugyldigt format",
lettersonly: "Angiv venligst kun bogstaver.",
nowhitespace: "Må ikke indholde mellemrum",
maxlength: $.validator.format( "Indtast højst {0} tegn." ),
minlength: $.validator.format( "Indtast mindst {0} tegn." ),
rangelength: $.validator.format( "Indtast mindst {0} og højst {1} tegn." ),
range: $.validator.format( "Angiv en værdi mellem {0} og {1}." ),
max: $.validator.format( "Angiv en værdi der højst er {0}." ),
min: $.validator.format( "Angiv en værdi der mindst er {0}." ),
creditcard: "Indtast et gyldigt kreditkortnummer."
minWords: $.validator.format( "Indtast venligst mindst {0} ord" ),
maxWords: $.validator.format( "Indtast venligst højst {0} ord" ),
step: $.validator.format( "Angiv en værdi gange {0}." ),
notEqualTo: "Angiv en anden værdi, værdierne må ikke være det samme.",
integer: "Angiv et ikke-decimaltal, der er positivt eller negativt."
} );
return $;
}));

4
samples/BookStore-Modular/application/src/Acme.BookStore.Web/wwwroot/libs/jquery-validation/localization/messages_da.min.js

@ -0,0 +1,4 @@
/*! jQuery Validation Plugin - v1.19.1 - 6/15/2019
* https://jqueryvalidation.org/
* Copyright (c) 2019 Jörn Zaefferer; Licensed MIT */
!function(a){"function"==typeof define&&define.amd?define(["jquery","../jquery.validate.min"],a):"object"==typeof module&&module.exports?module.exports=a(require("jquery")):a(jQuery)}(function(a){return a.extend(a.validator.messages,{required:"Dette felt er påkrævet.",remote:"Ret venligst dette felt",email:"Indtast en gyldig email-adresse.",url:"Indtast en gyldig URL.",date:"Indtast en gyldig dato.",number:"Indtast et tal.",digits:"Indtast kun cifre.",creditcard:"Indtast et gyldigt kreditkortnummer.",equalTo:"Indtast den samme værdi igen.",time:"Angiv en gyldig tid mellem kl. 00:00 og 23:59.",ipv4:"Angiv venligst en gyldig IPv4-adresse.",ipv6:"Angiv venligst en gyldig IPv6-adresse.",require_from_group:a.validator.format("Angiv mindst {0} af disse felter."),extension:"Indtast venligst en værdi med en gyldig endelse",pattern:"Ugyldigt format",lettersonly:"Angiv venligst kun bogstaver.",nowhitespace:"Må ikke indholde mellemrum",maxlength:a.validator.format("Indtast højst {0} tegn."),minlength:a.validator.format("Indtast mindst {0} tegn."),rangelength:a.validator.format("Indtast mindst {0} og højst {1} tegn."),range:a.validator.format("Angiv en værdi mellem {0} og {1}."),max:a.validator.format("Angiv en værdi der højst er {0}."),min:a.validator.format("Angiv en værdi der mindst er {0}."),minWords:a.validator.format("Indtast venligst mindst {0} ord"),maxWords:a.validator.format("Indtast venligst højst {0} ord"),step:a.validator.format("Angiv en værdi gange {0}."),notEqualTo:"Angiv en anden værdi, værdierne må ikke være det samme.",integer:"Angiv et ikke-decimaltal, der er positivt eller negativt."}),a});

58
samples/BookStore-Modular/application/src/Acme.BookStore.Web/wwwroot/libs/jquery-validation/localization/messages_de.js

@ -17,16 +17,66 @@ $.extend( $.validator.messages, {
maxlength: $.validator.format( "Geben Sie bitte maximal {0} Zeichen ein." ),
minlength: $.validator.format( "Geben Sie bitte mindestens {0} Zeichen ein." ),
rangelength: $.validator.format( "Geben Sie bitte mindestens {0} und maximal {1} Zeichen ein." ),
email: "Geben Sie bitte eine gültige E-Mail Adresse ein.",
email: "Geben Sie bitte eine gültige E-Mail-Adresse ein.",
url: "Geben Sie bitte eine gültige URL ein.",
date: "Bitte geben Sie ein gültiges Datum ein.",
date: "Geben Sie bitte ein gültiges Datum ein.",
number: "Geben Sie bitte eine Nummer ein.",
digits: "Geben Sie bitte nur Ziffern ein.",
equalTo: "Bitte denselben Wert wiederholen.",
equalTo: "Wiederholen Sie bitte denselben Wert.",
range: $.validator.format( "Geben Sie bitte einen Wert zwischen {0} und {1} ein." ),
max: $.validator.format( "Geben Sie bitte einen Wert kleiner oder gleich {0} ein." ),
min: $.validator.format( "Geben Sie bitte einen Wert größer oder gleich {0} ein." ),
creditcard: "Geben Sie bitte eine gültige Kreditkarten-Nummer ein."
creditcard: "Geben Sie bitte eine gültige Kreditkarten-Nummer ein.",
remote: "Korrigieren Sie bitte dieses Feld.",
dateISO: "Geben Sie bitte ein gültiges Datum ein (ISO-Format).",
step: $.validator.format( "Geben Sie bitte ein Vielfaches von {0} ein." ),
maxWords: $.validator.format( "Geben Sie bitte {0} Wörter oder weniger ein." ),
minWords: $.validator.format( "Geben Sie bitte mindestens {0} Wörter ein." ),
rangeWords: $.validator.format( "Geben Sie bitte zwischen {0} und {1} Wörtern ein." ),
accept: "Geben Sie bitte einen Wert mit einem gültigen MIME-Typ ein.",
alphanumeric: "Geben Sie bitte nur Buchstaben (keine Umlaute), Zahlen oder Unterstriche ein.",
bankaccountNL: "Geben Sie bitte eine gültige Kontonummer ein.",
bankorgiroaccountNL: "Geben Sie bitte eine gültige Bank- oder Girokontonummer ein.",
bic: "Geben Sie bitte einen gültigen BIC-Code ein.",
cifES: "Geben Sie bitte eine gültige CIF-Nummer ein.",
cpfBR: "Geben Sie bitte eine gültige CPF-Nummer ein.",
creditcardtypes: "Geben Sie bitte eine gültige Kreditkarten-Nummer ein.",
currency: "Geben Sie bitte eine gültige Währung ein.",
extension: "Geben Sie bitte einen Wert mit einer gültigen Erweiterung ein.",
giroaccountNL: "Geben Sie bitte eine gültige Girokontonummer ein.",
iban: "Geben Sie bitte eine gültige IBAN ein.",
integer: "Geben Sie bitte eine positive oder negative Nicht-Dezimalzahl ein.",
ipv4: "Geben Sie bitte eine gültige IPv4-Adresse ein.",
ipv6: "Geben Sie bitte eine gültige IPv6-Adresse ein.",
lettersonly: "Geben Sie bitte nur Buchstaben ein.",
letterswithbasicpunc: "Geben Sie bitte nur Buchstaben oder Interpunktion ein.",
mobileNL: "Geben Sie bitte eine gültige Handynummer ein.",
mobileUK: "Geben Sie bitte eine gültige Handynummer ein.",
netmask: "Geben Sie bitte eine gültige Netzmaske ein.",
nieES: "Geben Sie bitte eine gültige NIE-Nummer ein.",
nifES: "Geben Sie bitte eine gültige NIF-Nummer ein.",
nipPL: "Geben Sie bitte eine gültige NIP-Nummer ein.",
notEqualTo: "Geben Sie bitte einen anderen Wert ein. Die Werte dürfen nicht gleich sein.",
nowhitespace: "Kein Leerzeichen bitte.",
pattern: "Ungültiges Format.",
phoneNL: "Geben Sie bitte eine gültige Telefonnummer ein.",
phonesUK: "Geben Sie bitte eine gültige britische Telefonnummer ein.",
phoneUK: "Geben Sie bitte eine gültige Telefonnummer ein.",
phoneUS: "Geben Sie bitte eine gültige Telefonnummer ein.",
postalcodeBR: "Geben Sie bitte eine gültige brasilianische Postleitzahl ein.",
postalCodeCA: "Geben Sie bitte eine gültige kanadische Postleitzahl ein.",
postalcodeIT: "Geben Sie bitte eine gültige italienische Postleitzahl ein.",
postalcodeNL: "Geben Sie bitte eine gültige niederländische Postleitzahl ein.",
postcodeUK: "Geben Sie bitte eine gültige britische Postleitzahl ein.",
require_from_group: $.validator.format( "Füllen Sie bitte mindestens {0} dieser Felder aus." ),
skip_or_fill_minimum: $.validator.format( "Überspringen Sie bitte diese Felder oder füllen Sie mindestens {0} von ihnen aus." ),
stateUS: "Geben Sie bitte einen gültigen US-Bundesstaat ein.",
strippedminlength: $.validator.format( "Geben Sie bitte mindestens {0} Zeichen ein." ),
time: "Geben Sie bitte eine gültige Uhrzeit zwischen 00:00 und 23:59 ein.",
time12h: "Geben Sie bitte eine gültige Uhrzeit im 12-Stunden-Format ein.",
vinUS: "Die angegebene Fahrzeugidentifikationsnummer (VIN) ist ungültig.",
zipcodeUS: "Die angegebene US-Postleitzahl ist ungültig.",
ziprange: "Ihre Postleitzahl muss im Bereich 902xx-xxxx bis 905xx-xxxx liegen."
} );
return $;
}));

4
samples/BookStore-Modular/application/src/Acme.BookStore.Web/wwwroot/libs/jquery-validation/localization/messages_de.min.js

@ -0,0 +1,4 @@
/*! jQuery Validation Plugin - v1.19.1 - 6/15/2019
* https://jqueryvalidation.org/
* Copyright (c) 2019 Jörn Zaefferer; Licensed MIT */
!function(a){"function"==typeof define&&define.amd?define(["jquery","../jquery.validate.min"],a):"object"==typeof module&&module.exports?module.exports=a(require("jquery")):a(jQuery)}(function(a){return a.extend(a.validator.messages,{required:"Dieses Feld ist ein Pflichtfeld.",maxlength:a.validator.format("Geben Sie bitte maximal {0} Zeichen ein."),minlength:a.validator.format("Geben Sie bitte mindestens {0} Zeichen ein."),rangelength:a.validator.format("Geben Sie bitte mindestens {0} und maximal {1} Zeichen ein."),email:"Geben Sie bitte eine gültige E-Mail-Adresse ein.",url:"Geben Sie bitte eine gültige URL ein.",date:"Geben Sie bitte ein gültiges Datum ein.",number:"Geben Sie bitte eine Nummer ein.",digits:"Geben Sie bitte nur Ziffern ein.",equalTo:"Wiederholen Sie bitte denselben Wert.",range:a.validator.format("Geben Sie bitte einen Wert zwischen {0} und {1} ein."),max:a.validator.format("Geben Sie bitte einen Wert kleiner oder gleich {0} ein."),min:a.validator.format("Geben Sie bitte einen Wert größer oder gleich {0} ein."),creditcard:"Geben Sie bitte eine gültige Kreditkarten-Nummer ein.",remote:"Korrigieren Sie bitte dieses Feld.",dateISO:"Geben Sie bitte ein gültiges Datum ein (ISO-Format).",step:a.validator.format("Geben Sie bitte ein Vielfaches von {0} ein."),maxWords:a.validator.format("Geben Sie bitte {0} Wörter oder weniger ein."),minWords:a.validator.format("Geben Sie bitte mindestens {0} Wörter ein."),rangeWords:a.validator.format("Geben Sie bitte zwischen {0} und {1} Wörtern ein."),accept:"Geben Sie bitte einen Wert mit einem gültigen MIME-Typ ein.",alphanumeric:"Geben Sie bitte nur Buchstaben (keine Umlaute), Zahlen oder Unterstriche ein.",bankaccountNL:"Geben Sie bitte eine gültige Kontonummer ein.",bankorgiroaccountNL:"Geben Sie bitte eine gültige Bank- oder Girokontonummer ein.",bic:"Geben Sie bitte einen gültigen BIC-Code ein.",cifES:"Geben Sie bitte eine gültige CIF-Nummer ein.",cpfBR:"Geben Sie bitte eine gültige CPF-Nummer ein.",creditcardtypes:"Geben Sie bitte eine gültige Kreditkarten-Nummer ein.",currency:"Geben Sie bitte eine gültige Währung ein.",extension:"Geben Sie bitte einen Wert mit einer gültigen Erweiterung ein.",giroaccountNL:"Geben Sie bitte eine gültige Girokontonummer ein.",iban:"Geben Sie bitte eine gültige IBAN ein.",integer:"Geben Sie bitte eine positive oder negative Nicht-Dezimalzahl ein.",ipv4:"Geben Sie bitte eine gültige IPv4-Adresse ein.",ipv6:"Geben Sie bitte eine gültige IPv6-Adresse ein.",lettersonly:"Geben Sie bitte nur Buchstaben ein.",letterswithbasicpunc:"Geben Sie bitte nur Buchstaben oder Interpunktion ein.",mobileNL:"Geben Sie bitte eine gültige Handynummer ein.",mobileUK:"Geben Sie bitte eine gültige Handynummer ein.",netmask:"Geben Sie bitte eine gültige Netzmaske ein.",nieES:"Geben Sie bitte eine gültige NIE-Nummer ein.",nifES:"Geben Sie bitte eine gültige NIF-Nummer ein.",nipPL:"Geben Sie bitte eine gültige NIP-Nummer ein.",notEqualTo:"Geben Sie bitte einen anderen Wert ein. Die Werte dürfen nicht gleich sein.",nowhitespace:"Kein Leerzeichen bitte.",pattern:"Ungültiges Format.",phoneNL:"Geben Sie bitte eine gültige Telefonnummer ein.",phonesUK:"Geben Sie bitte eine gültige britische Telefonnummer ein.",phoneUK:"Geben Sie bitte eine gültige Telefonnummer ein.",phoneUS:"Geben Sie bitte eine gültige Telefonnummer ein.",postalcodeBR:"Geben Sie bitte eine gültige brasilianische Postleitzahl ein.",postalCodeCA:"Geben Sie bitte eine gültige kanadische Postleitzahl ein.",postalcodeIT:"Geben Sie bitte eine gültige italienische Postleitzahl ein.",postalcodeNL:"Geben Sie bitte eine gültige niederländische Postleitzahl ein.",postcodeUK:"Geben Sie bitte eine gültige britische Postleitzahl ein.",require_from_group:a.validator.format("Füllen Sie bitte mindestens {0} dieser Felder aus."),skip_or_fill_minimum:a.validator.format("Überspringen Sie bitte diese Felder oder füllen Sie mindestens {0} von ihnen aus."),stateUS:"Geben Sie bitte einen gültigen US-Bundesstaat ein.",strippedminlength:a.validator.format("Geben Sie bitte mindestens {0} Zeichen ein."),time:"Geben Sie bitte eine gültige Uhrzeit zwischen 00:00 und 23:59 ein.",time12h:"Geben Sie bitte eine gültige Uhrzeit im 12-Stunden-Format ein.",vinUS:"Die angegebene Fahrzeugidentifikationsnummer (VIN) ist ungültig.",zipcodeUS:"Die angegebene US-Postleitzahl ist ungültig.",ziprange:"Ihre Postleitzahl muss im Bereich 902xx-xxxx bis 905xx-xxxx liegen."}),a});

4
samples/BookStore-Modular/application/src/Acme.BookStore.Web/wwwroot/libs/jquery-validation/localization/messages_el.min.js

@ -0,0 +1,4 @@
/*! jQuery Validation Plugin - v1.19.1 - 6/15/2019
* https://jqueryvalidation.org/
* Copyright (c) 2019 Jörn Zaefferer; Licensed MIT */
!function(a){"function"==typeof define&&define.amd?define(["jquery","../jquery.validate.min"],a):"object"==typeof module&&module.exports?module.exports=a(require("jquery")):a(jQuery)}(function(a){return a.extend(a.validator.messages,{required:"Αυτό το πεδίο είναι υποχρεωτικό.",remote:"Παρακαλώ διορθώστε αυτό το πεδίο.",email:"Παρακαλώ εισάγετε μια έγκυρη διεύθυνση email.",url:"Παρακαλώ εισάγετε ένα έγκυρο URL.",date:"Παρακαλώ εισάγετε μια έγκυρη ημερομηνία.",dateISO:"Παρακαλώ εισάγετε μια έγκυρη ημερομηνία (ISO).",number:"Παρακαλώ εισάγετε έναν έγκυρο αριθμό.",digits:"Παρακαλώ εισάγετε μόνο αριθμητικά ψηφία.",creditcard:"Παρακαλώ εισάγετε έναν έγκυρο αριθμό πιστωτικής κάρτας.",equalTo:"Παρακαλώ εισάγετε την ίδια τιμή ξανά.",extension:"Παρακαλώ εισάγετε μια τιμή με έγκυρη επέκταση αρχείου.",maxlength:a.validator.format("Παρακαλώ εισάγετε μέχρι και {0} χαρακτήρες."),minlength:a.validator.format("Παρακαλώ εισάγετε τουλάχιστον {0} χαρακτήρες."),rangelength:a.validator.format("Παρακαλώ εισάγετε μια τιμή με μήκος μεταξύ {0} και {1} χαρακτήρων."),range:a.validator.format("Παρακαλώ εισάγετε μια τιμή μεταξύ {0} και {1}."),max:a.validator.format("Παρακαλώ εισάγετε μια τιμή μικρότερη ή ίση του {0}."),min:a.validator.format("Παρακαλώ εισάγετε μια τιμή μεγαλύτερη ή ίση του {0}.")}),a});

4
samples/BookStore-Modular/application/src/Acme.BookStore.Web/wwwroot/libs/jquery-validation/localization/messages_es.min.js

@ -0,0 +1,4 @@
/*! jQuery Validation Plugin - v1.19.1 - 6/15/2019
* https://jqueryvalidation.org/
* Copyright (c) 2019 Jörn Zaefferer; Licensed MIT */
!function(a){"function"==typeof define&&define.amd?define(["jquery","../jquery.validate.min"],a):"object"==typeof module&&module.exports?module.exports=a(require("jquery")):a(jQuery)}(function(a){return a.extend(a.validator.messages,{required:"Este campo es obligatorio.",remote:"Por favor, rellena este campo.",email:"Por favor, escribe una dirección de correo válida.",url:"Por favor, escribe una URL válida.",date:"Por favor, escribe una fecha válida.",dateISO:"Por favor, escribe una fecha (ISO) válida.",number:"Por favor, escribe un número válido.",digits:"Por favor, escribe sólo dígitos.",creditcard:"Por favor, escribe un número de tarjeta válido.",equalTo:"Por favor, escribe el mismo valor de nuevo.",extension:"Por favor, escribe un valor con una extensión aceptada.",maxlength:a.validator.format("Por favor, no escribas más de {0} caracteres."),minlength:a.validator.format("Por favor, no escribas menos de {0} caracteres."),rangelength:a.validator.format("Por favor, escribe un valor entre {0} y {1} caracteres."),range:a.validator.format("Por favor, escribe un valor entre {0} y {1}."),max:a.validator.format("Por favor, escribe un valor menor o igual a {0}."),min:a.validator.format("Por favor, escribe un valor mayor o igual a {0}."),nifES:"Por favor, escribe un NIF válido.",nieES:"Por favor, escribe un NIE válido.",cifES:"Por favor, escribe un CIF válido."}),a});

4
samples/BookStore-Modular/application/src/Acme.BookStore.Web/wwwroot/libs/jquery-validation/localization/messages_es_AR.min.js

@ -0,0 +1,4 @@
/*! jQuery Validation Plugin - v1.19.1 - 6/15/2019
* https://jqueryvalidation.org/
* Copyright (c) 2019 Jörn Zaefferer; Licensed MIT */
!function(a){"function"==typeof define&&define.amd?define(["jquery","../jquery.validate.min"],a):"object"==typeof module&&module.exports?module.exports=a(require("jquery")):a(jQuery)}(function(a){return a.extend(a.validator.messages,{required:"Este campo es obligatorio.",remote:"Por favor, completá este campo.",email:"Por favor, escribí una dirección de correo válida.",url:"Por favor, escribí una URL válida.",date:"Por favor, escribí una fecha válida.",dateISO:"Por favor, escribí una fecha (ISO) válida.",number:"Por favor, escribí un número entero válido.",digits:"Por favor, escribí sólo dígitos.",creditcard:"Por favor, escribí un número de tarjeta válido.",equalTo:"Por favor, escribí el mismo valor de nuevo.",extension:"Por favor, escribí un valor con una extensión aceptada.",maxlength:a.validator.format("Por favor, no escribas más de {0} caracteres."),minlength:a.validator.format("Por favor, no escribas menos de {0} caracteres."),rangelength:a.validator.format("Por favor, escribí un valor entre {0} y {1} caracteres."),range:a.validator.format("Por favor, escribí un valor entre {0} y {1}."),max:a.validator.format("Por favor, escribí un valor menor o igual a {0}."),min:a.validator.format("Por favor, escribí un valor mayor o igual a {0}."),nifES:"Por favor, escribí un NIF válido.",nieES:"Por favor, escribí un NIE válido.",cifES:"Por favor, escribí un CIF válido."}),a});

4
samples/BookStore-Modular/application/src/Acme.BookStore.Web/wwwroot/libs/jquery-validation/localization/messages_es_PE.min.js

@ -0,0 +1,4 @@
/*! jQuery Validation Plugin - v1.19.1 - 6/15/2019
* https://jqueryvalidation.org/
* Copyright (c) 2019 Jörn Zaefferer; Licensed MIT */
!function(a){"function"==typeof define&&define.amd?define(["jquery","../jquery.validate.min"],a):"object"==typeof module&&module.exports?module.exports=a(require("jquery")):a(jQuery)}(function(a){return a.extend(a.validator.messages,{required:"Este campo es obligatorio.",remote:"Por favor, llene este campo.",email:"Por favor, escriba un correo electrónico válido.",url:"Por favor, escriba una URL válida.",date:"Por favor, escriba una fecha válida.",dateISO:"Por favor, escriba una fecha (ISO) válida.",number:"Por favor, escriba un número válido.",digits:"Por favor, escriba sólo dígitos.",creditcard:"Por favor, escriba un número de tarjeta válido.",equalTo:"Por favor, escriba el mismo valor de nuevo.",extension:"Por favor, escriba un valor con una extensión permitida.",maxlength:a.validator.format("Por favor, no escriba más de {0} caracteres."),minlength:a.validator.format("Por favor, no escriba menos de {0} caracteres."),rangelength:a.validator.format("Por favor, escriba un valor entre {0} y {1} caracteres."),range:a.validator.format("Por favor, escriba un valor entre {0} y {1}."),max:a.validator.format("Por favor, escriba un valor menor o igual a {0}."),min:a.validator.format("Por favor, escriba un valor mayor o igual a {0}."),nifES:"Por favor, escriba un NIF válido.",nieES:"Por favor, escriba un NIE válido.",cifES:"Por favor, escriba un CIF válido."}),a});

4
samples/BookStore-Modular/application/src/Acme.BookStore.Web/wwwroot/libs/jquery-validation/localization/messages_et.min.js

@ -0,0 +1,4 @@
/*! jQuery Validation Plugin - v1.19.1 - 6/15/2019
* https://jqueryvalidation.org/
* Copyright (c) 2019 Jörn Zaefferer; Licensed MIT */
!function(a){"function"==typeof define&&define.amd?define(["jquery","../jquery.validate.min"],a):"object"==typeof module&&module.exports?module.exports=a(require("jquery")):a(jQuery)}(function(a){return a.extend(a.validator.messages,{required:"See väli peab olema täidetud.",maxlength:a.validator.format("Palun sisestage vähem kui {0} tähemärki."),minlength:a.validator.format("Palun sisestage vähemalt {0} tähemärki."),rangelength:a.validator.format("Palun sisestage väärtus vahemikus {0} kuni {1} tähemärki."),email:"Palun sisestage korrektne e-maili aadress.",url:"Palun sisestage korrektne URL.",date:"Palun sisestage korrektne kuupäev.",dateISO:"Palun sisestage korrektne kuupäev (YYYY-MM-DD).",number:"Palun sisestage korrektne number.",digits:"Palun sisestage ainult numbreid.",equalTo:"Palun sisestage sama väärtus uuesti.",range:a.validator.format("Palun sisestage väärtus vahemikus {0} kuni {1}."),max:a.validator.format("Palun sisestage väärtus, mis on väiksem või võrdne arvuga {0}."),min:a.validator.format("Palun sisestage väärtus, mis on suurem või võrdne arvuga {0}."),creditcard:"Palun sisestage korrektne krediitkaardi number."}),a});

4
samples/BookStore-Modular/application/src/Acme.BookStore.Web/wwwroot/libs/jquery-validation/localization/messages_eu.min.js

@ -0,0 +1,4 @@
/*! jQuery Validation Plugin - v1.19.1 - 6/15/2019
* https://jqueryvalidation.org/
* Copyright (c) 2019 Jörn Zaefferer; Licensed MIT */
!function(a){"function"==typeof define&&define.amd?define(["jquery","../jquery.validate.min"],a):"object"==typeof module&&module.exports?module.exports=a(require("jquery")):a(jQuery)}(function(a){return a.extend(a.validator.messages,{required:"Eremu hau beharrezkoa da.",remote:"Mesedez, bete eremu hau.",email:"Mesedez, idatzi baliozko posta helbide bat.",url:"Mesedez, idatzi baliozko URL bat.",date:"Mesedez, idatzi baliozko data bat.",dateISO:"Mesedez, idatzi baliozko (ISO) data bat.",number:"Mesedez, idatzi baliozko zenbaki oso bat.",digits:"Mesedez, idatzi digituak soilik.",creditcard:"Mesedez, idatzi baliozko txartel zenbaki bat.",equalTo:"Mesedez, idatzi berdina berriro ere.",extension:"Mesedez, idatzi onartutako luzapena duen balio bat.",maxlength:a.validator.format("Mesedez, ez idatzi {0} karaktere baino gehiago."),minlength:a.validator.format("Mesedez, ez idatzi {0} karaktere baino gutxiago."),rangelength:a.validator.format("Mesedez, idatzi {0} eta {1} karaktere arteko balio bat."),range:a.validator.format("Mesedez, idatzi {0} eta {1} arteko balio bat."),max:a.validator.format("Mesedez, idatzi {0} edo txikiagoa den balio bat."),min:a.validator.format("Mesedez, idatzi {0} edo handiagoa den balio bat.")}),a});

13
samples/BookStore-Modular/application/src/Acme.BookStore.Web/wwwroot/libs/jquery-validation/localization/messages_fa.js

@ -15,16 +15,17 @@
$.extend( $.validator.messages, {
required: "تکمیل این فیلد اجباری است.",
remote: "لطفا این فیلد را تصحیح کنید.",
email: ".لطفا یک ایمیل صحیح وارد کنید",
email: "لطفا یک ایمیل صحیح وارد کنید.",
url: "لطفا آدرس صحیح وارد کنید.",
date: "لطفا یک تاریخ صحیح وارد کنید",
dateFA: "لطفا یک تاریخ صحیح وارد کنید",
date: "لطفا تاریخ صحیح وارد کنید.",
dateFA: "لطفا یک تاریخ صحیح وارد کنید.",
dateISO: "لطفا تاریخ صحیح وارد کنید (ISO).",
number: "لطفا عدد صحیح وارد کنید.",
digits: "لطفا تنها رقم وارد کنید",
digits: "لطفا تنها رقم وارد کنید.",
creditcard: "لطفا کریدیت کارت صحیح وارد کنید.",
equalTo: "لطفا مقدار برابری وارد کنید",
extension: "لطفا مقداری وارد کنید که ",
equalTo: "لطفا مقدار برابری وارد کنید.",
extension: "لطفا مقداری وارد کنید که",
alphanumeric: "لطفا مقدار را عدد (انگلیسی) وارد کنید.",
maxlength: $.validator.format( "لطفا بیشتر از {0} حرف وارد نکنید." ),
minlength: $.validator.format( "لطفا کمتر از {0} حرف وارد نکنید." ),
rangelength: $.validator.format( "لطفا مقداری بین {0} تا {1} حرف وارد کنید." ),

4
samples/BookStore-Modular/application/src/Acme.BookStore.Web/wwwroot/libs/jquery-validation/localization/messages_fa.min.js

@ -0,0 +1,4 @@
/*! jQuery Validation Plugin - v1.19.1 - 6/15/2019
* https://jqueryvalidation.org/
* Copyright (c) 2019 Jörn Zaefferer; Licensed MIT */
!function(a){"function"==typeof define&&define.amd?define(["jquery","../jquery.validate.min"],a):"object"==typeof module&&module.exports?module.exports=a(require("jquery")):a(jQuery)}(function(a){return a.extend(a.validator.messages,{required:"تکمیل این فیلد اجباری است.",remote:"لطفا این فیلد را تصحیح کنید.",email:"لطفا یک ایمیل صحیح وارد کنید.",url:"لطفا آدرس صحیح وارد کنید.",date:"لطفا تاریخ صحیح وارد کنید.",dateFA:"لطفا یک تاریخ صحیح وارد کنید.",dateISO:"لطفا تاریخ صحیح وارد کنید (ISO).",number:"لطفا عدد صحیح وارد کنید.",digits:"لطفا تنها رقم وارد کنید.",creditcard:"لطفا کریدیت کارت صحیح وارد کنید.",equalTo:"لطفا مقدار برابری وارد کنید.",extension:"لطفا مقداری وارد کنید که",alphanumeric:"لطفا مقدار را عدد (انگلیسی) وارد کنید.",maxlength:a.validator.format("لطفا بیشتر از {0} حرف وارد نکنید."),minlength:a.validator.format("لطفا کمتر از {0} حرف وارد نکنید."),rangelength:a.validator.format("لطفا مقداری بین {0} تا {1} حرف وارد کنید."),range:a.validator.format("لطفا مقداری بین {0} تا {1} حرف وارد کنید."),max:a.validator.format("لطفا مقداری کمتر از {0} وارد کنید."),min:a.validator.format("لطفا مقداری بیشتر از {0} وارد کنید."),minWords:a.validator.format("لطفا حداقل {0} کلمه وارد کنید."),maxWords:a.validator.format("لطفا حداکثر {0} کلمه وارد کنید.")}),a});

4
samples/BookStore-Modular/application/src/Acme.BookStore.Web/wwwroot/libs/jquery-validation/localization/messages_fi.min.js

@ -0,0 +1,4 @@
/*! jQuery Validation Plugin - v1.19.1 - 6/15/2019
* https://jqueryvalidation.org/
* Copyright (c) 2019 Jörn Zaefferer; Licensed MIT */
!function(a){"function"==typeof define&&define.amd?define(["jquery","../jquery.validate.min"],a):"object"==typeof module&&module.exports?module.exports=a(require("jquery")):a(jQuery)}(function(a){return a.extend(a.validator.messages,{required:"T&auml;m&auml; kentt&auml; on pakollinen.",email:"Sy&ouml;t&auml; oikea s&auml;hk&ouml;postiosoite.",url:"Sy&ouml;t&auml; oikea URL-osoite.",date:"Sy&ouml;t&auml; oikea p&auml;iv&auml;m&auml;&auml;r&auml;.",dateISO:"Sy&ouml;t&auml; oikea p&auml;iv&auml;m&auml;&auml;r&auml; muodossa VVVV-KK-PP.",number:"Sy&ouml;t&auml; luku.",creditcard:"Sy&ouml;t&auml; voimassa oleva luottokorttinumero.",digits:"Sy&ouml;t&auml; pelk&auml;st&auml;&auml;n numeroita.",equalTo:"Sy&ouml;t&auml; sama arvo uudestaan.",maxlength:a.validator.format("Voit sy&ouml;tt&auml;&auml; enint&auml;&auml;n {0} merkki&auml;."),minlength:a.validator.format("V&auml;hint&auml;&auml;n {0} merkki&auml;."),rangelength:a.validator.format("Sy&ouml;t&auml; v&auml;hint&auml;&auml;n {0} ja enint&auml;&auml;n {1} merkki&auml;."),range:a.validator.format("Sy&ouml;t&auml; arvo v&auml;lilt&auml; {0}&ndash;{1}."),max:a.validator.format("Sy&ouml;t&auml; arvo, joka on enint&auml;&auml;n {0}."),min:a.validator.format("Sy&ouml;t&auml; arvo, joka on v&auml;hint&auml;&auml;n {0}.")}),a});

2
samples/BookStore-Modular/application/src/Acme.BookStore.Web/wwwroot/libs/jquery-validation/localization/messages_fr.js

@ -53,7 +53,7 @@ $.extend( $.validator.messages, {
creditcardtypes: "Veuillez fournir un numéro de carte de crédit valide.",
ipv4: "Veuillez fournir une adresse IP v4 valide.",
ipv6: "Veuillez fournir une adresse IP v6 valide.",
require_from_group: "Veuillez fournir au moins {0} de ces champs.",
require_from_group: $.validator.format( "Veuillez fournir au moins {0} de ces champs." ),
nifES: "Veuillez fournir un numéro NIF valide.",
nieES: "Veuillez fournir un numéro NIE valide.",
cifES: "Veuillez fournir un numéro CIF valide.",

4
samples/BookStore-Modular/application/src/Acme.BookStore.Web/wwwroot/libs/jquery-validation/localization/messages_fr.min.js

@ -0,0 +1,4 @@
/*! jQuery Validation Plugin - v1.19.1 - 6/15/2019
* https://jqueryvalidation.org/
* Copyright (c) 2019 Jörn Zaefferer; Licensed MIT */
!function(a){"function"==typeof define&&define.amd?define(["jquery","../jquery.validate.min"],a):"object"==typeof module&&module.exports?module.exports=a(require("jquery")):a(jQuery)}(function(a){return a.extend(a.validator.messages,{required:"Ce champ est obligatoire.",remote:"Veuillez corriger ce champ.",email:"Veuillez fournir une adresse électronique valide.",url:"Veuillez fournir une adresse URL valide.",date:"Veuillez fournir une date valide.",dateISO:"Veuillez fournir une date valide (ISO).",number:"Veuillez fournir un numéro valide.",digits:"Veuillez fournir seulement des chiffres.",creditcard:"Veuillez fournir un numéro de carte de crédit valide.",equalTo:"Veuillez fournir encore la même valeur.",notEqualTo:"Veuillez fournir une valeur différente, les valeurs ne doivent pas être identiques.",extension:"Veuillez fournir une valeur avec une extension valide.",maxlength:a.validator.format("Veuillez fournir au plus {0} caractères."),minlength:a.validator.format("Veuillez fournir au moins {0} caractères."),rangelength:a.validator.format("Veuillez fournir une valeur qui contient entre {0} et {1} caractères."),range:a.validator.format("Veuillez fournir une valeur entre {0} et {1}."),max:a.validator.format("Veuillez fournir une valeur inférieure ou égale à {0}."),min:a.validator.format("Veuillez fournir une valeur supérieure ou égale à {0}."),step:a.validator.format("Veuillez fournir une valeur multiple de {0}."),maxWords:a.validator.format("Veuillez fournir au plus {0} mots."),minWords:a.validator.format("Veuillez fournir au moins {0} mots."),rangeWords:a.validator.format("Veuillez fournir entre {0} et {1} mots."),letterswithbasicpunc:"Veuillez fournir seulement des lettres et des signes de ponctuation.",alphanumeric:"Veuillez fournir seulement des lettres, nombres, espaces et soulignages.",lettersonly:"Veuillez fournir seulement des lettres.",nowhitespace:"Veuillez ne pas inscrire d'espaces blancs.",ziprange:"Veuillez fournir un code postal entre 902xx-xxxx et 905-xx-xxxx.",integer:"Veuillez fournir un nombre non décimal qui est positif ou négatif.",vinUS:"Veuillez fournir un numéro d'identification du véhicule (VIN).",dateITA:"Veuillez fournir une date valide.",time:"Veuillez fournir une heure valide entre 00:00 et 23:59.",phoneUS:"Veuillez fournir un numéro de téléphone valide.",phoneUK:"Veuillez fournir un numéro de téléphone valide.",mobileUK:"Veuillez fournir un numéro de téléphone mobile valide.",strippedminlength:a.validator.format("Veuillez fournir au moins {0} caractères."),email2:"Veuillez fournir une adresse électronique valide.",url2:"Veuillez fournir une adresse URL valide.",creditcardtypes:"Veuillez fournir un numéro de carte de crédit valide.",ipv4:"Veuillez fournir une adresse IP v4 valide.",ipv6:"Veuillez fournir une adresse IP v6 valide.",require_from_group:a.validator.format("Veuillez fournir au moins {0} de ces champs."),nifES:"Veuillez fournir un numéro NIF valide.",nieES:"Veuillez fournir un numéro NIE valide.",cifES:"Veuillez fournir un numéro CIF valide.",postalCodeCA:"Veuillez fournir un code postal valide."}),a});

4
samples/BookStore-Modular/application/src/Acme.BookStore.Web/wwwroot/libs/jquery-validation/localization/messages_ge.min.js

@ -0,0 +1,4 @@
/*! jQuery Validation Plugin - v1.19.1 - 6/15/2019
* https://jqueryvalidation.org/
* Copyright (c) 2019 Jörn Zaefferer; Licensed MIT */
!function(a){"function"==typeof define&&define.amd?define(["jquery","../jquery.validate.min"],a):"object"==typeof module&&module.exports?module.exports=a(require("jquery")):a(jQuery)}(function(a){return a.extend(a.validator.messages,{required:"ეს ველი სავალდებულოა",remote:"გთხოვთ შეასწოროთ.",email:"გთხოვთ შეიყვანოთ სწორი ფორმატით.",url:"გთხოვთ შეიყვანოთ სწორი ფორმატით.",date:"გთხოვთ შეიყვანოთ სწორი თარიღი.",dateISO:"გთხოვთ შეიყვანოთ სწორი ფორმატით (ISO).",number:"გთხოვთ შეიყვანოთ რიცხვი.",digits:"დაშვებულია მხოლოდ ციფრები.",creditcard:"გთხოვთ შეიყვანოთ სწორი ფორმატის ბარათის კოდი.",equalTo:"გთხოვთ შეიყვანოთ იგივე მნიშვნელობა.",maxlength:a.validator.format("გთხოვთ შეიყვანოთ არა უმეტეს {0} სიმბოლოსი."),minlength:a.validator.format("შეიყვანეთ მინიმუმ {0} სიმბოლო."),rangelength:a.validator.format("გთხოვთ შეიყვანოთ {0} -დან {1} -მდე რაოდენობის სიმბოლოები."),range:a.validator.format("შეიყვანეთ {0} -სა {1} -ს შორის."),max:a.validator.format("გთხოვთ შეიყვანოთ მნიშვნელობა ნაკლები ან ტოლი {0} -ს."),min:a.validator.format("გთხოვთ შეიყვანოთ მნიშვნელობა მეტი ან ტოლი {0} -ს.")}),a});

4
samples/BookStore-Modular/application/src/Acme.BookStore.Web/wwwroot/libs/jquery-validation/localization/messages_gl.min.js

@ -0,0 +1,4 @@
/*! jQuery Validation Plugin - v1.19.1 - 6/15/2019
* https://jqueryvalidation.org/
* Copyright (c) 2019 Jörn Zaefferer; Licensed MIT */
!function(a){"function"==typeof define&&define.amd?define(["jquery","../jquery.validate.min"],a):"object"==typeof module&&module.exports?module.exports=a(require("jquery")):a(jQuery)}(function(a){return function(a){a.extend(a.validator.messages,{required:"Este campo é obrigatorio.",remote:"Por favor, cubre este campo.",email:"Por favor, escribe unha dirección de correo válida.",url:"Por favor, escribe unha URL válida.",date:"Por favor, escribe unha data válida.",dateISO:"Por favor, escribe unha data (ISO) válida.",number:"Por favor, escribe un número válido.",digits:"Por favor, escribe só díxitos.",creditcard:"Por favor, escribe un número de tarxeta válido.",equalTo:"Por favor, escribe o mesmo valor de novo.",extension:"Por favor, escribe un valor cunha extensión aceptada.",maxlength:a.validator.format("Por favor, non escribas máis de {0} caracteres."),minlength:a.validator.format("Por favor, non escribas menos de {0} caracteres."),rangelength:a.validator.format("Por favor, escribe un valor entre {0} e {1} caracteres."),range:a.validator.format("Por favor, escribe un valor entre {0} e {1}."),max:a.validator.format("Por favor, escribe un valor menor ou igual a {0}."),min:a.validator.format("Por favor, escribe un valor maior ou igual a {0}."),nifES:"Por favor, escribe un NIF válido.",nieES:"Por favor, escribe un NIE válido.",cifES:"Por favor, escribe un CIF válido."})}(jQuery),a});

4
samples/BookStore-Modular/application/src/Acme.BookStore.Web/wwwroot/libs/jquery-validation/localization/messages_he.min.js

@ -0,0 +1,4 @@
/*! jQuery Validation Plugin - v1.19.1 - 6/15/2019
* https://jqueryvalidation.org/
* Copyright (c) 2019 Jörn Zaefferer; Licensed MIT */
!function(a){"function"==typeof define&&define.amd?define(["jquery","../jquery.validate.min"],a):"object"==typeof module&&module.exports?module.exports=a(require("jquery")):a(jQuery)}(function(a){return a.extend(a.validator.messages,{required:"השדה הזה הינו שדה חובה",remote:"נא לתקן שדה זה",email:'נא למלא כתובת דוא"ל חוקית',url:"נא למלא כתובת אינטרנט חוקית",date:"נא למלא תאריך חוקי",dateISO:"נא למלא תאריך חוקי (ISO)",number:"נא למלא מספר",digits:"נא למלא רק מספרים",creditcard:"נא למלא מספר כרטיס אשראי חוקי",equalTo:"נא למלא את אותו ערך שוב",extension:"נא למלא ערך עם סיומת חוקית",maxlength:a.validator.format(".נא לא למלא יותר מ- {0} תווים"),minlength:a.validator.format("נא למלא לפחות {0} תווים"),rangelength:a.validator.format("נא למלא ערך בין {0} ל- {1} תווים"),range:a.validator.format("נא למלא ערך בין {0} ל- {1}"),max:a.validator.format("נא למלא ערך קטן או שווה ל- {0}"),min:a.validator.format("נא למלא ערך גדול או שווה ל- {0}")}),a});

Some files were not shown because too many files changed in this diff

Loading…
Cancel
Save