Browse Source

Merge branch 'dev' into Volo.Abp.MultiTenancy.Abstractions

pull/16584/head
maliming 3 years ago
parent
commit
11e98399fe
No known key found for this signature in database GPG Key ID: A646B9CB645ECEA4
  1. 3
      abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/en.json
  2. 25
      docs/en/API/Swagger-Integration.md
  3. 6
      docs/en/Background-Jobs-Hangfire.md
  4. 2
      npm/ng-packs/.npmrc
  5. 36
      npm/ng-packs/package.json
  6. 25
      npm/ng-packs/packages/generators/.eslintrc.json
  7. 11
      npm/ng-packs/packages/generators/README.md
  8. 9
      npm/ng-packs/packages/generators/generators.json
  9. 10
      npm/ng-packs/packages/generators/jest.config.ts
  10. 6
      npm/ng-packs/packages/generators/package.json
  11. 66
      npm/ng-packs/packages/generators/project.json
  12. 1
      npm/ng-packs/packages/generators/src/generators/generate-proxy/files/src/index.ts.template
  13. 20
      npm/ng-packs/packages/generators/src/generators/generate-proxy/generator.spec.ts
  14. 15
      npm/ng-packs/packages/generators/src/generators/generate-proxy/generator.ts
  15. 9
      npm/ng-packs/packages/generators/src/generators/generate-proxy/schema.d.ts
  16. 94
      npm/ng-packs/packages/generators/src/generators/generate-proxy/schema.json
  17. 0
      npm/ng-packs/packages/generators/src/index.ts
  18. 16
      npm/ng-packs/packages/generators/tsconfig.json
  19. 10
      npm/ng-packs/packages/generators/tsconfig.lib.json
  20. 9
      npm/ng-packs/packages/generators/tsconfig.spec.json
  21. 14
      npm/ng-packs/packages/schematics/package.json
  22. 4
      npm/ng-packs/packages/theme-shared/extensions/src/lib/components/extensible-form/extensible-form-prop.component.html
  23. 5
      npm/ng-packs/packages/theme-shared/extensions/src/lib/models/form-props.ts
  24. 1
      npm/ng-packs/packages/theme-shared/extensions/src/lib/models/internal/object-extensions.ts
  25. 1
      npm/ng-packs/packages/theme-shared/extensions/src/lib/models/props.ts
  26. 40
      npm/ng-packs/packages/theme-shared/extensions/src/lib/utils/state.util.ts
  27. 1
      npm/ng-packs/tsconfig.base.json
  28. 8
      templates/app/aspnet-core/src/MyCompanyName.MyProjectName.DbMigrator/MyCompanyName.MyProjectName.DbMigrator.csproj
  29. 2
      templates/app/aspnet-core/src/MyCompanyName.MyProjectName.DbMigrator/MyProjectNameDbMigratorModule.cs
  30. 1
      templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Domain/OpenIddict/OpenIddictDataSeedContributor.cs

3
abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/en.json

@ -460,6 +460,7 @@
"ReloadFromSourceConfirmationMessage": "This post will be refreshed from \"{0}\". Do you want to continue?",
"UnitPrice": "Unit Price",
"OverallDiscountAmount": "Overall Discount Amount",
"DiscountAmount": "Discount Amount"
"DiscountAmount": "Discount Amount",
"FullChangeHistory": "Full Change History"
}
}

25
docs/en/API/Swagger-Integration.md

@ -43,7 +43,7 @@ If you want to manually install;
## Configuration
First, we need to use `AddAbpSwaggerGen` extension to configure Swagger in `ConfigureServices` method of our module.
First, we need to use `AddAbpSwaggerGen` extension to configure Swagger in `ConfigureServices` method of our module:
```csharp
public override void ConfigureServices(ServiceConfigurationContext context)
@ -63,21 +63,21 @@ public override void ConfigureServices(ServiceConfigurationContext context)
}
```
Then we can use Swagger UI by calling `UseAbpSwaggerUI` method in the `OnApplicationInitialization` method of our module.
Then we can use Swagger UI by calling `UseAbpSwaggerUI` method in the `OnApplicationInitialization` method of our module:
```csharp
public override void OnApplicationInitialization(ApplicationInitializationContext context)
{
var app = context.GetApplicationBuilder();
//... other configarations.
//... other configurations.
app.UseAbpSwaggerUI(options =>
{
options.SwaggerEndpoint("/swagger/v1/swagger.json", "Test API");
});
//... other configarations.
//... other configurations.
}
```
@ -103,9 +103,7 @@ For non MVC/Tiered applications, we need to configure Swagger with OAUTH to hand
> ABP Framework uses OpenIddict by default. To get more information about OpenIddict, check this [documentation](../Modules/OpenIddict.md).
To do that, we need to use `AddAbpSwaggerGenWithOAuth` extension to configure Swagger with OAuth issuer and scopes in `ConfigureServices` method of our module.
To do that, we need to use `AddAbpSwaggerGenWithOAuth` extension to configure Swagger with OAuth issuer and scopes in `ConfigureServices` method of our module:
```csharp
public override void ConfigureServices(ServiceConfigurationContext context)
@ -130,17 +128,14 @@ public override void ConfigureServices(ServiceConfigurationContext context)
}
```
Then we can use Swagger UI by calling `UseAbpSwaggerUI` method in the `OnApplicationInitialization` method of our module.
> Do not forget to set `OAuthClientId` and `OAuthClientSecret`.
Then we can use Swagger UI by calling `UseAbpSwaggerUI` method in the `OnApplicationInitialization` method of our module:
```csharp
public override void OnApplicationInitialization(ApplicationInitializationContext context)
{
var app = context.GetApplicationBuilder();
//... other configarations.
//... other configurations.
app.UseAbpSwaggerUI(options =>
{
@ -151,6 +146,8 @@ public override void OnApplicationInitialization(ApplicationInitializationContex
options.OAuthClientSecret("1q2w3e*"); // clientSecret
});
//... other configarations.
//... other configurations.
}
```
```
> Do not forget to set `OAuthClientId` and `OAuthClientSecret`.

6
docs/en/Background-Jobs-Hangfire.md

@ -52,7 +52,7 @@ After you have installed these NuGet packages, you need to configure your projec
var configuration = context.Services.GetConfiguration();
var hostingEnvironment = context.Services.GetHostingEnvironment();
//... other configarations.
//... other configurations.
ConfigureHangfire(context, configuration);
}
@ -68,7 +68,7 @@ After you have installed these NuGet packages, you need to configure your projec
> You have to configure a storage for Hangfire.
2. If you want to use hangfire's dashboard, you can add `UseHangfireDashboard` call in the `OnApplicationInitialization` method in `Module` class
2. If you want to use hangfire's dashboard, you can add `UseHangfireDashboard` call in the `OnApplicationInitialization` method in `Module` class:
````csharp
public override void OnApplicationInitialization(ApplicationInitializationContext context)
@ -84,7 +84,7 @@ After you have installed these NuGet packages, you need to configure your projec
### Specifying Queue
You can use the [`QueueAttribute`](https://docs.hangfire.io/en/latest/background-processing/configuring-queues.html) to specify the queue.
You can use the [`QueueAttribute`](https://docs.hangfire.io/en/latest/background-processing/configuring-queues.html) to specify the queue:
````csharp
using System.Threading.Tasks;

2
npm/ng-packs/.npmrc

@ -0,0 +1,2 @@
@abp:registry=https://www.myget.org/F/abp-nightly/npm

36
npm/ng-packs/package.json

@ -43,20 +43,20 @@
},
"private": true,
"devDependencies": {
"@abp/ng.account": "~7.2.1",
"@abp/ng.account.core": "~7.2.1",
"@abp/ng.core": "~7.2.1",
"@abp/ng.feature-management": "~7.2.1",
"@abp/ng.identity": "~7.2.1",
"@abp/ng.oauth": "~7.2.1",
"@abp/ng.permission-management": "~7.2.1",
"@abp/ng.schematics": "~7.2.1",
"@abp/ng.setting-management": "~7.2.1",
"@abp/ng.tenant-management": "~7.2.1",
"@abp/ng.theme.basic": "~7.2.1",
"@abp/ng.account": "~7.3.0-preview20230530",
"@abp/ng.account.core": "7.3.0-preview20230530",
"@abp/ng.core": "7.3.0-preview20230530",
"@abp/ng.feature-management": "7.3.0-preview20230530",
"@abp/ng.identity": "7.3.0-preview20230530",
"@abp/ng.oauth": "7.3.0-preview20230530",
"@abp/ng.permission-management": "7.3.0-preview20230530",
"@abp/ng.schematics": "7.3.0-preview20230530",
"@abp/ng.setting-management": "7.3.0-preview20230530",
"@abp/ng.tenant-management": "7.3.0-preview20230530",
"@abp/ng.theme.basic": "7.3.0-preview20230530",
"@abp/ng.theme.lepton-x": "^2.2.0",
"@abp/ng.theme.shared": "~7.2.1",
"@abp/utils": "~7.2.1",
"@abp/ng.theme.shared": "7.3.0-preview20230530",
"@abp/utils": "7.3.0-preview20230530",
"@angular-devkit/build-angular": "16.0.1",
"@angular-devkit/core": "16.0.1",
"@angular-devkit/schematics": "16.0.1",
@ -83,8 +83,8 @@
"@nx/angular": "16.1.4",
"@nx/cypress": "16.1.4",
"@nx/eslint-plugin": "16.1.4",
"@nx/jest": "16.2.2",
"@nx/js": "16.2.2",
"@nx/jest": "16.1.4",
"@nx/js": "16.1.4",
"@nx/linter": "16.1.4",
"@nx/workspace": "16.1.4",
"@popperjs/core": "~2.11.2",
@ -142,9 +142,5 @@
"npx prettier --write --config .prettierrc "
]
},
"dependencies": {
"@nx/devkit": "16.2.2",
"@nx/plugin": "^16.2.2",
"@swc/helpers": "~0.5.0"
}
"dependencies": {}
}

25
npm/ng-packs/packages/generators/.eslintrc.json

@ -1,25 +0,0 @@
{
"extends": ["../../.eslintrc.json"],
"ignorePatterns": ["!**/*"],
"overrides": [
{
"files": ["*.ts", "*.tsx", "*.js", "*.jsx"],
"rules": {}
},
{
"files": ["*.ts", "*.tsx"],
"rules": {}
},
{
"files": ["*.js", "*.jsx"],
"rules": {}
},
{
"files": ["./package.json", "./generators.json"],
"parser": "jsonc-eslint-parser",
"rules": {
"@nx/nx-plugin-checks": "error"
}
}
]
}

11
npm/ng-packs/packages/generators/README.md

@ -1,11 +0,0 @@
# generators
This library was generated with [Nx](https://nx.dev).
## Building
Run `nx build generators` to build the library.
## Running unit tests
Run `nx test generators` to execute the unit tests via [Jest](https://jestjs.io).

9
npm/ng-packs/packages/generators/generators.json

@ -1,9 +0,0 @@
{
"generators": {
"generate-proxy": {
"factory": "./src/generators/generate-proxy/generator",
"schema": "./src/generators/generate-proxy/schema.json",
"description": "generate-proxy generator"
}
}
}

10
npm/ng-packs/packages/generators/jest.config.ts

@ -1,10 +0,0 @@
/* eslint-disable */
export default {
displayName: 'generators',
preset: '../../jest.preset.js',
transform: {
'^.+\\.[tj]s$': ['ts-jest', { tsconfig: '<rootDir>/tsconfig.spec.json' }],
},
moduleFileExtensions: ['ts', 'js', 'html'],
coverageDirectory: '../../coverage/packages/generators',
};

6
npm/ng-packs/packages/generators/package.json

@ -1,6 +0,0 @@
{
"name": "@abp/generators",
"version": "0.0.1",
"type": "commonjs",
"generators": "./generators.json"
}

66
npm/ng-packs/packages/generators/project.json

@ -1,66 +0,0 @@
{
"name": "generators",
"$schema": "../../node_modules/nx/schemas/project-schema.json",
"sourceRoot": "packages/generators/src",
"projectType": "library",
"targets": {
"build": {
"executor": "@nx/js:tsc",
"outputs": ["{options.outputPath}"],
"options": {
"outputPath": "dist/packages/generators",
"main": "packages/generators/src/index.ts",
"tsConfig": "packages/generators/tsconfig.lib.json",
"assets": [
"packages/generators/*.md",
{
"input": "./packages/generators/src",
"glob": "**/!(*.ts)",
"output": "./src"
},
{
"input": "./packages/generators/src",
"glob": "**/*.d.ts",
"output": "./src"
},
{
"input": "./packages/generators",
"glob": "generators.json",
"output": "."
},
{
"input": "./packages/generators",
"glob": "executors.json",
"output": "."
}
]
}
},
"lint": {
"executor": "@nx/linter:eslint",
"outputs": ["{options.outputFile}"],
"options": {
"lintFilePatterns": [
"packages/generators/**/*.ts",
"packages/generators/package.json",
"packages/generators/generators.json"
]
}
},
"test": {
"executor": "@nx/jest:jest",
"outputs": ["{workspaceRoot}/coverage/{projectRoot}"],
"options": {
"jestConfig": "packages/generators/jest.config.ts",
"passWithNoTests": true
},
"configurations": {
"ci": {
"ci": true,
"codeCoverage": true
}
}
}
},
"tags": []
}

1
npm/ng-packs/packages/generators/src/generators/generate-proxy/files/src/index.ts.template

@ -1 +0,0 @@
const variable = "<%= name %>";

20
npm/ng-packs/packages/generators/src/generators/generate-proxy/generator.spec.ts

@ -1,20 +0,0 @@
import { createTreeWithEmptyWorkspace } from '@nx/devkit/testing';
import { Tree, readProjectConfiguration } from '@nx/devkit';
import { generateProxyGenerator } from './generator';
import { GenerateProxyGeneratorSchema } from './schema';
describe('generate-proxy generator', () => {
let tree: Tree;
const options: GenerateProxyGeneratorSchema = { name: 'test' };
beforeEach(() => {
tree = createTreeWithEmptyWorkspace();
});
it('should run successfully', async () => {
await generateProxyGenerator(tree, options);
const config = readProjectConfiguration(tree, 'test');
expect(config).toBeDefined();
});
});

15
npm/ng-packs/packages/generators/src/generators/generate-proxy/generator.ts

@ -1,15 +0,0 @@
import { GenerateProxyGeneratorSchema } from './schema';
import { Tree } from '@nrwl/devkit';
import { wrapAngularDevkitSchematic } from '@nx/devkit/ngcli-adapter';
export default async function (host: Tree, schema: GenerateProxyGeneratorSchema) {
const runAngularLibrarySchematic = wrapAngularDevkitSchematic('@abp/ng.schematics', 'proxy-add');
await runAngularLibrarySchematic(host, {
...schema,
});
return () => {
console.log(`proxy added '${schema.target}`);
};
}

9
npm/ng-packs/packages/generators/src/generators/generate-proxy/schema.d.ts

@ -1,9 +0,0 @@
export interface GenerateProxyGeneratorSchema {
module: string;
apiName: string;
source: string;
target: string;
url: string;
serviceType: string;
entryPoint: string;
}

94
npm/ng-packs/packages/generators/src/generators/generate-proxy/schema.json

@ -1,94 +0,0 @@
{
"$schema": "https://json-schema.org/schema",
"$id": "GenerateProxy",
"title": "",
"type": "object",
"properties": {
"module": {
"description": "Backend module name",
"type": "string",
"$default": {
"$source": "argv",
"index": 0
},
"x-prompt": "Please enter backend module name. (default: \"app\")"
},
"apiName": {
"description": "Backend api name, a.k.a. remoteServiceName",
"type": "string",
"$default": {
"$source": "argv",
"index": 1
},
"x-prompt": "Please enter backend api name, a.k.a. remoteServiceName. (default: \"default\")"
},
"source": {
"description": "Source Angular project for API definition URL & root namespace resolution",
"type": "string",
"$default": {
"$source": "argv",
"index": 2
},
"x-prompt": "Please enter source Angular project for API definition URL & root namespace resolution. (default: workspace \"defaultProject\")"
},
"target": {
"description": "Target Angular project to place the generated code",
"type": "string",
"$default": {
"$source": "argv",
"index": 3
},
"x-prompt": "Please enter target Angular project to place the generated code. (default: workspace \"defaultProject\")"
},
"url": {
"description": "Url for API definition",
"type": "string",
"$default": {
"$source": "argv",
"index": 4
},
"x-prompt": "Please enter URL for API definition (default: API Name's url in environment file)"
},
"serviceType": {
"description": "Service type to the generated code",
"type": "string",
"$default": {
"$source": "argv",
"index": 5
},
"enum": [
"application",
"integration",
"all"
],
"x-prompt": {
"message": "Specifies the service type to generate. `application`, `integration` and `all`, Default value: `application`",
"type": "list",
"items": [
{
"value": "all",
"label": "All"
},
{
"value": "application",
"label": "Application"
},
{
"value": "integration",
"label": "Integration"
}
]
}
},
"entryPoint": {
"description": "Target Angular project to place the generated code",
"type": "string",
"$default": {
"$source": "argv",
"index": 6
},
"x-prompt": "Please enter target entry point to place the generated code. (default: null)"
}
},
"required": []
}

0
npm/ng-packs/packages/generators/src/index.ts

16
npm/ng-packs/packages/generators/tsconfig.json

@ -1,16 +0,0 @@
{
"extends": "../../tsconfig.base.json",
"compilerOptions": {
"module": "commonjs"
},
"files": [],
"include": [],
"references": [
{
"path": "./tsconfig.lib.json"
},
{
"path": "./tsconfig.spec.json"
}
]
}

10
npm/ng-packs/packages/generators/tsconfig.lib.json

@ -1,10 +0,0 @@
{
"extends": "./tsconfig.json",
"compilerOptions": {
"outDir": "../../dist/out-tsc",
"declaration": true,
"types": ["node"]
},
"include": ["src/**/*.ts"],
"exclude": ["jest.config.ts", "src/**/*.spec.ts", "src/**/*.test.ts"]
}

9
npm/ng-packs/packages/generators/tsconfig.spec.json

@ -1,9 +0,0 @@
{
"extends": "./tsconfig.json",
"compilerOptions": {
"outDir": "../../dist/out-tsc",
"module": "commonjs",
"types": ["jest", "node"]
},
"include": ["jest.config.ts", "src/**/*.test.ts", "src/**/*.spec.ts", "src/**/*.d.ts"]
}

14
npm/ng-packs/packages/schematics/package.json

@ -9,20 +9,20 @@
"license": "MIT",
"schematics": "./collection.json",
"dependencies": {
"@angular-devkit/core": "~15.0.1",
"@angular-devkit/schematics": "~15.0.1",
"@angular/cli": "~15.0.1",
"@angular-devkit/core": "~16.0.0",
"@angular-devkit/schematics": "~16.0.0",
"@angular/cli": "~16.0.0",
"got": "^11.5.2",
"jsonc-parser": "^2.3.0",
"should-quote": "^1.0.0",
"typescript": "~4.8.4"
"typescript": "5.0.4"
},
"devDependencies": {
"@schematics/angular": "~14.2.1",
"@schematics/angular": "~16.0.0",
"@types/jest": "^26.0.0",
"@types/node": "^12.11.1",
"jest": "^26.0.0",
"jest-preset-angular": "^8.2.0"
"jest": "29.4.3",
"jest-preset-angular": "13.1.0"
},
"publishConfig": {
"access": "public"

4
npm/ng-packs/packages/theme-shared/extensions/src/lib/components/extensible-form/extensible-form-prop.component.html

@ -153,6 +153,10 @@
[formControlName]="prop.name"
></abp-password>
</ng-template>
<small *ngIf="prop.formText" class="form-text text-muted">{{
prop.formText | abpLocalization
}}</small>
</div>
</ng-container>

5
npm/ng-packs/packages/theme-shared/extensions/src/lib/models/form-props.ts

@ -71,6 +71,7 @@ export class FormProp<R = any> extends Prop<R> {
readonly className?: string;
readonly group?: FormPropGroup | undefined;
readonly displayTextResolver?: PropDisplayTextResolver<R>;
readonly formText?: string;
constructor(options: FormPropOptions<R>) {
super(
@ -82,10 +83,11 @@ export class FormProp<R = any> extends Prop<R> {
options.isExtra,
options.template,
options.className,
options.formText,
);
this.group = options.group;
this.className = options.className;
this.formText = options.formText;
this.asyncValidators = options.asyncValidators || (_ => []);
this.validators = options.validators || (_ => []);
this.disabled = options.disabled || (_ => false);
@ -132,6 +134,7 @@ export type FormPropOptions<R = any> = O.Optional<
| 'options'
| 'id'
| 'displayTextResolver'
| 'formText'
>;
export type CreateFormPropDefaults<R = any> = Record<string, FormProp<R>[]>;

1
npm/ng-packs/packages/theme-shared/extensions/src/lib/models/internal/object-extensions.ts

@ -60,6 +60,7 @@ export interface ExtensionPropertyDto {
attributes: ExtensionPropertyAttributeDto[];
configuration: Record<string, any>;
defaultValue: any;
formText?: string;
}
export interface ExtensionPropertyUiDto {

1
npm/ng-packs/packages/theme-shared/extensions/src/lib/models/props.ts

@ -35,6 +35,7 @@ export abstract class Prop<R = any> {
public readonly isExtra = false,
public readonly template?: Type<any>,
public readonly className?: string,
public readonly formText?: string,
public readonly displayTextResolver?: PropDisplayTextResolver<R>,
) {
this.displayName = this.displayName || this.name;

40
npm/ng-packs/packages/theme-shared/extensions/src/lib/utils/state.util.ts

@ -4,25 +4,25 @@ import {
ConfigStateService,
ExtensionEnumDto,
ExtensionPropertyUiLookupDto,
ObjectExtensionsDto
} from "@abp/ng.core";
import { Observable, pipe, zip } from "rxjs";
import { filter, map, switchMap, take } from "rxjs/operators";
import { ePropType } from "../enums/props.enum";
import { EntityProp, EntityPropList } from "../models/entity-props";
import { FormProp, FormPropList } from "../models/form-props";
import { ObjectExtensions } from "../models/object-extensions";
import { PropCallback } from "../models/props";
import { createEnum, createEnumOptions, createEnumValueResolver } from "./enum.util";
import { createDisplayNameLocalizationPipeKeyGenerator } from "./localization.util";
import { createExtraPropertyValueResolver } from "./props.util";
ObjectExtensionsDto,
} from '@abp/ng.core';
import { Observable, pipe, zip } from 'rxjs';
import { filter, map, switchMap, take } from 'rxjs/operators';
import { ePropType } from '../enums/props.enum';
import { EntityProp, EntityPropList } from '../models/entity-props';
import { FormProp, FormPropList } from '../models/form-props';
import { ObjectExtensions } from '../models/object-extensions';
import { PropCallback } from '../models/props';
import { createEnum, createEnumOptions, createEnumValueResolver } from './enum.util';
import { createDisplayNameLocalizationPipeKeyGenerator } from './localization.util';
import { createExtraPropertyValueResolver } from './props.util';
import {
createTypeaheadDisplayNameGenerator,
createTypeaheadOptions,
getTypeaheadType,
hasTypeaheadTextSuffix
} from "./typeahead.util";
import { getValidatorsFromProperty } from "./validation.util";
hasTypeaheadTextSuffix,
} from './typeahead.util';
import { getValidatorsFromProperty } from './validation.util';
function selectObjectExtensions(configState: ConfigStateService): Observable<ObjectExtensionsDto> {
return configState.getOne$('objectExtensions');
@ -141,10 +141,10 @@ function createPropertiesToContributorsMapper<T = any>(
if (property.ui.onTable.isVisible) {
const sortable = Boolean(property.ui.onTable.isSortable);
const columnWidth = type === ePropType.Boolean ? 150 : 250;
const valueResolver: PropCallback<T, Observable<any>> =
type === ePropType.Enum && property.type
? createEnumValueResolver(property.type, enums[property.type], propName)
: createExtraPropertyValueResolver<T>(propName);
const valueResolver: PropCallback<T, Observable<any>> = type === ePropType.Enum &&
property.type
? createEnumValueResolver(property.type, enums[property.type], propName)
: createExtraPropertyValueResolver<T>(propName);
const entityProp = new EntityProp<T>({
type,
@ -165,6 +165,7 @@ function createPropertiesToContributorsMapper<T = any>(
if (isOnCreateForm || isOnEditForm) {
const defaultValue = property.defaultValue;
const formText = property.formText;
const validators = () => getValidatorsFromProperty(property);
let options: PropCallback<any, Observable<ABP.Option<any>[]>> | undefined;
if (type === ePropType.Enum)
@ -179,6 +180,7 @@ function createPropertiesToContributorsMapper<T = any>(
defaultValue,
validators,
isExtra,
formText,
});
const formContributor = (propList: FormPropList<T>) => propList.addTail(formProp);

1
npm/ng-packs/tsconfig.base.json

@ -14,7 +14,6 @@
"baseUrl": "./",
"allowSyntheticDefaultImports": true,
"paths": {
"@abp/generators": ["packages/generators/src/index.ts"],
"@abp/ng.account": ["packages/account/src/public-api.ts"],
"@abp/ng.account.core": ["packages/account-core/src/public-api.ts"],
"@abp/ng.account.core/proxy": ["packages/account-core/proxy/src/public-api.ts"],

8
templates/app/aspnet-core/src/MyCompanyName.MyProjectName.DbMigrator/MyCompanyName.MyProjectName.DbMigrator.csproj

@ -17,10 +17,7 @@
<!--APPSETTINGS-SECRETS-->
</ItemGroup>
<ItemGroup>
<!-- <TEMPLATE-REMOVE IF-NOT='TIERED'> -->
<ProjectReference Include="..\..\..\..\..\framework\src\Volo.Abp.Caching.StackExchangeRedis\Volo.Abp.Caching.StackExchangeRedis.csproj" />
<!-- </TEMPLATE-REMOVE> -->
<ItemGroup>
<PackageReference Include="Serilog.Extensions.Logging" Version="3.1.0" />
<PackageReference Include="Serilog.Sinks.Async" Version="1.5.0" />
<PackageReference Include="Serilog.Sinks.File" Version="5.0.0" />
@ -30,6 +27,9 @@
<ItemGroup>
<ProjectReference Include="..\..\..\..\..\framework\src\Volo.Abp.Autofac\Volo.Abp.Autofac.csproj" />
<!-- <TEMPLATE-REMOVE IF-NOT='TIERED'> -->
<ProjectReference Include="..\..\..\..\..\framework\src\Volo.Abp.Caching.StackExchangeRedis\Volo.Abp.Caching.StackExchangeRedis.csproj" />
<!-- </TEMPLATE-REMOVE> -->
<ProjectReference Include="..\MyCompanyName.MyProjectName.Application.Contracts\MyCompanyName.MyProjectName.Application.Contracts.csproj" />
<ProjectReference Include="..\MyCompanyName.MyProjectName.EntityFrameworkCore\MyCompanyName.MyProjectName.EntityFrameworkCore.csproj" />
</ItemGroup>

2
templates/app/aspnet-core/src/MyCompanyName.MyProjectName.DbMigrator/MyProjectNameDbMigratorModule.cs

@ -1,7 +1,7 @@
using MyCompanyName.MyProjectName.EntityFrameworkCore;
using Volo.Abp.Autofac;
using Volo.Abp.Caching;
//<TEMPLATE-REMOVE IF-NOT='TIERED'>
using Volo.Abp.Caching;
using Volo.Abp.Caching.StackExchangeRedis;
//</TEMPLATE-REMOVE>
using Volo.Abp.Modularity;

1
templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Domain/OpenIddict/OpenIddictDataSeedContributor.cs

@ -6,7 +6,6 @@ using System.Threading.Tasks;
using JetBrains.Annotations;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.Localization;
using Microsoft.Extensions.Logging;
using OpenIddict.Abstractions;
using Volo.Abp;
using Volo.Abp.Authorization.Permissions;

Loading…
Cancel
Save