diff --git a/npm/ng-packs/nx/ng-packs/angular.json b/npm/ng-packs/nx/ng-packs/angular.json
index 5a308231cf..b25e385ea6 100644
--- a/npm/ng-packs/nx/ng-packs/angular.json
+++ b/npm/ng-packs/nx/ng-packs/angular.json
@@ -448,6 +448,47 @@
}
}
},
+ "tenant-management": {
+ "projectType": "library",
+ "root": "packages/tenant-management",
+ "sourceRoot": "packages/tenant-management/src",
+ "prefix": "abp",
+ "architect": {
+ "build": {
+ "builder": "@angular-devkit/build-ng-packagr:build",
+ "options": {
+ "tsConfig": "packages/identity/tsconfig.lib.json",
+ "project": "packages/identity/ng-package.json"
+ },
+ "configurations": {
+ "production": {
+ "tsConfig": "packages/tenant-management/tsconfig.lib.prod.json"
+ },
+ "development": {
+ "tsConfig": "packages/tenant-management/tsconfig.lib.json"
+ }
+ },
+ "defaultConfiguration": "production"
+ },
+ "test": {
+ "builder": "@nrwl/jest:jest",
+ "outputs": ["coverage/packages/tenant-management"],
+ "options": {
+ "jestConfig": "packages/tenant-management/jest.config.js",
+ "passWithNoTests": true
+ }
+ },
+ "lint": {
+ "builder": "@nrwl/linter:eslint",
+ "options": {
+ "lintFilePatterns": [
+ "packages/tenant-management/src/**/*.ts",
+ "packages/tenant-management/src/**/*.html"
+ ]
+ }
+ }
+ }
+ },
"theme-basic": {
"projectType": "library",
"root": "packages/theme-basic",
diff --git a/npm/ng-packs/nx/ng-packs/nx.json b/npm/ng-packs/nx/ng-packs/nx.json
index 772bdb1a17..cdaaab6821 100644
--- a/npm/ng-packs/nx/ng-packs/nx.json
+++ b/npm/ng-packs/nx/ng-packs/nx.json
@@ -69,6 +69,10 @@
"tags": [],
"implicitDependencies": ["core", "theme-shared", "components"]
},
+ "tenant-management": {
+ "tags": [],
+ "implicitDependencies": ["core", "theme-shared", "feature-management"]
+ },
"theme-basic": {
"tags": [],
"implicitDependencies": ["core", "theme-shared", "account-core"]
diff --git a/npm/ng-packs/nx/ng-packs/packages/tenant-management/.eslintrc.json b/npm/ng-packs/nx/ng-packs/packages/tenant-management/.eslintrc.json
new file mode 100644
index 0000000000..9c51584494
--- /dev/null
+++ b/npm/ng-packs/nx/ng-packs/packages/tenant-management/.eslintrc.json
@@ -0,0 +1,36 @@
+{
+ "extends": ["../../.eslintrc.json"],
+ "ignorePatterns": ["!**/*"],
+ "overrides": [
+ {
+ "files": ["*.ts"],
+ "extends": [
+ "plugin:@nrwl/nx/angular",
+ "plugin:@angular-eslint/template/process-inline-templates"
+ ],
+ "rules": {
+ "@angular-eslint/directive-selector": [
+ "error",
+ {
+ "type": "attribute",
+ "prefix": "abp",
+ "style": "camelCase"
+ }
+ ],
+ "@angular-eslint/component-selector": [
+ "error",
+ {
+ "type": "element",
+ "prefix": "abp",
+ "style": "kebab-case"
+ }
+ ]
+ }
+ },
+ {
+ "files": ["*.html"],
+ "extends": ["plugin:@nrwl/nx/angular-template"],
+ "rules": {}
+ }
+ ]
+}
diff --git a/npm/ng-packs/nx/ng-packs/packages/tenant-management/README.md b/npm/ng-packs/nx/ng-packs/packages/tenant-management/README.md
new file mode 100644
index 0000000000..f44dae0ecb
--- /dev/null
+++ b/npm/ng-packs/nx/ng-packs/packages/tenant-management/README.md
@@ -0,0 +1,3 @@
+
@abp/ng.tenant-management
+
+[docs.abp.io](https://docs.abp.io)
diff --git a/npm/ng-packs/nx/ng-packs/packages/tenant-management/config/ng-package.json b/npm/ng-packs/nx/ng-packs/packages/tenant-management/config/ng-package.json
new file mode 100644
index 0000000000..21edb08d66
--- /dev/null
+++ b/npm/ng-packs/nx/ng-packs/packages/tenant-management/config/ng-package.json
@@ -0,0 +1,7 @@
+{
+ "$schema": "../../../node_modules/ng-packagr/ng-package.schema.json",
+ "dest": "../../../dist/packages/tenant-management/config",
+ "lib": {
+ "entryFile": "src/public-api.ts"
+ }
+}
diff --git a/npm/ng-packs/nx/ng-packs/packages/tenant-management/config/src/enums/index.ts b/npm/ng-packs/nx/ng-packs/packages/tenant-management/config/src/enums/index.ts
new file mode 100644
index 0000000000..4a7a6a0e23
--- /dev/null
+++ b/npm/ng-packs/nx/ng-packs/packages/tenant-management/config/src/enums/index.ts
@@ -0,0 +1,2 @@
+export * from './policy-names';
+export * from './route-names';
diff --git a/npm/ng-packs/nx/ng-packs/packages/tenant-management/config/src/enums/policy-names.ts b/npm/ng-packs/nx/ng-packs/packages/tenant-management/config/src/enums/policy-names.ts
new file mode 100644
index 0000000000..4b78f4d397
--- /dev/null
+++ b/npm/ng-packs/nx/ng-packs/packages/tenant-management/config/src/enums/policy-names.ts
@@ -0,0 +1,4 @@
+export const enum eTenantManagementPolicyNames {
+ TenantManagement = 'AbpTenantManagement.Tenants',
+ Tenants = 'AbpTenantManagement.Tenants',
+}
diff --git a/npm/ng-packs/nx/ng-packs/packages/tenant-management/config/src/enums/route-names.ts b/npm/ng-packs/nx/ng-packs/packages/tenant-management/config/src/enums/route-names.ts
new file mode 100644
index 0000000000..267ddc2f08
--- /dev/null
+++ b/npm/ng-packs/nx/ng-packs/packages/tenant-management/config/src/enums/route-names.ts
@@ -0,0 +1,4 @@
+export const enum eTenantManagementRouteNames {
+ TenantManagement = 'AbpTenantManagement::Menu:TenantManagement',
+ Tenants = 'AbpTenantManagement::Tenants',
+}
diff --git a/npm/ng-packs/nx/ng-packs/packages/tenant-management/config/src/providers/index.ts b/npm/ng-packs/nx/ng-packs/packages/tenant-management/config/src/providers/index.ts
new file mode 100644
index 0000000000..fe08efba8c
--- /dev/null
+++ b/npm/ng-packs/nx/ng-packs/packages/tenant-management/config/src/providers/index.ts
@@ -0,0 +1 @@
+export * from './route.provider';
diff --git a/npm/ng-packs/nx/ng-packs/packages/tenant-management/config/src/providers/route.provider.ts b/npm/ng-packs/nx/ng-packs/packages/tenant-management/config/src/providers/route.provider.ts
new file mode 100644
index 0000000000..5b3d9c88fd
--- /dev/null
+++ b/npm/ng-packs/nx/ng-packs/packages/tenant-management/config/src/providers/route.provider.ts
@@ -0,0 +1,32 @@
+import { eLayoutType, RoutesService } from '@abp/ng.core';
+import { eThemeSharedRouteNames } from '@abp/ng.theme.shared';
+import { APP_INITIALIZER } from '@angular/core';
+import { eTenantManagementPolicyNames } from '../enums/policy-names';
+import { eTenantManagementRouteNames } from '../enums/route-names';
+
+export const TENANT_MANAGEMENT_ROUTE_PROVIDERS = [
+ { provide: APP_INITIALIZER, useFactory: configureRoutes, deps: [RoutesService], multi: true },
+];
+
+export function configureRoutes(routes: RoutesService) {
+ return () => {
+ routes.add([
+ {
+ path: undefined,
+ name: eTenantManagementRouteNames.TenantManagement,
+ parentName: eThemeSharedRouteNames.Administration,
+ requiredPolicy: eTenantManagementPolicyNames.TenantManagement,
+ layout: eLayoutType.application,
+ iconClass: 'fa fa-users',
+ order: 2,
+ },
+ {
+ path: '/tenant-management/tenants',
+ name: eTenantManagementRouteNames.Tenants,
+ parentName: eTenantManagementRouteNames.TenantManagement,
+ requiredPolicy: eTenantManagementPolicyNames.Tenants,
+ order: 1,
+ },
+ ]);
+ };
+}
diff --git a/npm/ng-packs/nx/ng-packs/packages/tenant-management/config/src/public-api.ts b/npm/ng-packs/nx/ng-packs/packages/tenant-management/config/src/public-api.ts
new file mode 100644
index 0000000000..6c2c00a53a
--- /dev/null
+++ b/npm/ng-packs/nx/ng-packs/packages/tenant-management/config/src/public-api.ts
@@ -0,0 +1,3 @@
+export * from './enums';
+export * from './providers';
+export * from './tenant-management-config.module';
diff --git a/npm/ng-packs/nx/ng-packs/packages/tenant-management/config/src/tenant-management-config.module.ts b/npm/ng-packs/nx/ng-packs/packages/tenant-management/config/src/tenant-management-config.module.ts
new file mode 100644
index 0000000000..2929f766c0
--- /dev/null
+++ b/npm/ng-packs/nx/ng-packs/packages/tenant-management/config/src/tenant-management-config.module.ts
@@ -0,0 +1,12 @@
+import { ModuleWithProviders, NgModule } from '@angular/core';
+import { TENANT_MANAGEMENT_ROUTE_PROVIDERS } from './providers/route.provider';
+
+@NgModule()
+export class TenantManagementConfigModule {
+ static forRoot(): ModuleWithProviders {
+ return {
+ ngModule: TenantManagementConfigModule,
+ providers: [TENANT_MANAGEMENT_ROUTE_PROVIDERS],
+ };
+ }
+}
diff --git a/npm/ng-packs/nx/ng-packs/packages/tenant-management/jest.config.js b/npm/ng-packs/nx/ng-packs/packages/tenant-management/jest.config.js
new file mode 100644
index 0000000000..9a08bbbafc
--- /dev/null
+++ b/npm/ng-packs/nx/ng-packs/packages/tenant-management/jest.config.js
@@ -0,0 +1,20 @@
+module.exports = {
+ displayName: 'tenant-management',
+ preset: '../../jest.preset.js',
+ setupFilesAfterEnv: ['/src/test-setup.ts'],
+ globals: {
+ 'ts-jest': {
+ tsconfig: '/tsconfig.spec.json',
+ stringifyContentPathRegex: '\\.(html|svg)$',
+ },
+ },
+ coverageDirectory: '../../coverage/packages/tenant-management',
+ transform: {
+ '^.+\\.(ts|js|html)$': 'jest-preset-angular',
+ },
+ snapshotSerializers: [
+ 'jest-preset-angular/build/serializers/no-ng-attributes',
+ 'jest-preset-angular/build/serializers/ng-snapshot',
+ 'jest-preset-angular/build/serializers/html-comment',
+ ],
+};
diff --git a/npm/ng-packs/nx/ng-packs/packages/tenant-management/ng-package.json b/npm/ng-packs/nx/ng-packs/packages/tenant-management/ng-package.json
new file mode 100644
index 0000000000..ec0114c801
--- /dev/null
+++ b/npm/ng-packs/nx/ng-packs/packages/tenant-management/ng-package.json
@@ -0,0 +1,11 @@
+{
+ "$schema": "../../node_modules/ng-packagr/ng-package.schema.json",
+ "dest": "../../dist/packages/tenant-management",
+ "lib": {
+ "entryFile": "src/public-api.ts"
+ },
+ "allowedNonPeerDependencies": [
+ "@abp/ng.theme.shared",
+ "@abp/ng.feature-management"
+ ]
+}
diff --git a/npm/ng-packs/nx/ng-packs/packages/tenant-management/package.json b/npm/ng-packs/nx/ng-packs/packages/tenant-management/package.json
new file mode 100644
index 0000000000..77c031e5a1
--- /dev/null
+++ b/npm/ng-packs/nx/ng-packs/packages/tenant-management/package.json
@@ -0,0 +1,17 @@
+{
+ "name": "@abp/ng.tenant-management",
+ "version": "4.4.0",
+ "homepage": "https://abp.io",
+ "repository": {
+ "type": "git",
+ "url": "https://github.com/abpframework/abp.git"
+ },
+ "dependencies": {
+ "@abp/ng.feature-management": "~4.4.0",
+ "@abp/ng.theme.shared": "~4.4.0",
+ "tslib": "^2.0.0"
+ },
+ "publishConfig": {
+ "access": "public"
+ }
+}
diff --git a/npm/ng-packs/nx/ng-packs/packages/tenant-management/src/lib/actions/index.ts b/npm/ng-packs/nx/ng-packs/packages/tenant-management/src/lib/actions/index.ts
new file mode 100644
index 0000000000..5c9207873f
--- /dev/null
+++ b/npm/ng-packs/nx/ng-packs/packages/tenant-management/src/lib/actions/index.ts
@@ -0,0 +1 @@
+export * from './tenant-management.actions';
diff --git a/npm/ng-packs/nx/ng-packs/packages/tenant-management/src/lib/actions/tenant-management.actions.ts b/npm/ng-packs/nx/ng-packs/packages/tenant-management/src/lib/actions/tenant-management.actions.ts
new file mode 100644
index 0000000000..23e0aecb9e
--- /dev/null
+++ b/npm/ng-packs/nx/ng-packs/packages/tenant-management/src/lib/actions/tenant-management.actions.ts
@@ -0,0 +1,26 @@
+import { GetTenantsInput, TenantCreateDto, TenantUpdateDto } from '../proxy/models';
+
+export class GetTenants {
+ static readonly type = '[TenantManagement] Get Tenant';
+ constructor(public payload?: GetTenantsInput) {}
+}
+
+export class GetTenantById {
+ static readonly type = '[TenantManagement] Get Tenant By Id';
+ constructor(public payload: string) {}
+}
+
+export class CreateTenant {
+ static readonly type = '[TenantManagement] Create Tenant';
+ constructor(public payload: TenantCreateDto) {}
+}
+
+export class UpdateTenant {
+ static readonly type = '[TenantManagement] Update Tenant';
+ constructor(public payload: TenantUpdateDto & { id: string }) {}
+}
+
+export class DeleteTenant {
+ static readonly type = '[TenantManagement] Delete Tenant';
+ constructor(public payload: string) {}
+}
diff --git a/npm/ng-packs/nx/ng-packs/packages/tenant-management/src/lib/components/index.ts b/npm/ng-packs/nx/ng-packs/packages/tenant-management/src/lib/components/index.ts
new file mode 100644
index 0000000000..3174cf9458
--- /dev/null
+++ b/npm/ng-packs/nx/ng-packs/packages/tenant-management/src/lib/components/index.ts
@@ -0,0 +1 @@
+export * from './tenants/tenants.component';
diff --git a/npm/ng-packs/nx/ng-packs/packages/tenant-management/src/lib/components/tenants/tenants.component.html b/npm/ng-packs/nx/ng-packs/packages/tenant-management/src/lib/components/tenants/tenants.component.html
new file mode 100644
index 0000000000..c296589afd
--- /dev/null
+++ b/npm/ng-packs/nx/ng-packs/packages/tenant-management/src/lib/components/tenants/tenants.component.html
@@ -0,0 +1,72 @@
+
+
+
+
+ {{ selectedModalContent.title | abpLocalization }}
+
+
+
+
+
+
+
+
+ {{
+ 'AbpTenantManagement::Save' | abpLocalization
+ }}
+
+
+
+
+
+
+
+
+
diff --git a/npm/ng-packs/nx/ng-packs/packages/tenant-management/src/lib/components/tenants/tenants.component.ts b/npm/ng-packs/nx/ng-packs/packages/tenant-management/src/lib/components/tenants/tenants.component.ts
new file mode 100644
index 0000000000..22880151f4
--- /dev/null
+++ b/npm/ng-packs/nx/ng-packs/packages/tenant-management/src/lib/components/tenants/tenants.component.ts
@@ -0,0 +1,259 @@
+import { ListService, PagedResultDto } from '@abp/ng.core';
+import { eFeatureManagementComponents } from '@abp/ng.feature-management';
+import { Confirmation, ConfirmationService, getPasswordValidators } from '@abp/ng.theme.shared';
+import { Component, Injector, OnInit, TemplateRef, ViewChild } from '@angular/core';
+import { FormBuilder, FormGroup, Validators } from '@angular/forms';
+import { Select, Store } from '@ngxs/store';
+import { Observable } from 'rxjs';
+import { finalize, pluck, switchMap, take } from 'rxjs/operators';
+import {
+ CreateTenant,
+ DeleteTenant,
+ GetTenantById,
+ GetTenants,
+ UpdateTenant,
+} from '../../actions/tenant-management.actions';
+import { GetTenantsInput, TenantDto } from '../../proxy/models';
+import { TenantService } from '../../proxy/tenant.service';
+import { TenantManagementState } from '../../states/tenant-management.state';
+import {
+ EXTENSIONS_IDENTIFIER,
+ FormPropData,
+ generateFormFromProps,
+} from '@abp/ng.theme.shared/extensions';
+import { eTenantManagementComponents } from '../../enums/components';
+
+interface SelectedModalContent {
+ type: 'saveConnStr' | 'saveTenant';
+ title: string;
+ template: TemplateRef;
+}
+
+@Component({
+ selector: 'abp-tenants',
+ templateUrl: './tenants.component.html',
+ providers: [
+ ListService,
+ {
+ provide: EXTENSIONS_IDENTIFIER,
+ useValue: eTenantManagementComponents.Tenants,
+ },
+ ],
+})
+export class TenantsComponent implements OnInit {
+ @Select(TenantManagementState.get)
+ data$: Observable>;
+
+ @Select(TenantManagementState.getTenantsTotalCount)
+ totalCount$: Observable;
+
+ selected: TenantDto;
+
+ tenantForm: FormGroup;
+
+ defaultConnectionStringForm: FormGroup;
+
+ defaultConnectionString: string;
+
+ isModalVisible: boolean;
+
+ selectedModalContent = {} as SelectedModalContent;
+
+ visibleFeatures = false;
+
+ providerKey: string;
+
+ _useSharedDatabase: boolean;
+
+ modalBusy = false;
+
+ featureManagementKey = eFeatureManagementComponents.FeatureManagement;
+
+ get hasSelectedTenant(): boolean {
+ return Boolean(this.selected.id);
+ }
+
+ get useSharedDatabase(): boolean {
+ return this.defaultConnectionStringForm.get('useSharedDatabase').value;
+ }
+
+ get connectionString(): string {
+ return this.defaultConnectionStringForm.get('defaultConnectionString').value;
+ }
+
+ @ViewChild('tenantModalTemplate')
+ tenantModalTemplate: TemplateRef;
+
+ get isDisabledSaveButton(): boolean {
+ if (!this.selectedModalContent) return false;
+
+ if (
+ this.selectedModalContent.type === 'saveConnStr' &&
+ this.defaultConnectionStringForm &&
+ this.defaultConnectionStringForm.invalid
+ ) {
+ return true;
+ } else if (
+ this.selectedModalContent.type === 'saveTenant' &&
+ this.tenantForm &&
+ this.tenantForm.invalid
+ ) {
+ return true;
+ } else {
+ return false;
+ }
+ }
+
+ onVisibleFeaturesChange = (value: boolean) => {
+ this.visibleFeatures = value;
+ };
+
+ constructor(
+ public readonly list: ListService,
+ private injector: Injector,
+ private confirmationService: ConfirmationService,
+ private tenantService: TenantService,
+ private fb: FormBuilder,
+ private store: Store,
+ ) {}
+
+ ngOnInit() {
+ this.hookToQuery();
+ }
+
+ private createTenantForm() {
+ const data = new FormPropData(this.injector, this.selected);
+ this.tenantForm = generateFormFromProps(data);
+ }
+
+ private createDefaultConnectionStringForm() {
+ this.defaultConnectionStringForm = this.fb.group({
+ useSharedDatabase: this._useSharedDatabase,
+ defaultConnectionString: [this.defaultConnectionString || ''],
+ });
+ }
+
+ openModal(title: string, template: TemplateRef, type: 'saveConnStr' | 'saveTenant') {
+ this.selectedModalContent = {
+ title,
+ template,
+ type,
+ };
+
+ this.isModalVisible = true;
+ }
+
+ addTenant() {
+ this.selected = {} as TenantDto;
+ this.createTenantForm();
+ this.openModal('AbpTenantManagement::NewTenant', this.tenantModalTemplate, 'saveTenant');
+ }
+
+ editTenant(id: string) {
+ this.store
+ .dispatch(new GetTenantById(id))
+ .pipe(pluck('TenantManagementState', 'selectedItem'))
+ .subscribe(selected => {
+ this.selected = selected;
+ this.createTenantForm();
+ this.openModal('AbpTenantManagement::Edit', this.tenantModalTemplate, 'saveTenant');
+ });
+ }
+
+ save() {
+ const { type } = this.selectedModalContent;
+ if (!type) return;
+ if (type === 'saveTenant') this.saveTenant();
+ else if (type === 'saveConnStr') this.saveConnectionString();
+ }
+
+ saveConnectionString() {
+ if (this.modalBusy) return;
+
+ this.modalBusy = true;
+ if (this.useSharedDatabase || (!this.useSharedDatabase && !this.connectionString)) {
+ this.tenantService
+ .deleteDefaultConnectionString(this.selected.id)
+ .pipe(
+ take(1),
+ finalize(() => (this.modalBusy = false)),
+ )
+ .subscribe(() => {
+ this.isModalVisible = false;
+ });
+ } else {
+ this.tenantService
+ .updateDefaultConnectionString(this.selected.id, this.connectionString)
+ .pipe(
+ take(1),
+ finalize(() => (this.modalBusy = false)),
+ )
+ .subscribe(() => {
+ this.isModalVisible = false;
+ });
+ }
+ }
+
+ saveTenant() {
+ if (!this.tenantForm.valid || this.modalBusy) return;
+ this.modalBusy = true;
+
+ this.store
+ .dispatch(
+ this.selected.id
+ ? new UpdateTenant({ ...this.selected, ...this.tenantForm.value, id: this.selected.id })
+ : new CreateTenant(this.tenantForm.value),
+ )
+ .pipe(finalize(() => (this.modalBusy = false)))
+ .subscribe(() => {
+ this.isModalVisible = false;
+ this.list.get();
+ });
+ }
+
+ delete(id: string, name: string) {
+ this.confirmationService
+ .warn(
+ 'AbpTenantManagement::TenantDeletionConfirmationMessage',
+ 'AbpTenantManagement::AreYouSure',
+ {
+ messageLocalizationParams: [name],
+ },
+ )
+ .subscribe((status: Confirmation.Status) => {
+ if (status === Confirmation.Status.confirm) {
+ this.store.dispatch(new DeleteTenant(id)).subscribe(() => this.list.get());
+ }
+ });
+ }
+
+ hookToQuery() {
+ this.list.hookToQuery(query => this.store.dispatch(new GetTenants(query))).subscribe();
+ }
+
+ onSharedDatabaseChange(value: boolean) {
+ if (!value) {
+ setTimeout(() => {
+ const defaultConnectionString = document.getElementById(
+ 'defaultConnectionString',
+ ) as HTMLInputElement;
+ if (defaultConnectionString) {
+ defaultConnectionString.focus();
+ }
+ }, 0);
+ }
+ }
+
+ openFeaturesModal(providerKey: string) {
+ this.providerKey = providerKey;
+ setTimeout(() => {
+ this.visibleFeatures = true;
+ }, 0);
+ }
+
+ sort(data) {
+ const { prop, dir } = data.sorts[0];
+ this.list.sortKey = prop;
+ this.list.sortOrder = dir;
+ }
+}
diff --git a/npm/ng-packs/nx/ng-packs/packages/tenant-management/src/lib/defaults/default-tenants-entity-actions.ts b/npm/ng-packs/nx/ng-packs/packages/tenant-management/src/lib/defaults/default-tenants-entity-actions.ts
new file mode 100644
index 0000000000..715dbd1a1b
--- /dev/null
+++ b/npm/ng-packs/nx/ng-packs/packages/tenant-management/src/lib/defaults/default-tenants-entity-actions.ts
@@ -0,0 +1,30 @@
+import { EntityAction } from '@abp/ng.theme.shared/extensions';
+import { TenantsComponent } from '../components/tenants/tenants.component';
+import { TenantDto } from '../proxy/models';
+
+export const DEFAULT_TENANTS_ENTITY_ACTIONS = EntityAction.createMany([
+ {
+ text: 'AbpTenantManagement::Edit',
+ action: data => {
+ const component = data.getInjected(TenantsComponent);
+ component.editTenant(data.record.id);
+ },
+ permission: 'AbpTenantManagement.Tenants.Update',
+ },
+ {
+ text: 'AbpTenantManagement::Permission:ManageFeatures',
+ action: data => {
+ const component = data.getInjected(TenantsComponent);
+ component.openFeaturesModal(data.record.id);
+ },
+ permission: 'AbpTenantManagement.Tenants.ManageFeatures',
+ },
+ {
+ text: 'AbpTenantManagement::Delete',
+ action: data => {
+ const component = data.getInjected(TenantsComponent);
+ component.delete(data.record.id, data.record.name);
+ },
+ permission: 'AbpTenantManagement.Tenants.Delete',
+ },
+]);
diff --git a/npm/ng-packs/nx/ng-packs/packages/tenant-management/src/lib/defaults/default-tenants-entity-props.ts b/npm/ng-packs/nx/ng-packs/packages/tenant-management/src/lib/defaults/default-tenants-entity-props.ts
new file mode 100644
index 0000000000..31de557fde
--- /dev/null
+++ b/npm/ng-packs/nx/ng-packs/packages/tenant-management/src/lib/defaults/default-tenants-entity-props.ts
@@ -0,0 +1,11 @@
+import { EntityProp, ePropType } from '@abp/ng.theme.shared/extensions';
+import { TenantDto } from '../proxy/models';
+
+export const DEFAULT_TENANTS_ENTITY_PROPS = EntityProp.createMany([
+ {
+ type: ePropType.String,
+ name: 'name',
+ displayName: 'AbpTenantManagement::TenantName',
+ sortable: true,
+ },
+]);
diff --git a/npm/ng-packs/nx/ng-packs/packages/tenant-management/src/lib/defaults/default-tenants-form-props.ts b/npm/ng-packs/nx/ng-packs/packages/tenant-management/src/lib/defaults/default-tenants-form-props.ts
new file mode 100644
index 0000000000..a17832113a
--- /dev/null
+++ b/npm/ng-packs/nx/ng-packs/packages/tenant-management/src/lib/defaults/default-tenants-form-props.ts
@@ -0,0 +1,33 @@
+import { getPasswordValidators } from '@abp/ng.theme.shared';
+import { ePropType, FormProp } from '@abp/ng.theme.shared/extensions';
+import { Validators } from '@angular/forms';
+import { TenantCreateDto, TenantUpdateDto } from '../proxy/models';
+
+export const DEFAULT_TENANTS_CREATE_FORM_PROPS = FormProp.createMany<
+ TenantCreateDto | TenantUpdateDto
+>([
+ {
+ type: ePropType.String,
+ name: 'name',
+ id: 'name',
+ displayName: 'AbpTenantManagement::TenantName',
+ validators: () => [Validators.required, Validators.maxLength(256)],
+ },
+ {
+ type: ePropType.Email,
+ name: 'adminEmailAddress',
+ displayName: 'AbpTenantManagement::DisplayName:AdminEmailAddress',
+ id: 'admin-email-address',
+ validators: () => [Validators.required, Validators.maxLength(256), Validators.email],
+ },
+ {
+ type: ePropType.Password,
+ name: 'adminPassword',
+ displayName: 'AbpTenantManagement::DisplayName:AdminPassword',
+ id: 'admin-password',
+ autocomplete: 'new-password',
+ validators: data => [Validators.required, ...getPasswordValidators({ get: data.getInjected })],
+ },
+]);
+
+export const DEFAULT_TENANTS_EDIT_FORM_PROPS = DEFAULT_TENANTS_CREATE_FORM_PROPS.slice(0, 1);
diff --git a/npm/ng-packs/nx/ng-packs/packages/tenant-management/src/lib/defaults/default-tenants-toolbar-actions.ts b/npm/ng-packs/nx/ng-packs/packages/tenant-management/src/lib/defaults/default-tenants-toolbar-actions.ts
new file mode 100644
index 0000000000..948294894d
--- /dev/null
+++ b/npm/ng-packs/nx/ng-packs/packages/tenant-management/src/lib/defaults/default-tenants-toolbar-actions.ts
@@ -0,0 +1,24 @@
+import { ToolbarAction } from '@abp/ng.theme.shared/extensions';
+import { TenantsComponent } from '../components/tenants/tenants.component';
+import { TenantDto } from '../proxy/models';
+
+export const DEFAULT_TENANTS_TOOLBAR_ACTIONS = ToolbarAction.createMany([
+ {
+ text: 'AbpTenantManagement::ManageHostFeatures',
+ action: data => {
+ const component = data.getInjected(TenantsComponent);
+ component.openFeaturesModal(null);
+ },
+ permission: 'FeatureManagement.ManageHostFeatures',
+ icon: 'fa fa-cog',
+ },
+ {
+ text: 'AbpTenantManagement::NewTenant',
+ action: data => {
+ const component = data.getInjected(TenantsComponent);
+ component.addTenant();
+ },
+ permission: 'AbpTenantManagement.Tenants.Create',
+ icon: 'fa fa-plus',
+ },
+]);
diff --git a/npm/ng-packs/nx/ng-packs/packages/tenant-management/src/lib/enums/components.ts b/npm/ng-packs/nx/ng-packs/packages/tenant-management/src/lib/enums/components.ts
new file mode 100644
index 0000000000..69004a800b
--- /dev/null
+++ b/npm/ng-packs/nx/ng-packs/packages/tenant-management/src/lib/enums/components.ts
@@ -0,0 +1,3 @@
+export const enum eTenantManagementComponents {
+ Tenants = 'TenantManagement.TenantsComponent',
+}
diff --git a/npm/ng-packs/nx/ng-packs/packages/tenant-management/src/lib/enums/index.ts b/npm/ng-packs/nx/ng-packs/packages/tenant-management/src/lib/enums/index.ts
new file mode 100644
index 0000000000..07635cbbc8
--- /dev/null
+++ b/npm/ng-packs/nx/ng-packs/packages/tenant-management/src/lib/enums/index.ts
@@ -0,0 +1 @@
+export * from './components';
diff --git a/npm/ng-packs/nx/ng-packs/packages/tenant-management/src/lib/guards/extensions.guard.ts b/npm/ng-packs/nx/ng-packs/packages/tenant-management/src/lib/guards/extensions.guard.ts
new file mode 100644
index 0000000000..32f014ddfd
--- /dev/null
+++ b/npm/ng-packs/nx/ng-packs/packages/tenant-management/src/lib/guards/extensions.guard.ts
@@ -0,0 +1,90 @@
+import { ConfigStateService } from '@abp/ng.core';
+import {
+ ExtensionsService,
+ getObjectExtensionEntitiesFromStore,
+ mapEntitiesToContributors,
+ mergeWithDefaultActions,
+ mergeWithDefaultProps,
+} from '@abp/ng.theme.shared/extensions';
+import { Injectable, Injector } from '@angular/core';
+import { CanActivate } from '@angular/router';
+import { Observable } from 'rxjs';
+import { map, mapTo, tap } from 'rxjs/operators';
+import { eTenantManagementComponents } from '../enums/components';
+import {
+ TenantManagementCreateFormPropContributors,
+ TenantManagementEditFormPropContributors,
+ TenantManagementEntityActionContributors,
+ TenantManagementEntityPropContributors,
+ TenantManagementToolbarActionContributors,
+} from '../models/config-options';
+import {
+ DEFAULT_TENANT_MANAGEMENT_CREATE_FORM_PROPS,
+ DEFAULT_TENANT_MANAGEMENT_EDIT_FORM_PROPS,
+ DEFAULT_TENANT_MANAGEMENT_ENTITY_ACTIONS,
+ DEFAULT_TENANT_MANAGEMENT_ENTITY_PROPS,
+ DEFAULT_TENANT_MANAGEMENT_TOOLBAR_ACTIONS,
+ TENANT_MANAGEMENT_CREATE_FORM_PROP_CONTRIBUTORS,
+ TENANT_MANAGEMENT_EDIT_FORM_PROP_CONTRIBUTORS,
+ TENANT_MANAGEMENT_ENTITY_ACTION_CONTRIBUTORS,
+ TENANT_MANAGEMENT_ENTITY_PROP_CONTRIBUTORS,
+ TENANT_MANAGEMENT_TOOLBAR_ACTION_CONTRIBUTORS,
+} from '../tokens/extensions.token';
+
+@Injectable()
+export class TenantManagementExtensionsGuard implements CanActivate {
+ constructor(private injector: Injector) {}
+
+ canActivate(): Observable {
+ const extensions: ExtensionsService = this.injector.get(ExtensionsService);
+ const actionContributors: TenantManagementEntityActionContributors =
+ this.injector.get(TENANT_MANAGEMENT_ENTITY_ACTION_CONTRIBUTORS, null) || {};
+ const toolbarContributors: TenantManagementToolbarActionContributors =
+ this.injector.get(TENANT_MANAGEMENT_TOOLBAR_ACTION_CONTRIBUTORS, null) || {};
+ const propContributors: TenantManagementEntityPropContributors =
+ this.injector.get(TENANT_MANAGEMENT_ENTITY_PROP_CONTRIBUTORS, null) || {};
+ const createFormContributors: TenantManagementCreateFormPropContributors =
+ this.injector.get(TENANT_MANAGEMENT_CREATE_FORM_PROP_CONTRIBUTORS, null) || {};
+ const editFormContributors: TenantManagementEditFormPropContributors =
+ this.injector.get(TENANT_MANAGEMENT_EDIT_FORM_PROP_CONTRIBUTORS, null) || {};
+
+ const configState = this.injector.get(ConfigStateService);
+ return getObjectExtensionEntitiesFromStore(configState, 'TenantManagement').pipe(
+ map(entities => ({
+ [eTenantManagementComponents.Tenants]: entities.Tenant,
+ })),
+ mapEntitiesToContributors(configState, 'TenantManagement'),
+ tap(objectExtensionContributors => {
+ mergeWithDefaultActions(
+ extensions.entityActions,
+ DEFAULT_TENANT_MANAGEMENT_ENTITY_ACTIONS,
+ actionContributors,
+ );
+ mergeWithDefaultActions(
+ extensions.toolbarActions,
+ DEFAULT_TENANT_MANAGEMENT_TOOLBAR_ACTIONS,
+ toolbarContributors,
+ );
+ mergeWithDefaultProps(
+ extensions.entityProps,
+ DEFAULT_TENANT_MANAGEMENT_ENTITY_PROPS,
+ objectExtensionContributors.prop,
+ propContributors,
+ );
+ mergeWithDefaultProps(
+ extensions.createFormProps,
+ DEFAULT_TENANT_MANAGEMENT_CREATE_FORM_PROPS,
+ objectExtensionContributors.createForm,
+ createFormContributors,
+ );
+ mergeWithDefaultProps(
+ extensions.editFormProps,
+ DEFAULT_TENANT_MANAGEMENT_EDIT_FORM_PROPS,
+ objectExtensionContributors.editForm,
+ editFormContributors,
+ );
+ }),
+ mapTo(true),
+ );
+ }
+}
diff --git a/npm/ng-packs/nx/ng-packs/packages/tenant-management/src/lib/guards/index.ts b/npm/ng-packs/nx/ng-packs/packages/tenant-management/src/lib/guards/index.ts
new file mode 100644
index 0000000000..480f14c40b
--- /dev/null
+++ b/npm/ng-packs/nx/ng-packs/packages/tenant-management/src/lib/guards/index.ts
@@ -0,0 +1 @@
+export * from './extensions.guard';
diff --git a/npm/ng-packs/nx/ng-packs/packages/tenant-management/src/lib/models/config-options.ts b/npm/ng-packs/nx/ng-packs/packages/tenant-management/src/lib/models/config-options.ts
new file mode 100644
index 0000000000..306162f6c5
--- /dev/null
+++ b/npm/ng-packs/nx/ng-packs/packages/tenant-management/src/lib/models/config-options.ts
@@ -0,0 +1,37 @@
+import {
+ CreateFormPropContributorCallback,
+ EditFormPropContributorCallback,
+ EntityActionContributorCallback,
+ EntityPropContributorCallback,
+ ToolbarActionContributorCallback,
+} from '@abp/ng.theme.shared/extensions';
+import { eTenantManagementComponents } from '../enums/components';
+import { TenantCreateDto, TenantDto, TenantUpdateDto } from '../proxy/models';
+
+export type TenantManagementEntityActionContributors = Partial<{
+ [eTenantManagementComponents.Tenants]: EntityActionContributorCallback[];
+}>;
+
+export type TenantManagementToolbarActionContributors = Partial<{
+ [eTenantManagementComponents.Tenants]: ToolbarActionContributorCallback[];
+}>;
+
+export type TenantManagementEntityPropContributors = Partial<{
+ [eTenantManagementComponents.Tenants]: EntityPropContributorCallback[];
+}>;
+
+export type TenantManagementCreateFormPropContributors = Partial<{
+ [eTenantManagementComponents.Tenants]: CreateFormPropContributorCallback[];
+}>;
+
+export type TenantManagementEditFormPropContributors = Partial<{
+ [eTenantManagementComponents.Tenants]: EditFormPropContributorCallback[];
+}>;
+
+export interface TenantManagementConfigOptions {
+ entityActionContributors?: TenantManagementEntityActionContributors;
+ toolbarActionContributors?: TenantManagementToolbarActionContributors;
+ entityPropContributors?: TenantManagementEntityPropContributors;
+ createFormPropContributors?: TenantManagementCreateFormPropContributors;
+ editFormPropContributors?: TenantManagementEditFormPropContributors;
+}
diff --git a/npm/ng-packs/nx/ng-packs/packages/tenant-management/src/lib/models/index.ts b/npm/ng-packs/nx/ng-packs/packages/tenant-management/src/lib/models/index.ts
new file mode 100644
index 0000000000..2385684df7
--- /dev/null
+++ b/npm/ng-packs/nx/ng-packs/packages/tenant-management/src/lib/models/index.ts
@@ -0,0 +1,2 @@
+export * from './tenant-management';
+export * from './config-options';
diff --git a/npm/ng-packs/nx/ng-packs/packages/tenant-management/src/lib/models/tenant-management.ts b/npm/ng-packs/nx/ng-packs/packages/tenant-management/src/lib/models/tenant-management.ts
new file mode 100644
index 0000000000..3771d94e23
--- /dev/null
+++ b/npm/ng-packs/nx/ng-packs/packages/tenant-management/src/lib/models/tenant-management.ts
@@ -0,0 +1,9 @@
+import { PagedResultDto } from '@abp/ng.core';
+import { TenantDto } from '../proxy/models';
+
+export namespace TenantManagement {
+ export interface State {
+ result: PagedResultDto;
+ selectedItem: TenantDto;
+ }
+}
diff --git a/npm/ng-packs/nx/ng-packs/packages/tenant-management/src/lib/proxy/README.md b/npm/ng-packs/nx/ng-packs/packages/tenant-management/src/lib/proxy/README.md
new file mode 100644
index 0000000000..767dfd0f7c
--- /dev/null
+++ b/npm/ng-packs/nx/ng-packs/packages/tenant-management/src/lib/proxy/README.md
@@ -0,0 +1,17 @@
+# Proxy Generation Output
+
+This directory includes the output of the latest proxy generation.
+The files and folders in it will be overwritten when proxy generation is run again.
+Therefore, please do not place your own content in this folder.
+
+In addition, `generate-proxy.json` works like a lock file.
+It includes information used by the proxy generator, so please do not delete or modify it.
+
+Finally, the name of the files and folders should not be changed for two reasons:
+- Proxy generator will keep creating them at those paths and you will have multiple copies of the same content.
+- ABP Suite generates files which include imports from this folder.
+
+> **Important Notice:** If you are building a module and are planning to publish to npm,
+> some of the generated proxies are likely to be exported from public-api.ts file. In such a case,
+> please make sure you export files directly and not from barrel exports. In other words,
+> do not include index.ts exports in your public-api.ts exports.
diff --git a/npm/ng-packs/nx/ng-packs/packages/tenant-management/src/lib/proxy/generate-proxy.json b/npm/ng-packs/nx/ng-packs/packages/tenant-management/src/lib/proxy/generate-proxy.json
new file mode 100644
index 0000000000..6fd332abe4
--- /dev/null
+++ b/npm/ng-packs/nx/ng-packs/packages/tenant-management/src/lib/proxy/generate-proxy.json
@@ -0,0 +1,4210 @@
+{
+ "generated": [
+ "multi-tenancy"
+ ],
+ "modules": {
+ "identity": {
+ "rootPath": "identity",
+ "remoteServiceName": "AbpIdentity",
+ "controllers": {
+ "Volo.Abp.Identity.IdentityRoleController": {
+ "controllerName": "IdentityRole",
+ "type": "Volo.Abp.Identity.IdentityRoleController",
+ "interfaces": [
+ {
+ "type": "Volo.Abp.Identity.IIdentityRoleAppService"
+ }
+ ],
+ "actions": {
+ "GetAllListAsync": {
+ "uniqueName": "GetAllListAsync",
+ "name": "GetAllListAsync",
+ "httpMethod": "GET",
+ "url": "api/identity/roles/all",
+ "supportedVersions": [],
+ "parametersOnMethod": [],
+ "parameters": [],
+ "returnValue": {
+ "type": "Volo.Abp.Application.Dtos.ListResultDto",
+ "typeSimple": "Volo.Abp.Application.Dtos.ListResultDto"
+ }
+ },
+ "GetListAsyncByInput": {
+ "uniqueName": "GetListAsyncByInput",
+ "name": "GetListAsync",
+ "httpMethod": "GET",
+ "url": "api/identity/roles",
+ "supportedVersions": [],
+ "parametersOnMethod": [
+ {
+ "name": "input",
+ "typeAsString": "Volo.Abp.Application.Dtos.PagedAndSortedResultRequestDto, Volo.Abp.Ddd.Application.Contracts",
+ "type": "Volo.Abp.Application.Dtos.PagedAndSortedResultRequestDto",
+ "typeSimple": "Volo.Abp.Application.Dtos.PagedAndSortedResultRequestDto",
+ "isOptional": false,
+ "defaultValue": null
+ }
+ ],
+ "parameters": [
+ {
+ "nameOnMethod": "input",
+ "name": "Sorting",
+ "type": "System.String",
+ "typeSimple": "string",
+ "isOptional": false,
+ "defaultValue": null,
+ "constraintTypes": null,
+ "bindingSourceId": "ModelBinding",
+ "descriptorName": "input"
+ },
+ {
+ "nameOnMethod": "input",
+ "name": "SkipCount",
+ "type": "System.Int32",
+ "typeSimple": "number",
+ "isOptional": false,
+ "defaultValue": null,
+ "constraintTypes": null,
+ "bindingSourceId": "ModelBinding",
+ "descriptorName": "input"
+ },
+ {
+ "nameOnMethod": "input",
+ "name": "MaxResultCount",
+ "type": "System.Int32",
+ "typeSimple": "number",
+ "isOptional": false,
+ "defaultValue": null,
+ "constraintTypes": null,
+ "bindingSourceId": "ModelBinding",
+ "descriptorName": "input"
+ }
+ ],
+ "returnValue": {
+ "type": "Volo.Abp.Application.Dtos.PagedResultDto",
+ "typeSimple": "Volo.Abp.Application.Dtos.PagedResultDto"
+ }
+ },
+ "GetAsyncById": {
+ "uniqueName": "GetAsyncById",
+ "name": "GetAsync",
+ "httpMethod": "GET",
+ "url": "api/identity/roles/{id}",
+ "supportedVersions": [],
+ "parametersOnMethod": [
+ {
+ "name": "id",
+ "typeAsString": "System.Guid, System.Private.CoreLib",
+ "type": "System.Guid",
+ "typeSimple": "string",
+ "isOptional": false,
+ "defaultValue": null
+ }
+ ],
+ "parameters": [
+ {
+ "nameOnMethod": "id",
+ "name": "id",
+ "type": "System.Guid",
+ "typeSimple": "string",
+ "isOptional": false,
+ "defaultValue": null,
+ "constraintTypes": [],
+ "bindingSourceId": "Path",
+ "descriptorName": ""
+ }
+ ],
+ "returnValue": {
+ "type": "Volo.Abp.Identity.IdentityRoleDto",
+ "typeSimple": "Volo.Abp.Identity.IdentityRoleDto"
+ }
+ },
+ "CreateAsyncByInput": {
+ "uniqueName": "CreateAsyncByInput",
+ "name": "CreateAsync",
+ "httpMethod": "POST",
+ "url": "api/identity/roles",
+ "supportedVersions": [],
+ "parametersOnMethod": [
+ {
+ "name": "input",
+ "typeAsString": "Volo.Abp.Identity.IdentityRoleCreateDto, Volo.Abp.Identity.Application.Contracts",
+ "type": "Volo.Abp.Identity.IdentityRoleCreateDto",
+ "typeSimple": "Volo.Abp.Identity.IdentityRoleCreateDto",
+ "isOptional": false,
+ "defaultValue": null
+ }
+ ],
+ "parameters": [
+ {
+ "nameOnMethod": "input",
+ "name": "input",
+ "type": "Volo.Abp.Identity.IdentityRoleCreateDto",
+ "typeSimple": "Volo.Abp.Identity.IdentityRoleCreateDto",
+ "isOptional": false,
+ "defaultValue": null,
+ "constraintTypes": null,
+ "bindingSourceId": "Body",
+ "descriptorName": ""
+ }
+ ],
+ "returnValue": {
+ "type": "Volo.Abp.Identity.IdentityRoleDto",
+ "typeSimple": "Volo.Abp.Identity.IdentityRoleDto"
+ }
+ },
+ "UpdateAsyncByIdAndInput": {
+ "uniqueName": "UpdateAsyncByIdAndInput",
+ "name": "UpdateAsync",
+ "httpMethod": "PUT",
+ "url": "api/identity/roles/{id}",
+ "supportedVersions": [],
+ "parametersOnMethod": [
+ {
+ "name": "id",
+ "typeAsString": "System.Guid, System.Private.CoreLib",
+ "type": "System.Guid",
+ "typeSimple": "string",
+ "isOptional": false,
+ "defaultValue": null
+ },
+ {
+ "name": "input",
+ "typeAsString": "Volo.Abp.Identity.IdentityRoleUpdateDto, Volo.Abp.Identity.Application.Contracts",
+ "type": "Volo.Abp.Identity.IdentityRoleUpdateDto",
+ "typeSimple": "Volo.Abp.Identity.IdentityRoleUpdateDto",
+ "isOptional": false,
+ "defaultValue": null
+ }
+ ],
+ "parameters": [
+ {
+ "nameOnMethod": "id",
+ "name": "id",
+ "type": "System.Guid",
+ "typeSimple": "string",
+ "isOptional": false,
+ "defaultValue": null,
+ "constraintTypes": [],
+ "bindingSourceId": "Path",
+ "descriptorName": ""
+ },
+ {
+ "nameOnMethod": "input",
+ "name": "input",
+ "type": "Volo.Abp.Identity.IdentityRoleUpdateDto",
+ "typeSimple": "Volo.Abp.Identity.IdentityRoleUpdateDto",
+ "isOptional": false,
+ "defaultValue": null,
+ "constraintTypes": null,
+ "bindingSourceId": "Body",
+ "descriptorName": ""
+ }
+ ],
+ "returnValue": {
+ "type": "Volo.Abp.Identity.IdentityRoleDto",
+ "typeSimple": "Volo.Abp.Identity.IdentityRoleDto"
+ }
+ },
+ "DeleteAsyncById": {
+ "uniqueName": "DeleteAsyncById",
+ "name": "DeleteAsync",
+ "httpMethod": "DELETE",
+ "url": "api/identity/roles/{id}",
+ "supportedVersions": [],
+ "parametersOnMethod": [
+ {
+ "name": "id",
+ "typeAsString": "System.Guid, System.Private.CoreLib",
+ "type": "System.Guid",
+ "typeSimple": "string",
+ "isOptional": false,
+ "defaultValue": null
+ }
+ ],
+ "parameters": [
+ {
+ "nameOnMethod": "id",
+ "name": "id",
+ "type": "System.Guid",
+ "typeSimple": "string",
+ "isOptional": false,
+ "defaultValue": null,
+ "constraintTypes": [],
+ "bindingSourceId": "Path",
+ "descriptorName": ""
+ }
+ ],
+ "returnValue": {
+ "type": "System.Void",
+ "typeSimple": "System.Void"
+ }
+ }
+ }
+ },
+ "Volo.Abp.Identity.IdentityUserController": {
+ "controllerName": "IdentityUser",
+ "type": "Volo.Abp.Identity.IdentityUserController",
+ "interfaces": [
+ {
+ "type": "Volo.Abp.Identity.IIdentityUserAppService"
+ }
+ ],
+ "actions": {
+ "GetAsyncById": {
+ "uniqueName": "GetAsyncById",
+ "name": "GetAsync",
+ "httpMethod": "GET",
+ "url": "api/identity/users/{id}",
+ "supportedVersions": [],
+ "parametersOnMethod": [
+ {
+ "name": "id",
+ "typeAsString": "System.Guid, System.Private.CoreLib",
+ "type": "System.Guid",
+ "typeSimple": "string",
+ "isOptional": false,
+ "defaultValue": null
+ }
+ ],
+ "parameters": [
+ {
+ "nameOnMethod": "id",
+ "name": "id",
+ "type": "System.Guid",
+ "typeSimple": "string",
+ "isOptional": false,
+ "defaultValue": null,
+ "constraintTypes": [],
+ "bindingSourceId": "Path",
+ "descriptorName": ""
+ }
+ ],
+ "returnValue": {
+ "type": "Volo.Abp.Identity.IdentityUserDto",
+ "typeSimple": "Volo.Abp.Identity.IdentityUserDto"
+ }
+ },
+ "GetListAsyncByInput": {
+ "uniqueName": "GetListAsyncByInput",
+ "name": "GetListAsync",
+ "httpMethod": "GET",
+ "url": "api/identity/users",
+ "supportedVersions": [],
+ "parametersOnMethod": [
+ {
+ "name": "input",
+ "typeAsString": "Volo.Abp.Identity.GetIdentityUsersInput, Volo.Abp.Identity.Application.Contracts",
+ "type": "Volo.Abp.Identity.GetIdentityUsersInput",
+ "typeSimple": "Volo.Abp.Identity.GetIdentityUsersInput",
+ "isOptional": false,
+ "defaultValue": null
+ }
+ ],
+ "parameters": [
+ {
+ "nameOnMethod": "input",
+ "name": "Filter",
+ "type": "System.String",
+ "typeSimple": "string",
+ "isOptional": false,
+ "defaultValue": null,
+ "constraintTypes": null,
+ "bindingSourceId": "ModelBinding",
+ "descriptorName": "input"
+ },
+ {
+ "nameOnMethod": "input",
+ "name": "Sorting",
+ "type": "System.String",
+ "typeSimple": "string",
+ "isOptional": false,
+ "defaultValue": null,
+ "constraintTypes": null,
+ "bindingSourceId": "ModelBinding",
+ "descriptorName": "input"
+ },
+ {
+ "nameOnMethod": "input",
+ "name": "SkipCount",
+ "type": "System.Int32",
+ "typeSimple": "number",
+ "isOptional": false,
+ "defaultValue": null,
+ "constraintTypes": null,
+ "bindingSourceId": "ModelBinding",
+ "descriptorName": "input"
+ },
+ {
+ "nameOnMethod": "input",
+ "name": "MaxResultCount",
+ "type": "System.Int32",
+ "typeSimple": "number",
+ "isOptional": false,
+ "defaultValue": null,
+ "constraintTypes": null,
+ "bindingSourceId": "ModelBinding",
+ "descriptorName": "input"
+ }
+ ],
+ "returnValue": {
+ "type": "Volo.Abp.Application.Dtos.PagedResultDto",
+ "typeSimple": "Volo.Abp.Application.Dtos.PagedResultDto"
+ }
+ },
+ "CreateAsyncByInput": {
+ "uniqueName": "CreateAsyncByInput",
+ "name": "CreateAsync",
+ "httpMethod": "POST",
+ "url": "api/identity/users",
+ "supportedVersions": [],
+ "parametersOnMethod": [
+ {
+ "name": "input",
+ "typeAsString": "Volo.Abp.Identity.IdentityUserCreateDto, Volo.Abp.Identity.Application.Contracts",
+ "type": "Volo.Abp.Identity.IdentityUserCreateDto",
+ "typeSimple": "Volo.Abp.Identity.IdentityUserCreateDto",
+ "isOptional": false,
+ "defaultValue": null
+ }
+ ],
+ "parameters": [
+ {
+ "nameOnMethod": "input",
+ "name": "input",
+ "type": "Volo.Abp.Identity.IdentityUserCreateDto",
+ "typeSimple": "Volo.Abp.Identity.IdentityUserCreateDto",
+ "isOptional": false,
+ "defaultValue": null,
+ "constraintTypes": null,
+ "bindingSourceId": "Body",
+ "descriptorName": ""
+ }
+ ],
+ "returnValue": {
+ "type": "Volo.Abp.Identity.IdentityUserDto",
+ "typeSimple": "Volo.Abp.Identity.IdentityUserDto"
+ }
+ },
+ "UpdateAsyncByIdAndInput": {
+ "uniqueName": "UpdateAsyncByIdAndInput",
+ "name": "UpdateAsync",
+ "httpMethod": "PUT",
+ "url": "api/identity/users/{id}",
+ "supportedVersions": [],
+ "parametersOnMethod": [
+ {
+ "name": "id",
+ "typeAsString": "System.Guid, System.Private.CoreLib",
+ "type": "System.Guid",
+ "typeSimple": "string",
+ "isOptional": false,
+ "defaultValue": null
+ },
+ {
+ "name": "input",
+ "typeAsString": "Volo.Abp.Identity.IdentityUserUpdateDto, Volo.Abp.Identity.Application.Contracts",
+ "type": "Volo.Abp.Identity.IdentityUserUpdateDto",
+ "typeSimple": "Volo.Abp.Identity.IdentityUserUpdateDto",
+ "isOptional": false,
+ "defaultValue": null
+ }
+ ],
+ "parameters": [
+ {
+ "nameOnMethod": "id",
+ "name": "id",
+ "type": "System.Guid",
+ "typeSimple": "string",
+ "isOptional": false,
+ "defaultValue": null,
+ "constraintTypes": [],
+ "bindingSourceId": "Path",
+ "descriptorName": ""
+ },
+ {
+ "nameOnMethod": "input",
+ "name": "input",
+ "type": "Volo.Abp.Identity.IdentityUserUpdateDto",
+ "typeSimple": "Volo.Abp.Identity.IdentityUserUpdateDto",
+ "isOptional": false,
+ "defaultValue": null,
+ "constraintTypes": null,
+ "bindingSourceId": "Body",
+ "descriptorName": ""
+ }
+ ],
+ "returnValue": {
+ "type": "Volo.Abp.Identity.IdentityUserDto",
+ "typeSimple": "Volo.Abp.Identity.IdentityUserDto"
+ }
+ },
+ "DeleteAsyncById": {
+ "uniqueName": "DeleteAsyncById",
+ "name": "DeleteAsync",
+ "httpMethod": "DELETE",
+ "url": "api/identity/users/{id}",
+ "supportedVersions": [],
+ "parametersOnMethod": [
+ {
+ "name": "id",
+ "typeAsString": "System.Guid, System.Private.CoreLib",
+ "type": "System.Guid",
+ "typeSimple": "string",
+ "isOptional": false,
+ "defaultValue": null
+ }
+ ],
+ "parameters": [
+ {
+ "nameOnMethod": "id",
+ "name": "id",
+ "type": "System.Guid",
+ "typeSimple": "string",
+ "isOptional": false,
+ "defaultValue": null,
+ "constraintTypes": [],
+ "bindingSourceId": "Path",
+ "descriptorName": ""
+ }
+ ],
+ "returnValue": {
+ "type": "System.Void",
+ "typeSimple": "System.Void"
+ }
+ },
+ "GetRolesAsyncById": {
+ "uniqueName": "GetRolesAsyncById",
+ "name": "GetRolesAsync",
+ "httpMethod": "GET",
+ "url": "api/identity/users/{id}/roles",
+ "supportedVersions": [],
+ "parametersOnMethod": [
+ {
+ "name": "id",
+ "typeAsString": "System.Guid, System.Private.CoreLib",
+ "type": "System.Guid",
+ "typeSimple": "string",
+ "isOptional": false,
+ "defaultValue": null
+ }
+ ],
+ "parameters": [
+ {
+ "nameOnMethod": "id",
+ "name": "id",
+ "type": "System.Guid",
+ "typeSimple": "string",
+ "isOptional": false,
+ "defaultValue": null,
+ "constraintTypes": [],
+ "bindingSourceId": "Path",
+ "descriptorName": ""
+ }
+ ],
+ "returnValue": {
+ "type": "Volo.Abp.Application.Dtos.ListResultDto",
+ "typeSimple": "Volo.Abp.Application.Dtos.ListResultDto"
+ }
+ },
+ "GetAssignableRolesAsync": {
+ "uniqueName": "GetAssignableRolesAsync",
+ "name": "GetAssignableRolesAsync",
+ "httpMethod": "GET",
+ "url": "api/identity/users/assignable-roles",
+ "supportedVersions": [],
+ "parametersOnMethod": [],
+ "parameters": [],
+ "returnValue": {
+ "type": "Volo.Abp.Application.Dtos.ListResultDto",
+ "typeSimple": "Volo.Abp.Application.Dtos.ListResultDto"
+ }
+ },
+ "UpdateRolesAsyncByIdAndInput": {
+ "uniqueName": "UpdateRolesAsyncByIdAndInput",
+ "name": "UpdateRolesAsync",
+ "httpMethod": "PUT",
+ "url": "api/identity/users/{id}/roles",
+ "supportedVersions": [],
+ "parametersOnMethod": [
+ {
+ "name": "id",
+ "typeAsString": "System.Guid, System.Private.CoreLib",
+ "type": "System.Guid",
+ "typeSimple": "string",
+ "isOptional": false,
+ "defaultValue": null
+ },
+ {
+ "name": "input",
+ "typeAsString": "Volo.Abp.Identity.IdentityUserUpdateRolesDto, Volo.Abp.Identity.Application.Contracts",
+ "type": "Volo.Abp.Identity.IdentityUserUpdateRolesDto",
+ "typeSimple": "Volo.Abp.Identity.IdentityUserUpdateRolesDto",
+ "isOptional": false,
+ "defaultValue": null
+ }
+ ],
+ "parameters": [
+ {
+ "nameOnMethod": "id",
+ "name": "id",
+ "type": "System.Guid",
+ "typeSimple": "string",
+ "isOptional": false,
+ "defaultValue": null,
+ "constraintTypes": [],
+ "bindingSourceId": "Path",
+ "descriptorName": ""
+ },
+ {
+ "nameOnMethod": "input",
+ "name": "input",
+ "type": "Volo.Abp.Identity.IdentityUserUpdateRolesDto",
+ "typeSimple": "Volo.Abp.Identity.IdentityUserUpdateRolesDto",
+ "isOptional": false,
+ "defaultValue": null,
+ "constraintTypes": null,
+ "bindingSourceId": "Body",
+ "descriptorName": ""
+ }
+ ],
+ "returnValue": {
+ "type": "System.Void",
+ "typeSimple": "System.Void"
+ }
+ },
+ "FindByUsernameAsyncByUsername": {
+ "uniqueName": "FindByUsernameAsyncByUsername",
+ "name": "FindByUsernameAsync",
+ "httpMethod": "GET",
+ "url": "api/identity/users/by-username/{userName}",
+ "supportedVersions": [],
+ "parametersOnMethod": [
+ {
+ "name": "username",
+ "typeAsString": "System.String, System.Private.CoreLib",
+ "type": "System.String",
+ "typeSimple": "string",
+ "isOptional": false,
+ "defaultValue": null
+ }
+ ],
+ "parameters": [
+ {
+ "nameOnMethod": "username",
+ "name": "username",
+ "type": "System.String",
+ "typeSimple": "string",
+ "isOptional": false,
+ "defaultValue": null,
+ "constraintTypes": [],
+ "bindingSourceId": "Path",
+ "descriptorName": ""
+ }
+ ],
+ "returnValue": {
+ "type": "Volo.Abp.Identity.IdentityUserDto",
+ "typeSimple": "Volo.Abp.Identity.IdentityUserDto"
+ }
+ },
+ "FindByEmailAsyncByEmail": {
+ "uniqueName": "FindByEmailAsyncByEmail",
+ "name": "FindByEmailAsync",
+ "httpMethod": "GET",
+ "url": "api/identity/users/by-email/{email}",
+ "supportedVersions": [],
+ "parametersOnMethod": [
+ {
+ "name": "email",
+ "typeAsString": "System.String, System.Private.CoreLib",
+ "type": "System.String",
+ "typeSimple": "string",
+ "isOptional": false,
+ "defaultValue": null
+ }
+ ],
+ "parameters": [
+ {
+ "nameOnMethod": "email",
+ "name": "email",
+ "type": "System.String",
+ "typeSimple": "string",
+ "isOptional": false,
+ "defaultValue": null,
+ "constraintTypes": [],
+ "bindingSourceId": "Path",
+ "descriptorName": ""
+ }
+ ],
+ "returnValue": {
+ "type": "Volo.Abp.Identity.IdentityUserDto",
+ "typeSimple": "Volo.Abp.Identity.IdentityUserDto"
+ }
+ }
+ }
+ },
+ "Volo.Abp.Identity.IdentityUserLookupController": {
+ "controllerName": "IdentityUserLookup",
+ "type": "Volo.Abp.Identity.IdentityUserLookupController",
+ "interfaces": [
+ {
+ "type": "Volo.Abp.Identity.IIdentityUserLookupAppService"
+ }
+ ],
+ "actions": {
+ "FindByIdAsyncById": {
+ "uniqueName": "FindByIdAsyncById",
+ "name": "FindByIdAsync",
+ "httpMethod": "GET",
+ "url": "api/identity/users/lookup/{id}",
+ "supportedVersions": [],
+ "parametersOnMethod": [
+ {
+ "name": "id",
+ "typeAsString": "System.Guid, System.Private.CoreLib",
+ "type": "System.Guid",
+ "typeSimple": "string",
+ "isOptional": false,
+ "defaultValue": null
+ }
+ ],
+ "parameters": [
+ {
+ "nameOnMethod": "id",
+ "name": "id",
+ "type": "System.Guid",
+ "typeSimple": "string",
+ "isOptional": false,
+ "defaultValue": null,
+ "constraintTypes": [],
+ "bindingSourceId": "Path",
+ "descriptorName": ""
+ }
+ ],
+ "returnValue": {
+ "type": "Volo.Abp.Users.UserData",
+ "typeSimple": "Volo.Abp.Users.UserData"
+ }
+ },
+ "FindByUserNameAsyncByUserName": {
+ "uniqueName": "FindByUserNameAsyncByUserName",
+ "name": "FindByUserNameAsync",
+ "httpMethod": "GET",
+ "url": "api/identity/users/lookup/by-username/{userName}",
+ "supportedVersions": [],
+ "parametersOnMethod": [
+ {
+ "name": "userName",
+ "typeAsString": "System.String, System.Private.CoreLib",
+ "type": "System.String",
+ "typeSimple": "string",
+ "isOptional": false,
+ "defaultValue": null
+ }
+ ],
+ "parameters": [
+ {
+ "nameOnMethod": "userName",
+ "name": "userName",
+ "type": "System.String",
+ "typeSimple": "string",
+ "isOptional": false,
+ "defaultValue": null,
+ "constraintTypes": [],
+ "bindingSourceId": "Path",
+ "descriptorName": ""
+ }
+ ],
+ "returnValue": {
+ "type": "Volo.Abp.Users.UserData",
+ "typeSimple": "Volo.Abp.Users.UserData"
+ }
+ },
+ "SearchAsyncByInput": {
+ "uniqueName": "SearchAsyncByInput",
+ "name": "SearchAsync",
+ "httpMethod": "GET",
+ "url": "api/identity/users/lookup/search",
+ "supportedVersions": [],
+ "parametersOnMethod": [
+ {
+ "name": "input",
+ "typeAsString": "Volo.Abp.Identity.UserLookupSearchInputDto, Volo.Abp.Identity.Application.Contracts",
+ "type": "Volo.Abp.Identity.UserLookupSearchInputDto",
+ "typeSimple": "Volo.Abp.Identity.UserLookupSearchInputDto",
+ "isOptional": false,
+ "defaultValue": null
+ }
+ ],
+ "parameters": [
+ {
+ "nameOnMethod": "input",
+ "name": "Filter",
+ "type": "System.String",
+ "typeSimple": "string",
+ "isOptional": false,
+ "defaultValue": null,
+ "constraintTypes": null,
+ "bindingSourceId": "ModelBinding",
+ "descriptorName": "input"
+ },
+ {
+ "nameOnMethod": "input",
+ "name": "Sorting",
+ "type": "System.String",
+ "typeSimple": "string",
+ "isOptional": false,
+ "defaultValue": null,
+ "constraintTypes": null,
+ "bindingSourceId": "ModelBinding",
+ "descriptorName": "input"
+ },
+ {
+ "nameOnMethod": "input",
+ "name": "SkipCount",
+ "type": "System.Int32",
+ "typeSimple": "number",
+ "isOptional": false,
+ "defaultValue": null,
+ "constraintTypes": null,
+ "bindingSourceId": "ModelBinding",
+ "descriptorName": "input"
+ },
+ {
+ "nameOnMethod": "input",
+ "name": "MaxResultCount",
+ "type": "System.Int32",
+ "typeSimple": "number",
+ "isOptional": false,
+ "defaultValue": null,
+ "constraintTypes": null,
+ "bindingSourceId": "ModelBinding",
+ "descriptorName": "input"
+ }
+ ],
+ "returnValue": {
+ "type": "Volo.Abp.Application.Dtos.ListResultDto",
+ "typeSimple": "Volo.Abp.Application.Dtos.ListResultDto"
+ }
+ },
+ "GetCountAsyncByInput": {
+ "uniqueName": "GetCountAsyncByInput",
+ "name": "GetCountAsync",
+ "httpMethod": "GET",
+ "url": "api/identity/users/lookup/count",
+ "supportedVersions": [],
+ "parametersOnMethod": [
+ {
+ "name": "input",
+ "typeAsString": "Volo.Abp.Identity.UserLookupCountInputDto, Volo.Abp.Identity.Application.Contracts",
+ "type": "Volo.Abp.Identity.UserLookupCountInputDto",
+ "typeSimple": "Volo.Abp.Identity.UserLookupCountInputDto",
+ "isOptional": false,
+ "defaultValue": null
+ }
+ ],
+ "parameters": [
+ {
+ "nameOnMethod": "input",
+ "name": "Filter",
+ "type": "System.String",
+ "typeSimple": "string",
+ "isOptional": false,
+ "defaultValue": null,
+ "constraintTypes": null,
+ "bindingSourceId": "ModelBinding",
+ "descriptorName": "input"
+ }
+ ],
+ "returnValue": {
+ "type": "System.Int64",
+ "typeSimple": "number"
+ }
+ }
+ }
+ },
+ "Volo.Abp.Identity.ProfileController": {
+ "controllerName": "Profile",
+ "type": "Volo.Abp.Identity.ProfileController",
+ "interfaces": [
+ {
+ "type": "Volo.Abp.Identity.IProfileAppService"
+ }
+ ],
+ "actions": {
+ "GetAsync": {
+ "uniqueName": "GetAsync",
+ "name": "GetAsync",
+ "httpMethod": "GET",
+ "url": "api/identity/my-profile",
+ "supportedVersions": [],
+ "parametersOnMethod": [],
+ "parameters": [],
+ "returnValue": {
+ "type": "Volo.Abp.Identity.ProfileDto",
+ "typeSimple": "Volo.Abp.Identity.ProfileDto"
+ }
+ },
+ "UpdateAsyncByInput": {
+ "uniqueName": "UpdateAsyncByInput",
+ "name": "UpdateAsync",
+ "httpMethod": "PUT",
+ "url": "api/identity/my-profile",
+ "supportedVersions": [],
+ "parametersOnMethod": [
+ {
+ "name": "input",
+ "typeAsString": "Volo.Abp.Identity.UpdateProfileDto, Volo.Abp.Identity.Application.Contracts",
+ "type": "Volo.Abp.Identity.UpdateProfileDto",
+ "typeSimple": "Volo.Abp.Identity.UpdateProfileDto",
+ "isOptional": false,
+ "defaultValue": null
+ }
+ ],
+ "parameters": [
+ {
+ "nameOnMethod": "input",
+ "name": "input",
+ "type": "Volo.Abp.Identity.UpdateProfileDto",
+ "typeSimple": "Volo.Abp.Identity.UpdateProfileDto",
+ "isOptional": false,
+ "defaultValue": null,
+ "constraintTypes": null,
+ "bindingSourceId": "Body",
+ "descriptorName": ""
+ }
+ ],
+ "returnValue": {
+ "type": "Volo.Abp.Identity.ProfileDto",
+ "typeSimple": "Volo.Abp.Identity.ProfileDto"
+ }
+ },
+ "ChangePasswordAsyncByInput": {
+ "uniqueName": "ChangePasswordAsyncByInput",
+ "name": "ChangePasswordAsync",
+ "httpMethod": "POST",
+ "url": "api/identity/my-profile/change-password",
+ "supportedVersions": [],
+ "parametersOnMethod": [
+ {
+ "name": "input",
+ "typeAsString": "Volo.Abp.Identity.ChangePasswordInput, Volo.Abp.Identity.Application.Contracts",
+ "type": "Volo.Abp.Identity.ChangePasswordInput",
+ "typeSimple": "Volo.Abp.Identity.ChangePasswordInput",
+ "isOptional": false,
+ "defaultValue": null
+ }
+ ],
+ "parameters": [
+ {
+ "nameOnMethod": "input",
+ "name": "input",
+ "type": "Volo.Abp.Identity.ChangePasswordInput",
+ "typeSimple": "Volo.Abp.Identity.ChangePasswordInput",
+ "isOptional": false,
+ "defaultValue": null,
+ "constraintTypes": null,
+ "bindingSourceId": "Body",
+ "descriptorName": ""
+ }
+ ],
+ "returnValue": {
+ "type": "System.Void",
+ "typeSimple": "System.Void"
+ }
+ }
+ }
+ }
+ }
+ },
+ "featureManagement": {
+ "rootPath": "featureManagement",
+ "remoteServiceName": "AbpFeatureManagement",
+ "controllers": {
+ "Volo.Abp.FeatureManagement.FeaturesController": {
+ "controllerName": "Features",
+ "type": "Volo.Abp.FeatureManagement.FeaturesController",
+ "interfaces": [
+ {
+ "type": "Volo.Abp.FeatureManagement.IFeatureAppService"
+ }
+ ],
+ "actions": {
+ "GetAsyncByProviderNameAndProviderKey": {
+ "uniqueName": "GetAsyncByProviderNameAndProviderKey",
+ "name": "GetAsync",
+ "httpMethod": "GET",
+ "url": "api/feature-management/features",
+ "supportedVersions": [],
+ "parametersOnMethod": [
+ {
+ "name": "providerName",
+ "typeAsString": "System.String, System.Private.CoreLib",
+ "type": "System.String",
+ "typeSimple": "string",
+ "isOptional": false,
+ "defaultValue": null
+ },
+ {
+ "name": "providerKey",
+ "typeAsString": "System.String, System.Private.CoreLib",
+ "type": "System.String",
+ "typeSimple": "string",
+ "isOptional": false,
+ "defaultValue": null
+ }
+ ],
+ "parameters": [
+ {
+ "nameOnMethod": "providerName",
+ "name": "providerName",
+ "type": "System.String",
+ "typeSimple": "string",
+ "isOptional": false,
+ "defaultValue": null,
+ "constraintTypes": null,
+ "bindingSourceId": "ModelBinding",
+ "descriptorName": ""
+ },
+ {
+ "nameOnMethod": "providerKey",
+ "name": "providerKey",
+ "type": "System.String",
+ "typeSimple": "string",
+ "isOptional": false,
+ "defaultValue": null,
+ "constraintTypes": null,
+ "bindingSourceId": "ModelBinding",
+ "descriptorName": ""
+ }
+ ],
+ "returnValue": {
+ "type": "Volo.Abp.FeatureManagement.GetFeatureListResultDto",
+ "typeSimple": "Volo.Abp.FeatureManagement.GetFeatureListResultDto"
+ }
+ },
+ "UpdateAsyncByProviderNameAndProviderKeyAndInput": {
+ "uniqueName": "UpdateAsyncByProviderNameAndProviderKeyAndInput",
+ "name": "UpdateAsync",
+ "httpMethod": "PUT",
+ "url": "api/feature-management/features",
+ "supportedVersions": [],
+ "parametersOnMethod": [
+ {
+ "name": "providerName",
+ "typeAsString": "System.String, System.Private.CoreLib",
+ "type": "System.String",
+ "typeSimple": "string",
+ "isOptional": false,
+ "defaultValue": null
+ },
+ {
+ "name": "providerKey",
+ "typeAsString": "System.String, System.Private.CoreLib",
+ "type": "System.String",
+ "typeSimple": "string",
+ "isOptional": false,
+ "defaultValue": null
+ },
+ {
+ "name": "input",
+ "typeAsString": "Volo.Abp.FeatureManagement.UpdateFeaturesDto, Volo.Abp.FeatureManagement.Application.Contracts",
+ "type": "Volo.Abp.FeatureManagement.UpdateFeaturesDto",
+ "typeSimple": "Volo.Abp.FeatureManagement.UpdateFeaturesDto",
+ "isOptional": false,
+ "defaultValue": null
+ }
+ ],
+ "parameters": [
+ {
+ "nameOnMethod": "providerName",
+ "name": "providerName",
+ "type": "System.String",
+ "typeSimple": "string",
+ "isOptional": false,
+ "defaultValue": null,
+ "constraintTypes": null,
+ "bindingSourceId": "ModelBinding",
+ "descriptorName": ""
+ },
+ {
+ "nameOnMethod": "providerKey",
+ "name": "providerKey",
+ "type": "System.String",
+ "typeSimple": "string",
+ "isOptional": false,
+ "defaultValue": null,
+ "constraintTypes": null,
+ "bindingSourceId": "ModelBinding",
+ "descriptorName": ""
+ },
+ {
+ "nameOnMethod": "input",
+ "name": "input",
+ "type": "Volo.Abp.FeatureManagement.UpdateFeaturesDto",
+ "typeSimple": "Volo.Abp.FeatureManagement.UpdateFeaturesDto",
+ "isOptional": false,
+ "defaultValue": null,
+ "constraintTypes": null,
+ "bindingSourceId": "Body",
+ "descriptorName": ""
+ }
+ ],
+ "returnValue": {
+ "type": "System.Void",
+ "typeSimple": "System.Void"
+ }
+ }
+ }
+ }
+ }
+ },
+ "account": {
+ "rootPath": "account",
+ "remoteServiceName": "AbpAccount",
+ "controllers": {
+ "Volo.Abp.Account.Web.Areas.Account.Controllers.AccountController": {
+ "controllerName": "Account",
+ "type": "Volo.Abp.Account.Web.Areas.Account.Controllers.AccountController",
+ "interfaces": [],
+ "actions": {
+ "LoginByLogin": {
+ "uniqueName": "LoginByLogin",
+ "name": "Login",
+ "httpMethod": "POST",
+ "url": "api/account/login",
+ "supportedVersions": [],
+ "parametersOnMethod": [
+ {
+ "name": "login",
+ "typeAsString": "Volo.Abp.Account.Web.Areas.Account.Controllers.Models.UserLoginInfo, Volo.Abp.Account.Web",
+ "type": "Volo.Abp.Account.Web.Areas.Account.Controllers.Models.UserLoginInfo",
+ "typeSimple": "Volo.Abp.Account.Web.Areas.Account.Controllers.Models.UserLoginInfo",
+ "isOptional": false,
+ "defaultValue": null
+ }
+ ],
+ "parameters": [
+ {
+ "nameOnMethod": "login",
+ "name": "login",
+ "type": "Volo.Abp.Account.Web.Areas.Account.Controllers.Models.UserLoginInfo",
+ "typeSimple": "Volo.Abp.Account.Web.Areas.Account.Controllers.Models.UserLoginInfo",
+ "isOptional": false,
+ "defaultValue": null,
+ "constraintTypes": null,
+ "bindingSourceId": "Body",
+ "descriptorName": ""
+ }
+ ],
+ "returnValue": {
+ "type": "Volo.Abp.Account.Web.Areas.Account.Controllers.Models.AbpLoginResult",
+ "typeSimple": "Volo.Abp.Account.Web.Areas.Account.Controllers.Models.AbpLoginResult"
+ }
+ },
+ "Logout": {
+ "uniqueName": "Logout",
+ "name": "Logout",
+ "httpMethod": "GET",
+ "url": "api/account/logout",
+ "supportedVersions": [],
+ "parametersOnMethod": [],
+ "parameters": [],
+ "returnValue": {
+ "type": "System.Void",
+ "typeSimple": "System.Void"
+ }
+ },
+ "CheckPasswordByLogin": {
+ "uniqueName": "CheckPasswordByLogin",
+ "name": "CheckPassword",
+ "httpMethod": "POST",
+ "url": "api/account/checkPassword",
+ "supportedVersions": [],
+ "parametersOnMethod": [
+ {
+ "name": "login",
+ "typeAsString": "Volo.Abp.Account.Web.Areas.Account.Controllers.Models.UserLoginInfo, Volo.Abp.Account.Web",
+ "type": "Volo.Abp.Account.Web.Areas.Account.Controllers.Models.UserLoginInfo",
+ "typeSimple": "Volo.Abp.Account.Web.Areas.Account.Controllers.Models.UserLoginInfo",
+ "isOptional": false,
+ "defaultValue": null
+ }
+ ],
+ "parameters": [
+ {
+ "nameOnMethod": "login",
+ "name": "login",
+ "type": "Volo.Abp.Account.Web.Areas.Account.Controllers.Models.UserLoginInfo",
+ "typeSimple": "Volo.Abp.Account.Web.Areas.Account.Controllers.Models.UserLoginInfo",
+ "isOptional": false,
+ "defaultValue": null,
+ "constraintTypes": null,
+ "bindingSourceId": "Body",
+ "descriptorName": ""
+ }
+ ],
+ "returnValue": {
+ "type": "Volo.Abp.Account.Web.Areas.Account.Controllers.Models.AbpLoginResult",
+ "typeSimple": "Volo.Abp.Account.Web.Areas.Account.Controllers.Models.AbpLoginResult"
+ }
+ }
+ }
+ },
+ "Volo.Abp.Account.AccountController": {
+ "controllerName": "Account",
+ "type": "Volo.Abp.Account.AccountController",
+ "interfaces": [
+ {
+ "type": "Volo.Abp.Account.IAccountAppService"
+ }
+ ],
+ "actions": {
+ "RegisterAsyncByInput": {
+ "uniqueName": "RegisterAsyncByInput",
+ "name": "RegisterAsync",
+ "httpMethod": "POST",
+ "url": "api/account/register",
+ "supportedVersions": [],
+ "parametersOnMethod": [
+ {
+ "name": "input",
+ "typeAsString": "Volo.Abp.Account.RegisterDto, Volo.Abp.Account.Application.Contracts",
+ "type": "Volo.Abp.Account.RegisterDto",
+ "typeSimple": "Volo.Abp.Account.RegisterDto",
+ "isOptional": false,
+ "defaultValue": null
+ }
+ ],
+ "parameters": [
+ {
+ "nameOnMethod": "input",
+ "name": "input",
+ "type": "Volo.Abp.Account.RegisterDto",
+ "typeSimple": "Volo.Abp.Account.RegisterDto",
+ "isOptional": false,
+ "defaultValue": null,
+ "constraintTypes": null,
+ "bindingSourceId": "Body",
+ "descriptorName": ""
+ }
+ ],
+ "returnValue": {
+ "type": "Volo.Abp.Identity.IdentityUserDto",
+ "typeSimple": "Volo.Abp.Identity.IdentityUserDto"
+ }
+ },
+ "SendPasswordResetCodeAsyncByInput": {
+ "uniqueName": "SendPasswordResetCodeAsyncByInput",
+ "name": "SendPasswordResetCodeAsync",
+ "httpMethod": "POST",
+ "url": "api/account/send-password-reset-code",
+ "supportedVersions": [],
+ "parametersOnMethod": [
+ {
+ "name": "input",
+ "typeAsString": "Volo.Abp.Account.SendPasswordResetCodeDto, Volo.Abp.Account.Application.Contracts",
+ "type": "Volo.Abp.Account.SendPasswordResetCodeDto",
+ "typeSimple": "Volo.Abp.Account.SendPasswordResetCodeDto",
+ "isOptional": false,
+ "defaultValue": null
+ }
+ ],
+ "parameters": [
+ {
+ "nameOnMethod": "input",
+ "name": "input",
+ "type": "Volo.Abp.Account.SendPasswordResetCodeDto",
+ "typeSimple": "Volo.Abp.Account.SendPasswordResetCodeDto",
+ "isOptional": false,
+ "defaultValue": null,
+ "constraintTypes": null,
+ "bindingSourceId": "Body",
+ "descriptorName": ""
+ }
+ ],
+ "returnValue": {
+ "type": "System.Void",
+ "typeSimple": "System.Void"
+ }
+ },
+ "ResetPasswordAsyncByInput": {
+ "uniqueName": "ResetPasswordAsyncByInput",
+ "name": "ResetPasswordAsync",
+ "httpMethod": "POST",
+ "url": "api/account/reset-password",
+ "supportedVersions": [],
+ "parametersOnMethod": [
+ {
+ "name": "input",
+ "typeAsString": "Volo.Abp.Account.ResetPasswordDto, Volo.Abp.Account.Application.Contracts",
+ "type": "Volo.Abp.Account.ResetPasswordDto",
+ "typeSimple": "Volo.Abp.Account.ResetPasswordDto",
+ "isOptional": false,
+ "defaultValue": null
+ }
+ ],
+ "parameters": [
+ {
+ "nameOnMethod": "input",
+ "name": "input",
+ "type": "Volo.Abp.Account.ResetPasswordDto",
+ "typeSimple": "Volo.Abp.Account.ResetPasswordDto",
+ "isOptional": false,
+ "defaultValue": null,
+ "constraintTypes": null,
+ "bindingSourceId": "Body",
+ "descriptorName": ""
+ }
+ ],
+ "returnValue": {
+ "type": "System.Void",
+ "typeSimple": "System.Void"
+ }
+ }
+ }
+ }
+ }
+ },
+ "multi-tenancy": {
+ "rootPath": "multi-tenancy",
+ "remoteServiceName": "AbpTenantManagement",
+ "controllers": {
+ "Volo.Abp.TenantManagement.TenantController": {
+ "controllerName": "Tenant",
+ "type": "Volo.Abp.TenantManagement.TenantController",
+ "interfaces": [
+ {
+ "type": "Volo.Abp.TenantManagement.ITenantAppService"
+ }
+ ],
+ "actions": {
+ "GetAsyncById": {
+ "uniqueName": "GetAsyncById",
+ "name": "GetAsync",
+ "httpMethod": "GET",
+ "url": "api/multi-tenancy/tenants/{id}",
+ "supportedVersions": [],
+ "parametersOnMethod": [
+ {
+ "name": "id",
+ "typeAsString": "System.Guid, System.Private.CoreLib",
+ "type": "System.Guid",
+ "typeSimple": "string",
+ "isOptional": false,
+ "defaultValue": null
+ }
+ ],
+ "parameters": [
+ {
+ "nameOnMethod": "id",
+ "name": "id",
+ "type": "System.Guid",
+ "typeSimple": "string",
+ "isOptional": false,
+ "defaultValue": null,
+ "constraintTypes": [],
+ "bindingSourceId": "Path",
+ "descriptorName": ""
+ }
+ ],
+ "returnValue": {
+ "type": "Volo.Abp.TenantManagement.TenantDto",
+ "typeSimple": "Volo.Abp.TenantManagement.TenantDto"
+ }
+ },
+ "GetListAsyncByInput": {
+ "uniqueName": "GetListAsyncByInput",
+ "name": "GetListAsync",
+ "httpMethod": "GET",
+ "url": "api/multi-tenancy/tenants",
+ "supportedVersions": [],
+ "parametersOnMethod": [
+ {
+ "name": "input",
+ "typeAsString": "Volo.Abp.TenantManagement.GetTenantsInput, Volo.Abp.TenantManagement.Application.Contracts",
+ "type": "Volo.Abp.TenantManagement.GetTenantsInput",
+ "typeSimple": "Volo.Abp.TenantManagement.GetTenantsInput",
+ "isOptional": false,
+ "defaultValue": null
+ }
+ ],
+ "parameters": [
+ {
+ "nameOnMethod": "input",
+ "name": "Filter",
+ "type": "System.String",
+ "typeSimple": "string",
+ "isOptional": false,
+ "defaultValue": null,
+ "constraintTypes": null,
+ "bindingSourceId": "ModelBinding",
+ "descriptorName": "input"
+ },
+ {
+ "nameOnMethod": "input",
+ "name": "Sorting",
+ "type": "System.String",
+ "typeSimple": "string",
+ "isOptional": false,
+ "defaultValue": null,
+ "constraintTypes": null,
+ "bindingSourceId": "ModelBinding",
+ "descriptorName": "input"
+ },
+ {
+ "nameOnMethod": "input",
+ "name": "SkipCount",
+ "type": "System.Int32",
+ "typeSimple": "number",
+ "isOptional": false,
+ "defaultValue": null,
+ "constraintTypes": null,
+ "bindingSourceId": "ModelBinding",
+ "descriptorName": "input"
+ },
+ {
+ "nameOnMethod": "input",
+ "name": "MaxResultCount",
+ "type": "System.Int32",
+ "typeSimple": "number",
+ "isOptional": false,
+ "defaultValue": null,
+ "constraintTypes": null,
+ "bindingSourceId": "ModelBinding",
+ "descriptorName": "input"
+ }
+ ],
+ "returnValue": {
+ "type": "Volo.Abp.Application.Dtos.PagedResultDto",
+ "typeSimple": "Volo.Abp.Application.Dtos.PagedResultDto"
+ }
+ },
+ "CreateAsyncByInput": {
+ "uniqueName": "CreateAsyncByInput",
+ "name": "CreateAsync",
+ "httpMethod": "POST",
+ "url": "api/multi-tenancy/tenants",
+ "supportedVersions": [],
+ "parametersOnMethod": [
+ {
+ "name": "input",
+ "typeAsString": "Volo.Abp.TenantManagement.TenantCreateDto, Volo.Abp.TenantManagement.Application.Contracts",
+ "type": "Volo.Abp.TenantManagement.TenantCreateDto",
+ "typeSimple": "Volo.Abp.TenantManagement.TenantCreateDto",
+ "isOptional": false,
+ "defaultValue": null
+ }
+ ],
+ "parameters": [
+ {
+ "nameOnMethod": "input",
+ "name": "input",
+ "type": "Volo.Abp.TenantManagement.TenantCreateDto",
+ "typeSimple": "Volo.Abp.TenantManagement.TenantCreateDto",
+ "isOptional": false,
+ "defaultValue": null,
+ "constraintTypes": null,
+ "bindingSourceId": "Body",
+ "descriptorName": ""
+ }
+ ],
+ "returnValue": {
+ "type": "Volo.Abp.TenantManagement.TenantDto",
+ "typeSimple": "Volo.Abp.TenantManagement.TenantDto"
+ }
+ },
+ "UpdateAsyncByIdAndInput": {
+ "uniqueName": "UpdateAsyncByIdAndInput",
+ "name": "UpdateAsync",
+ "httpMethod": "PUT",
+ "url": "api/multi-tenancy/tenants/{id}",
+ "supportedVersions": [],
+ "parametersOnMethod": [
+ {
+ "name": "id",
+ "typeAsString": "System.Guid, System.Private.CoreLib",
+ "type": "System.Guid",
+ "typeSimple": "string",
+ "isOptional": false,
+ "defaultValue": null
+ },
+ {
+ "name": "input",
+ "typeAsString": "Volo.Abp.TenantManagement.TenantUpdateDto, Volo.Abp.TenantManagement.Application.Contracts",
+ "type": "Volo.Abp.TenantManagement.TenantUpdateDto",
+ "typeSimple": "Volo.Abp.TenantManagement.TenantUpdateDto",
+ "isOptional": false,
+ "defaultValue": null
+ }
+ ],
+ "parameters": [
+ {
+ "nameOnMethod": "id",
+ "name": "id",
+ "type": "System.Guid",
+ "typeSimple": "string",
+ "isOptional": false,
+ "defaultValue": null,
+ "constraintTypes": [],
+ "bindingSourceId": "Path",
+ "descriptorName": ""
+ },
+ {
+ "nameOnMethod": "input",
+ "name": "input",
+ "type": "Volo.Abp.TenantManagement.TenantUpdateDto",
+ "typeSimple": "Volo.Abp.TenantManagement.TenantUpdateDto",
+ "isOptional": false,
+ "defaultValue": null,
+ "constraintTypes": null,
+ "bindingSourceId": "Body",
+ "descriptorName": ""
+ }
+ ],
+ "returnValue": {
+ "type": "Volo.Abp.TenantManagement.TenantDto",
+ "typeSimple": "Volo.Abp.TenantManagement.TenantDto"
+ }
+ },
+ "DeleteAsyncById": {
+ "uniqueName": "DeleteAsyncById",
+ "name": "DeleteAsync",
+ "httpMethod": "DELETE",
+ "url": "api/multi-tenancy/tenants/{id}",
+ "supportedVersions": [],
+ "parametersOnMethod": [
+ {
+ "name": "id",
+ "typeAsString": "System.Guid, System.Private.CoreLib",
+ "type": "System.Guid",
+ "typeSimple": "string",
+ "isOptional": false,
+ "defaultValue": null
+ }
+ ],
+ "parameters": [
+ {
+ "nameOnMethod": "id",
+ "name": "id",
+ "type": "System.Guid",
+ "typeSimple": "string",
+ "isOptional": false,
+ "defaultValue": null,
+ "constraintTypes": [],
+ "bindingSourceId": "Path",
+ "descriptorName": ""
+ }
+ ],
+ "returnValue": {
+ "type": "System.Void",
+ "typeSimple": "System.Void"
+ }
+ },
+ "GetDefaultConnectionStringAsyncById": {
+ "uniqueName": "GetDefaultConnectionStringAsyncById",
+ "name": "GetDefaultConnectionStringAsync",
+ "httpMethod": "GET",
+ "url": "api/multi-tenancy/tenants/{id}/default-connection-string",
+ "supportedVersions": [],
+ "parametersOnMethod": [
+ {
+ "name": "id",
+ "typeAsString": "System.Guid, System.Private.CoreLib",
+ "type": "System.Guid",
+ "typeSimple": "string",
+ "isOptional": false,
+ "defaultValue": null
+ }
+ ],
+ "parameters": [
+ {
+ "nameOnMethod": "id",
+ "name": "id",
+ "type": "System.Guid",
+ "typeSimple": "string",
+ "isOptional": false,
+ "defaultValue": null,
+ "constraintTypes": [],
+ "bindingSourceId": "Path",
+ "descriptorName": ""
+ }
+ ],
+ "returnValue": {
+ "type": "System.String",
+ "typeSimple": "string"
+ }
+ },
+ "UpdateDefaultConnectionStringAsyncByIdAndDefaultConnectionString": {
+ "uniqueName": "UpdateDefaultConnectionStringAsyncByIdAndDefaultConnectionString",
+ "name": "UpdateDefaultConnectionStringAsync",
+ "httpMethod": "PUT",
+ "url": "api/multi-tenancy/tenants/{id}/default-connection-string",
+ "supportedVersions": [],
+ "parametersOnMethod": [
+ {
+ "name": "id",
+ "typeAsString": "System.Guid, System.Private.CoreLib",
+ "type": "System.Guid",
+ "typeSimple": "string",
+ "isOptional": false,
+ "defaultValue": null
+ },
+ {
+ "name": "defaultConnectionString",
+ "typeAsString": "System.String, System.Private.CoreLib",
+ "type": "System.String",
+ "typeSimple": "string",
+ "isOptional": false,
+ "defaultValue": null
+ }
+ ],
+ "parameters": [
+ {
+ "nameOnMethod": "id",
+ "name": "id",
+ "type": "System.Guid",
+ "typeSimple": "string",
+ "isOptional": false,
+ "defaultValue": null,
+ "constraintTypes": [],
+ "bindingSourceId": "Path",
+ "descriptorName": ""
+ },
+ {
+ "nameOnMethod": "defaultConnectionString",
+ "name": "defaultConnectionString",
+ "type": "System.String",
+ "typeSimple": "string",
+ "isOptional": false,
+ "defaultValue": null,
+ "constraintTypes": null,
+ "bindingSourceId": "ModelBinding",
+ "descriptorName": ""
+ }
+ ],
+ "returnValue": {
+ "type": "System.Void",
+ "typeSimple": "System.Void"
+ }
+ },
+ "DeleteDefaultConnectionStringAsyncById": {
+ "uniqueName": "DeleteDefaultConnectionStringAsyncById",
+ "name": "DeleteDefaultConnectionStringAsync",
+ "httpMethod": "DELETE",
+ "url": "api/multi-tenancy/tenants/{id}/default-connection-string",
+ "supportedVersions": [],
+ "parametersOnMethod": [
+ {
+ "name": "id",
+ "typeAsString": "System.Guid, System.Private.CoreLib",
+ "type": "System.Guid",
+ "typeSimple": "string",
+ "isOptional": false,
+ "defaultValue": null
+ }
+ ],
+ "parameters": [
+ {
+ "nameOnMethod": "id",
+ "name": "id",
+ "type": "System.Guid",
+ "typeSimple": "string",
+ "isOptional": false,
+ "defaultValue": null,
+ "constraintTypes": [],
+ "bindingSourceId": "Path",
+ "descriptorName": ""
+ }
+ ],
+ "returnValue": {
+ "type": "System.Void",
+ "typeSimple": "System.Void"
+ }
+ }
+ }
+ }
+ }
+ },
+ "abp": {
+ "rootPath": "abp",
+ "remoteServiceName": "abp",
+ "controllers": {
+ "Pages.Abp.MultiTenancy.AbpTenantController": {
+ "controllerName": "AbpTenant",
+ "type": "Pages.Abp.MultiTenancy.AbpTenantController",
+ "interfaces": [
+ {
+ "type": "Volo.Abp.AspNetCore.Mvc.MultiTenancy.IAbpTenantAppService"
+ }
+ ],
+ "actions": {
+ "FindTenantByNameAsyncByName": {
+ "uniqueName": "FindTenantByNameAsyncByName",
+ "name": "FindTenantByNameAsync",
+ "httpMethod": "GET",
+ "url": "api/abp/multi-tenancy/tenants/by-name/{name}",
+ "supportedVersions": [],
+ "parametersOnMethod": [
+ {
+ "name": "name",
+ "typeAsString": "System.String, System.Private.CoreLib",
+ "type": "System.String",
+ "typeSimple": "string",
+ "isOptional": false,
+ "defaultValue": null
+ }
+ ],
+ "parameters": [
+ {
+ "nameOnMethod": "name",
+ "name": "name",
+ "type": "System.String",
+ "typeSimple": "string",
+ "isOptional": false,
+ "defaultValue": null,
+ "constraintTypes": [],
+ "bindingSourceId": "Path",
+ "descriptorName": ""
+ }
+ ],
+ "returnValue": {
+ "type": "Volo.Abp.AspNetCore.Mvc.MultiTenancy.FindTenantResultDto",
+ "typeSimple": "Volo.Abp.AspNetCore.Mvc.MultiTenancy.FindTenantResultDto"
+ }
+ },
+ "FindTenantByIdAsyncById": {
+ "uniqueName": "FindTenantByIdAsyncById",
+ "name": "FindTenantByIdAsync",
+ "httpMethod": "GET",
+ "url": "api/abp/multi-tenancy/tenants/by-id/{id}",
+ "supportedVersions": [],
+ "parametersOnMethod": [
+ {
+ "name": "id",
+ "typeAsString": "System.Guid, System.Private.CoreLib",
+ "type": "System.Guid",
+ "typeSimple": "string",
+ "isOptional": false,
+ "defaultValue": null
+ }
+ ],
+ "parameters": [
+ {
+ "nameOnMethod": "id",
+ "name": "id",
+ "type": "System.Guid",
+ "typeSimple": "string",
+ "isOptional": false,
+ "defaultValue": null,
+ "constraintTypes": [],
+ "bindingSourceId": "Path",
+ "descriptorName": ""
+ }
+ ],
+ "returnValue": {
+ "type": "Volo.Abp.AspNetCore.Mvc.MultiTenancy.FindTenantResultDto",
+ "typeSimple": "Volo.Abp.AspNetCore.Mvc.MultiTenancy.FindTenantResultDto"
+ }
+ }
+ }
+ },
+ "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.AbpApplicationConfigurationController": {
+ "controllerName": "AbpApplicationConfiguration",
+ "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.AbpApplicationConfigurationController",
+ "interfaces": [
+ {
+ "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.IAbpApplicationConfigurationAppService"
+ }
+ ],
+ "actions": {
+ "GetAsync": {
+ "uniqueName": "GetAsync",
+ "name": "GetAsync",
+ "httpMethod": "GET",
+ "url": "api/abp/application-configuration",
+ "supportedVersions": [],
+ "parametersOnMethod": [],
+ "parameters": [],
+ "returnValue": {
+ "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationConfigurationDto",
+ "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationConfigurationDto"
+ }
+ }
+ }
+ },
+ "Volo.Abp.AspNetCore.Mvc.ApiExploring.AbpApiDefinitionController": {
+ "controllerName": "AbpApiDefinition",
+ "type": "Volo.Abp.AspNetCore.Mvc.ApiExploring.AbpApiDefinitionController",
+ "interfaces": [],
+ "actions": {
+ "GetByModel": {
+ "uniqueName": "GetByModel",
+ "name": "Get",
+ "httpMethod": "GET",
+ "url": "api/abp/api-definition",
+ "supportedVersions": [],
+ "parametersOnMethod": [
+ {
+ "name": "model",
+ "typeAsString": "Volo.Abp.Http.Modeling.ApplicationApiDescriptionModelRequestDto, Volo.Abp.Http",
+ "type": "Volo.Abp.Http.Modeling.ApplicationApiDescriptionModelRequestDto",
+ "typeSimple": "Volo.Abp.Http.Modeling.ApplicationApiDescriptionModelRequestDto",
+ "isOptional": false,
+ "defaultValue": null
+ }
+ ],
+ "parameters": [
+ {
+ "nameOnMethod": "model",
+ "name": "IncludeTypes",
+ "type": "System.Boolean",
+ "typeSimple": "boolean",
+ "isOptional": false,
+ "defaultValue": null,
+ "constraintTypes": null,
+ "bindingSourceId": "ModelBinding",
+ "descriptorName": "model"
+ }
+ ],
+ "returnValue": {
+ "type": "Volo.Abp.Http.Modeling.ApplicationApiDescriptionModel",
+ "typeSimple": "Volo.Abp.Http.Modeling.ApplicationApiDescriptionModel"
+ }
+ }
+ }
+ }
+ }
+ },
+ "permissionManagement": {
+ "rootPath": "permissionManagement",
+ "remoteServiceName": "AbpPermissionManagement",
+ "controllers": {
+ "Volo.Abp.PermissionManagement.PermissionsController": {
+ "controllerName": "Permissions",
+ "type": "Volo.Abp.PermissionManagement.PermissionsController",
+ "interfaces": [
+ {
+ "type": "Volo.Abp.PermissionManagement.IPermissionAppService"
+ }
+ ],
+ "actions": {
+ "GetAsyncByProviderNameAndProviderKey": {
+ "uniqueName": "GetAsyncByProviderNameAndProviderKey",
+ "name": "GetAsync",
+ "httpMethod": "GET",
+ "url": "api/permission-management/permissions",
+ "supportedVersions": [],
+ "parametersOnMethod": [
+ {
+ "name": "providerName",
+ "typeAsString": "System.String, System.Private.CoreLib",
+ "type": "System.String",
+ "typeSimple": "string",
+ "isOptional": false,
+ "defaultValue": null
+ },
+ {
+ "name": "providerKey",
+ "typeAsString": "System.String, System.Private.CoreLib",
+ "type": "System.String",
+ "typeSimple": "string",
+ "isOptional": false,
+ "defaultValue": null
+ }
+ ],
+ "parameters": [
+ {
+ "nameOnMethod": "providerName",
+ "name": "providerName",
+ "type": "System.String",
+ "typeSimple": "string",
+ "isOptional": false,
+ "defaultValue": null,
+ "constraintTypes": null,
+ "bindingSourceId": "ModelBinding",
+ "descriptorName": ""
+ },
+ {
+ "nameOnMethod": "providerKey",
+ "name": "providerKey",
+ "type": "System.String",
+ "typeSimple": "string",
+ "isOptional": false,
+ "defaultValue": null,
+ "constraintTypes": null,
+ "bindingSourceId": "ModelBinding",
+ "descriptorName": ""
+ }
+ ],
+ "returnValue": {
+ "type": "Volo.Abp.PermissionManagement.GetPermissionListResultDto",
+ "typeSimple": "Volo.Abp.PermissionManagement.GetPermissionListResultDto"
+ }
+ },
+ "UpdateAsyncByProviderNameAndProviderKeyAndInput": {
+ "uniqueName": "UpdateAsyncByProviderNameAndProviderKeyAndInput",
+ "name": "UpdateAsync",
+ "httpMethod": "PUT",
+ "url": "api/permission-management/permissions",
+ "supportedVersions": [],
+ "parametersOnMethod": [
+ {
+ "name": "providerName",
+ "typeAsString": "System.String, System.Private.CoreLib",
+ "type": "System.String",
+ "typeSimple": "string",
+ "isOptional": false,
+ "defaultValue": null
+ },
+ {
+ "name": "providerKey",
+ "typeAsString": "System.String, System.Private.CoreLib",
+ "type": "System.String",
+ "typeSimple": "string",
+ "isOptional": false,
+ "defaultValue": null
+ },
+ {
+ "name": "input",
+ "typeAsString": "Volo.Abp.PermissionManagement.UpdatePermissionsDto, Volo.Abp.PermissionManagement.Application.Contracts",
+ "type": "Volo.Abp.PermissionManagement.UpdatePermissionsDto",
+ "typeSimple": "Volo.Abp.PermissionManagement.UpdatePermissionsDto",
+ "isOptional": false,
+ "defaultValue": null
+ }
+ ],
+ "parameters": [
+ {
+ "nameOnMethod": "providerName",
+ "name": "providerName",
+ "type": "System.String",
+ "typeSimple": "string",
+ "isOptional": false,
+ "defaultValue": null,
+ "constraintTypes": null,
+ "bindingSourceId": "ModelBinding",
+ "descriptorName": ""
+ },
+ {
+ "nameOnMethod": "providerKey",
+ "name": "providerKey",
+ "type": "System.String",
+ "typeSimple": "string",
+ "isOptional": false,
+ "defaultValue": null,
+ "constraintTypes": null,
+ "bindingSourceId": "ModelBinding",
+ "descriptorName": ""
+ },
+ {
+ "nameOnMethod": "input",
+ "name": "input",
+ "type": "Volo.Abp.PermissionManagement.UpdatePermissionsDto",
+ "typeSimple": "Volo.Abp.PermissionManagement.UpdatePermissionsDto",
+ "isOptional": false,
+ "defaultValue": null,
+ "constraintTypes": null,
+ "bindingSourceId": "Body",
+ "descriptorName": ""
+ }
+ ],
+ "returnValue": {
+ "type": "System.Void",
+ "typeSimple": "System.Void"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "types": {
+ "Volo.Abp.Account.Web.Areas.Account.Controllers.Models.UserLoginInfo": {
+ "baseType": null,
+ "isEnum": false,
+ "enumNames": null,
+ "enumValues": null,
+ "genericArguments": null,
+ "properties": [
+ {
+ "name": "UserNameOrEmailAddress",
+ "type": "System.String",
+ "typeSimple": "string"
+ },
+ {
+ "name": "Password",
+ "type": "System.String",
+ "typeSimple": "string"
+ },
+ {
+ "name": "RememberMe",
+ "type": "System.Boolean",
+ "typeSimple": "boolean"
+ }
+ ]
+ },
+ "Volo.Abp.Account.Web.Areas.Account.Controllers.Models.AbpLoginResult": {
+ "baseType": null,
+ "isEnum": false,
+ "enumNames": null,
+ "enumValues": null,
+ "genericArguments": null,
+ "properties": [
+ {
+ "name": "Result",
+ "type": "Volo.Abp.Account.Web.Areas.Account.Controllers.Models.LoginResultType",
+ "typeSimple": "Volo.Abp.Account.Web.Areas.Account.Controllers.Models.LoginResultType"
+ },
+ {
+ "name": "Description",
+ "type": "System.String",
+ "typeSimple": "string"
+ }
+ ]
+ },
+ "Volo.Abp.Account.Web.Areas.Account.Controllers.Models.LoginResultType": {
+ "baseType": "System.Enum",
+ "isEnum": true,
+ "enumNames": [
+ "Success",
+ "InvalidUserNameOrPassword",
+ "NotAllowed",
+ "LockedOut",
+ "RequiresTwoFactor"
+ ],
+ "enumValues": [
+ 1,
+ 2,
+ 3,
+ 4,
+ 5
+ ],
+ "genericArguments": null,
+ "properties": null
+ },
+ "Volo.Abp.Account.RegisterDto": {
+ "baseType": null,
+ "isEnum": false,
+ "enumNames": null,
+ "enumValues": null,
+ "genericArguments": null,
+ "properties": [
+ {
+ "name": "UserName",
+ "type": "System.String",
+ "typeSimple": "string"
+ },
+ {
+ "name": "EmailAddress",
+ "type": "System.String",
+ "typeSimple": "string"
+ },
+ {
+ "name": "Password",
+ "type": "System.String",
+ "typeSimple": "string"
+ },
+ {
+ "name": "AppName",
+ "type": "System.String",
+ "typeSimple": "string"
+ }
+ ]
+ },
+ "Volo.Abp.Identity.IdentityUserDto": {
+ "baseType": "Volo.Abp.Application.Dtos.ExtensibleFullAuditedEntityDto",
+ "isEnum": false,
+ "enumNames": null,
+ "enumValues": null,
+ "genericArguments": null,
+ "properties": [
+ {
+ "name": "TenantId",
+ "type": "System.Guid?",
+ "typeSimple": "string?"
+ },
+ {
+ "name": "UserName",
+ "type": "System.String",
+ "typeSimple": "string"
+ },
+ {
+ "name": "Name",
+ "type": "System.String",
+ "typeSimple": "string"
+ },
+ {
+ "name": "Surname",
+ "type": "System.String",
+ "typeSimple": "string"
+ },
+ {
+ "name": "Email",
+ "type": "System.String",
+ "typeSimple": "string"
+ },
+ {
+ "name": "EmailConfirmed",
+ "type": "System.Boolean",
+ "typeSimple": "boolean"
+ },
+ {
+ "name": "PhoneNumber",
+ "type": "System.String",
+ "typeSimple": "string"
+ },
+ {
+ "name": "PhoneNumberConfirmed",
+ "type": "System.Boolean",
+ "typeSimple": "boolean"
+ },
+ {
+ "name": "TwoFactorEnabled",
+ "type": "System.Boolean",
+ "typeSimple": "boolean"
+ },
+ {
+ "name": "LockoutEnabled",
+ "type": "System.Boolean",
+ "typeSimple": "boolean"
+ },
+ {
+ "name": "LockoutEnd",
+ "type": "System.DateTimeOffset?",
+ "typeSimple": "string?"
+ },
+ {
+ "name": "ConcurrencyStamp",
+ "type": "System.String",
+ "typeSimple": "string"
+ }
+ ]
+ },
+ "Volo.Abp.Application.Dtos.ExtensibleFullAuditedEntityDto": {
+ "baseType": "Volo.Abp.Application.Dtos.ExtensibleAuditedEntityDto",
+ "isEnum": false,
+ "enumNames": null,
+ "enumValues": null,
+ "genericArguments": [
+ "TPrimaryKey"
+ ],
+ "properties": [
+ {
+ "name": "IsDeleted",
+ "type": "System.Boolean",
+ "typeSimple": "boolean"
+ },
+ {
+ "name": "DeleterId",
+ "type": "System.Guid?",
+ "typeSimple": "string?"
+ },
+ {
+ "name": "DeletionTime",
+ "type": "System.DateTime?",
+ "typeSimple": "string?"
+ }
+ ]
+ },
+ "Volo.Abp.Application.Dtos.ExtensibleAuditedEntityDto": {
+ "baseType": "Volo.Abp.Application.Dtos.ExtensibleCreationAuditedEntityDto",
+ "isEnum": false,
+ "enumNames": null,
+ "enumValues": null,
+ "genericArguments": [
+ "TPrimaryKey"
+ ],
+ "properties": [
+ {
+ "name": "LastModificationTime",
+ "type": "System.DateTime?",
+ "typeSimple": "string?"
+ },
+ {
+ "name": "LastModifierId",
+ "type": "System.Guid?",
+ "typeSimple": "string?"
+ }
+ ]
+ },
+ "Volo.Abp.Application.Dtos.ExtensibleCreationAuditedEntityDto": {
+ "baseType": "Volo.Abp.Application.Dtos.ExtensibleEntityDto",
+ "isEnum": false,
+ "enumNames": null,
+ "enumValues": null,
+ "genericArguments": [
+ "TPrimaryKey"
+ ],
+ "properties": [
+ {
+ "name": "CreationTime",
+ "type": "System.DateTime",
+ "typeSimple": "string"
+ },
+ {
+ "name": "CreatorId",
+ "type": "System.Guid?",
+ "typeSimple": "string?"
+ }
+ ]
+ },
+ "Volo.Abp.Application.Dtos.ExtensibleEntityDto": {
+ "baseType": "Volo.Abp.ObjectExtending.ExtensibleObject",
+ "isEnum": false,
+ "enumNames": null,
+ "enumValues": null,
+ "genericArguments": [
+ "TKey"
+ ],
+ "properties": [
+ {
+ "name": "Id",
+ "type": "TKey",
+ "typeSimple": "TKey"
+ }
+ ]
+ },
+ "Volo.Abp.ObjectExtending.ExtensibleObject": {
+ "baseType": null,
+ "isEnum": false,
+ "enumNames": null,
+ "enumValues": null,
+ "genericArguments": null,
+ "properties": [
+ {
+ "name": "ExtraProperties",
+ "type": "{System.String:System.Object}",
+ "typeSimple": "{string:object}"
+ }
+ ]
+ },
+ "Volo.Abp.Account.SendPasswordResetCodeDto": {
+ "baseType": null,
+ "isEnum": false,
+ "enumNames": null,
+ "enumValues": null,
+ "genericArguments": null,
+ "properties": [
+ {
+ "name": "Email",
+ "type": "System.String",
+ "typeSimple": "string"
+ },
+ {
+ "name": "AppName",
+ "type": "System.String",
+ "typeSimple": "string"
+ },
+ {
+ "name": "ReturnUrl",
+ "type": "System.String",
+ "typeSimple": "string"
+ },
+ {
+ "name": "ReturnUrlHash",
+ "type": "System.String",
+ "typeSimple": "string"
+ }
+ ]
+ },
+ "Volo.Abp.Account.ResetPasswordDto": {
+ "baseType": null,
+ "isEnum": false,
+ "enumNames": null,
+ "enumValues": null,
+ "genericArguments": null,
+ "properties": [
+ {
+ "name": "UserId",
+ "type": "System.Guid",
+ "typeSimple": "string"
+ },
+ {
+ "name": "ResetToken",
+ "type": "System.String",
+ "typeSimple": "string"
+ },
+ {
+ "name": "Password",
+ "type": "System.String",
+ "typeSimple": "string"
+ }
+ ]
+ },
+ "Volo.Abp.AspNetCore.Mvc.MultiTenancy.FindTenantResultDto": {
+ "baseType": null,
+ "isEnum": false,
+ "enumNames": null,
+ "enumValues": null,
+ "genericArguments": null,
+ "properties": [
+ {
+ "name": "Success",
+ "type": "System.Boolean",
+ "typeSimple": "boolean"
+ },
+ {
+ "name": "TenantId",
+ "type": "System.Guid?",
+ "typeSimple": "string?"
+ },
+ {
+ "name": "Name",
+ "type": "System.String",
+ "typeSimple": "string"
+ }
+ ]
+ },
+ "Volo.Abp.Application.Dtos.ListResultDto": {
+ "baseType": null,
+ "isEnum": false,
+ "enumNames": null,
+ "enumValues": null,
+ "genericArguments": [
+ "T"
+ ],
+ "properties": [
+ {
+ "name": "Items",
+ "type": "[T]",
+ "typeSimple": "[T]"
+ }
+ ]
+ },
+ "Volo.Abp.Identity.IdentityRoleDto": {
+ "baseType": "Volo.Abp.Application.Dtos.ExtensibleEntityDto",
+ "isEnum": false,
+ "enumNames": null,
+ "enumValues": null,
+ "genericArguments": null,
+ "properties": [
+ {
+ "name": "Name",
+ "type": "System.String",
+ "typeSimple": "string"
+ },
+ {
+ "name": "IsDefault",
+ "type": "System.Boolean",
+ "typeSimple": "boolean"
+ },
+ {
+ "name": "IsStatic",
+ "type": "System.Boolean",
+ "typeSimple": "boolean"
+ },
+ {
+ "name": "IsPublic",
+ "type": "System.Boolean",
+ "typeSimple": "boolean"
+ },
+ {
+ "name": "ConcurrencyStamp",
+ "type": "System.String",
+ "typeSimple": "string"
+ }
+ ]
+ },
+ "Volo.Abp.Application.Dtos.PagedAndSortedResultRequestDto": {
+ "baseType": "Volo.Abp.Application.Dtos.PagedResultRequestDto",
+ "isEnum": false,
+ "enumNames": null,
+ "enumValues": null,
+ "genericArguments": null,
+ "properties": [
+ {
+ "name": "Sorting",
+ "type": "System.String",
+ "typeSimple": "string"
+ }
+ ]
+ },
+ "Volo.Abp.Application.Dtos.PagedResultRequestDto": {
+ "baseType": "Volo.Abp.Application.Dtos.LimitedResultRequestDto",
+ "isEnum": false,
+ "enumNames": null,
+ "enumValues": null,
+ "genericArguments": null,
+ "properties": [
+ {
+ "name": "SkipCount",
+ "type": "System.Int32",
+ "typeSimple": "number"
+ }
+ ]
+ },
+ "Volo.Abp.Application.Dtos.LimitedResultRequestDto": {
+ "baseType": null,
+ "isEnum": false,
+ "enumNames": null,
+ "enumValues": null,
+ "genericArguments": null,
+ "properties": [
+ {
+ "name": "DefaultMaxResultCount",
+ "type": "System.Int32",
+ "typeSimple": "number"
+ },
+ {
+ "name": "MaxMaxResultCount",
+ "type": "System.Int32",
+ "typeSimple": "number"
+ },
+ {
+ "name": "MaxResultCount",
+ "type": "System.Int32",
+ "typeSimple": "number"
+ }
+ ]
+ },
+ "Volo.Abp.Application.Dtos.PagedResultDto": {
+ "baseType": "Volo.Abp.Application.Dtos.ListResultDto",
+ "isEnum": false,
+ "enumNames": null,
+ "enumValues": null,
+ "genericArguments": [
+ "T"
+ ],
+ "properties": [
+ {
+ "name": "TotalCount",
+ "type": "System.Int64",
+ "typeSimple": "number"
+ }
+ ]
+ },
+ "Volo.Abp.Identity.IdentityRoleCreateDto": {
+ "baseType": "Volo.Abp.Identity.IdentityRoleCreateOrUpdateDtoBase",
+ "isEnum": false,
+ "enumNames": null,
+ "enumValues": null,
+ "genericArguments": null,
+ "properties": []
+ },
+ "Volo.Abp.Identity.IdentityRoleCreateOrUpdateDtoBase": {
+ "baseType": "Volo.Abp.ObjectExtending.ExtensibleObject",
+ "isEnum": false,
+ "enumNames": null,
+ "enumValues": null,
+ "genericArguments": null,
+ "properties": [
+ {
+ "name": "Name",
+ "type": "System.String",
+ "typeSimple": "string"
+ },
+ {
+ "name": "IsDefault",
+ "type": "System.Boolean",
+ "typeSimple": "boolean"
+ },
+ {
+ "name": "IsPublic",
+ "type": "System.Boolean",
+ "typeSimple": "boolean"
+ }
+ ]
+ },
+ "Volo.Abp.Identity.IdentityRoleUpdateDto": {
+ "baseType": "Volo.Abp.Identity.IdentityRoleCreateOrUpdateDtoBase",
+ "isEnum": false,
+ "enumNames": null,
+ "enumValues": null,
+ "genericArguments": null,
+ "properties": [
+ {
+ "name": "ConcurrencyStamp",
+ "type": "System.String",
+ "typeSimple": "string"
+ }
+ ]
+ },
+ "Volo.Abp.Identity.GetIdentityUsersInput": {
+ "baseType": "Volo.Abp.Application.Dtos.PagedAndSortedResultRequestDto",
+ "isEnum": false,
+ "enumNames": null,
+ "enumValues": null,
+ "genericArguments": null,
+ "properties": [
+ {
+ "name": "Filter",
+ "type": "System.String",
+ "typeSimple": "string"
+ }
+ ]
+ },
+ "Volo.Abp.Identity.IdentityUserCreateDto": {
+ "baseType": "Volo.Abp.Identity.IdentityUserCreateOrUpdateDtoBase",
+ "isEnum": false,
+ "enumNames": null,
+ "enumValues": null,
+ "genericArguments": null,
+ "properties": [
+ {
+ "name": "Password",
+ "type": "System.String",
+ "typeSimple": "string"
+ }
+ ]
+ },
+ "Volo.Abp.Identity.IdentityUserCreateOrUpdateDtoBase": {
+ "baseType": "Volo.Abp.ObjectExtending.ExtensibleObject",
+ "isEnum": false,
+ "enumNames": null,
+ "enumValues": null,
+ "genericArguments": null,
+ "properties": [
+ {
+ "name": "UserName",
+ "type": "System.String",
+ "typeSimple": "string"
+ },
+ {
+ "name": "Name",
+ "type": "System.String",
+ "typeSimple": "string"
+ },
+ {
+ "name": "Surname",
+ "type": "System.String",
+ "typeSimple": "string"
+ },
+ {
+ "name": "Email",
+ "type": "System.String",
+ "typeSimple": "string"
+ },
+ {
+ "name": "PhoneNumber",
+ "type": "System.String",
+ "typeSimple": "string"
+ },
+ {
+ "name": "TwoFactorEnabled",
+ "type": "System.Boolean",
+ "typeSimple": "boolean"
+ },
+ {
+ "name": "LockoutEnabled",
+ "type": "System.Boolean",
+ "typeSimple": "boolean"
+ },
+ {
+ "name": "RoleNames",
+ "type": "[System.String]",
+ "typeSimple": "[string]"
+ }
+ ]
+ },
+ "Volo.Abp.Identity.IdentityUserUpdateDto": {
+ "baseType": "Volo.Abp.Identity.IdentityUserCreateOrUpdateDtoBase",
+ "isEnum": false,
+ "enumNames": null,
+ "enumValues": null,
+ "genericArguments": null,
+ "properties": [
+ {
+ "name": "Password",
+ "type": "System.String",
+ "typeSimple": "string"
+ },
+ {
+ "name": "ConcurrencyStamp",
+ "type": "System.String",
+ "typeSimple": "string"
+ }
+ ]
+ },
+ "Volo.Abp.Identity.IdentityUserUpdateRolesDto": {
+ "baseType": null,
+ "isEnum": false,
+ "enumNames": null,
+ "enumValues": null,
+ "genericArguments": null,
+ "properties": [
+ {
+ "name": "RoleNames",
+ "type": "[System.String]",
+ "typeSimple": "[string]"
+ }
+ ]
+ },
+ "Volo.Abp.Users.UserData": {
+ "baseType": null,
+ "isEnum": false,
+ "enumNames": null,
+ "enumValues": null,
+ "genericArguments": null,
+ "properties": [
+ {
+ "name": "Id",
+ "type": "System.Guid",
+ "typeSimple": "string"
+ },
+ {
+ "name": "TenantId",
+ "type": "System.Guid?",
+ "typeSimple": "string?"
+ },
+ {
+ "name": "UserName",
+ "type": "System.String",
+ "typeSimple": "string"
+ },
+ {
+ "name": "Name",
+ "type": "System.String",
+ "typeSimple": "string"
+ },
+ {
+ "name": "Surname",
+ "type": "System.String",
+ "typeSimple": "string"
+ },
+ {
+ "name": "Email",
+ "type": "System.String",
+ "typeSimple": "string"
+ },
+ {
+ "name": "EmailConfirmed",
+ "type": "System.Boolean",
+ "typeSimple": "boolean"
+ },
+ {
+ "name": "PhoneNumber",
+ "type": "System.String",
+ "typeSimple": "string"
+ },
+ {
+ "name": "PhoneNumberConfirmed",
+ "type": "System.Boolean",
+ "typeSimple": "boolean"
+ }
+ ]
+ },
+ "Volo.Abp.Identity.UserLookupSearchInputDto": {
+ "baseType": "Volo.Abp.Application.Dtos.PagedAndSortedResultRequestDto",
+ "isEnum": false,
+ "enumNames": null,
+ "enumValues": null,
+ "genericArguments": null,
+ "properties": [
+ {
+ "name": "Filter",
+ "type": "System.String",
+ "typeSimple": "string"
+ }
+ ]
+ },
+ "Volo.Abp.Identity.UserLookupCountInputDto": {
+ "baseType": null,
+ "isEnum": false,
+ "enumNames": null,
+ "enumValues": null,
+ "genericArguments": null,
+ "properties": [
+ {
+ "name": "Filter",
+ "type": "System.String",
+ "typeSimple": "string"
+ }
+ ]
+ },
+ "Volo.Abp.Identity.ProfileDto": {
+ "baseType": "Volo.Abp.ObjectExtending.ExtensibleObject",
+ "isEnum": false,
+ "enumNames": null,
+ "enumValues": null,
+ "genericArguments": null,
+ "properties": [
+ {
+ "name": "UserName",
+ "type": "System.String",
+ "typeSimple": "string"
+ },
+ {
+ "name": "Email",
+ "type": "System.String",
+ "typeSimple": "string"
+ },
+ {
+ "name": "Name",
+ "type": "System.String",
+ "typeSimple": "string"
+ },
+ {
+ "name": "Surname",
+ "type": "System.String",
+ "typeSimple": "string"
+ },
+ {
+ "name": "PhoneNumber",
+ "type": "System.String",
+ "typeSimple": "string"
+ },
+ {
+ "name": "IsExternal",
+ "type": "System.Boolean",
+ "typeSimple": "boolean"
+ },
+ {
+ "name": "HasPassword",
+ "type": "System.Boolean",
+ "typeSimple": "boolean"
+ }
+ ]
+ },
+ "Volo.Abp.Identity.UpdateProfileDto": {
+ "baseType": "Volo.Abp.ObjectExtending.ExtensibleObject",
+ "isEnum": false,
+ "enumNames": null,
+ "enumValues": null,
+ "genericArguments": null,
+ "properties": [
+ {
+ "name": "UserName",
+ "type": "System.String",
+ "typeSimple": "string"
+ },
+ {
+ "name": "Email",
+ "type": "System.String",
+ "typeSimple": "string"
+ },
+ {
+ "name": "Name",
+ "type": "System.String",
+ "typeSimple": "string"
+ },
+ {
+ "name": "Surname",
+ "type": "System.String",
+ "typeSimple": "string"
+ },
+ {
+ "name": "PhoneNumber",
+ "type": "System.String",
+ "typeSimple": "string"
+ }
+ ]
+ },
+ "Volo.Abp.Identity.ChangePasswordInput": {
+ "baseType": null,
+ "isEnum": false,
+ "enumNames": null,
+ "enumValues": null,
+ "genericArguments": null,
+ "properties": [
+ {
+ "name": "CurrentPassword",
+ "type": "System.String",
+ "typeSimple": "string"
+ },
+ {
+ "name": "NewPassword",
+ "type": "System.String",
+ "typeSimple": "string"
+ }
+ ]
+ },
+ "Volo.Abp.PermissionManagement.GetPermissionListResultDto": {
+ "baseType": null,
+ "isEnum": false,
+ "enumNames": null,
+ "enumValues": null,
+ "genericArguments": null,
+ "properties": [
+ {
+ "name": "EntityDisplayName",
+ "type": "System.String",
+ "typeSimple": "string"
+ },
+ {
+ "name": "Groups",
+ "type": "[Volo.Abp.PermissionManagement.PermissionGroupDto]",
+ "typeSimple": "[Volo.Abp.PermissionManagement.PermissionGroupDto]"
+ }
+ ]
+ },
+ "Volo.Abp.PermissionManagement.PermissionGroupDto": {
+ "baseType": null,
+ "isEnum": false,
+ "enumNames": null,
+ "enumValues": null,
+ "genericArguments": null,
+ "properties": [
+ {
+ "name": "Name",
+ "type": "System.String",
+ "typeSimple": "string"
+ },
+ {
+ "name": "DisplayName",
+ "type": "System.String",
+ "typeSimple": "string"
+ },
+ {
+ "name": "Permissions",
+ "type": "[Volo.Abp.PermissionManagement.PermissionGrantInfoDto]",
+ "typeSimple": "[Volo.Abp.PermissionManagement.PermissionGrantInfoDto]"
+ }
+ ]
+ },
+ "Volo.Abp.PermissionManagement.PermissionGrantInfoDto": {
+ "baseType": null,
+ "isEnum": false,
+ "enumNames": null,
+ "enumValues": null,
+ "genericArguments": null,
+ "properties": [
+ {
+ "name": "Name",
+ "type": "System.String",
+ "typeSimple": "string"
+ },
+ {
+ "name": "DisplayName",
+ "type": "System.String",
+ "typeSimple": "string"
+ },
+ {
+ "name": "ParentName",
+ "type": "System.String",
+ "typeSimple": "string"
+ },
+ {
+ "name": "IsGranted",
+ "type": "System.Boolean",
+ "typeSimple": "boolean"
+ },
+ {
+ "name": "AllowedProviders",
+ "type": "[System.String]",
+ "typeSimple": "[string]"
+ },
+ {
+ "name": "GrantedProviders",
+ "type": "[Volo.Abp.PermissionManagement.ProviderInfoDto]",
+ "typeSimple": "[Volo.Abp.PermissionManagement.ProviderInfoDto]"
+ }
+ ]
+ },
+ "Volo.Abp.PermissionManagement.ProviderInfoDto": {
+ "baseType": null,
+ "isEnum": false,
+ "enumNames": null,
+ "enumValues": null,
+ "genericArguments": null,
+ "properties": [
+ {
+ "name": "ProviderName",
+ "type": "System.String",
+ "typeSimple": "string"
+ },
+ {
+ "name": "ProviderKey",
+ "type": "System.String",
+ "typeSimple": "string"
+ }
+ ]
+ },
+ "Volo.Abp.PermissionManagement.UpdatePermissionsDto": {
+ "baseType": null,
+ "isEnum": false,
+ "enumNames": null,
+ "enumValues": null,
+ "genericArguments": null,
+ "properties": [
+ {
+ "name": "Permissions",
+ "type": "[Volo.Abp.PermissionManagement.UpdatePermissionDto]",
+ "typeSimple": "[Volo.Abp.PermissionManagement.UpdatePermissionDto]"
+ }
+ ]
+ },
+ "Volo.Abp.PermissionManagement.UpdatePermissionDto": {
+ "baseType": null,
+ "isEnum": false,
+ "enumNames": null,
+ "enumValues": null,
+ "genericArguments": null,
+ "properties": [
+ {
+ "name": "Name",
+ "type": "System.String",
+ "typeSimple": "string"
+ },
+ {
+ "name": "IsGranted",
+ "type": "System.Boolean",
+ "typeSimple": "boolean"
+ }
+ ]
+ },
+ "Volo.Abp.TenantManagement.TenantDto": {
+ "baseType": "Volo.Abp.Application.Dtos.ExtensibleEntityDto",
+ "isEnum": false,
+ "enumNames": null,
+ "enumValues": null,
+ "genericArguments": null,
+ "properties": [
+ {
+ "name": "Name",
+ "type": "System.String",
+ "typeSimple": "string"
+ }
+ ]
+ },
+ "Volo.Abp.TenantManagement.GetTenantsInput": {
+ "baseType": "Volo.Abp.Application.Dtos.PagedAndSortedResultRequestDto",
+ "isEnum": false,
+ "enumNames": null,
+ "enumValues": null,
+ "genericArguments": null,
+ "properties": [
+ {
+ "name": "Filter",
+ "type": "System.String",
+ "typeSimple": "string"
+ }
+ ]
+ },
+ "Volo.Abp.TenantManagement.TenantCreateDto": {
+ "baseType": "Volo.Abp.TenantManagement.TenantCreateOrUpdateDtoBase",
+ "isEnum": false,
+ "enumNames": null,
+ "enumValues": null,
+ "genericArguments": null,
+ "properties": [
+ {
+ "name": "AdminEmailAddress",
+ "type": "System.String",
+ "typeSimple": "string"
+ },
+ {
+ "name": "AdminPassword",
+ "type": "System.String",
+ "typeSimple": "string"
+ }
+ ]
+ },
+ "Volo.Abp.TenantManagement.TenantCreateOrUpdateDtoBase": {
+ "baseType": "Volo.Abp.ObjectExtending.ExtensibleObject",
+ "isEnum": false,
+ "enumNames": null,
+ "enumValues": null,
+ "genericArguments": null,
+ "properties": [
+ {
+ "name": "Name",
+ "type": "System.String",
+ "typeSimple": "string"
+ }
+ ]
+ },
+ "Volo.Abp.TenantManagement.TenantUpdateDto": {
+ "baseType": "Volo.Abp.TenantManagement.TenantCreateOrUpdateDtoBase",
+ "isEnum": false,
+ "enumNames": null,
+ "enumValues": null,
+ "genericArguments": null,
+ "properties": []
+ },
+ "Volo.Abp.FeatureManagement.GetFeatureListResultDto": {
+ "baseType": null,
+ "isEnum": false,
+ "enumNames": null,
+ "enumValues": null,
+ "genericArguments": null,
+ "properties": [
+ {
+ "name": "Groups",
+ "type": "[Volo.Abp.FeatureManagement.FeatureGroupDto]",
+ "typeSimple": "[Volo.Abp.FeatureManagement.FeatureGroupDto]"
+ }
+ ]
+ },
+ "Volo.Abp.FeatureManagement.FeatureGroupDto": {
+ "baseType": null,
+ "isEnum": false,
+ "enumNames": null,
+ "enumValues": null,
+ "genericArguments": null,
+ "properties": [
+ {
+ "name": "Name",
+ "type": "System.String",
+ "typeSimple": "string"
+ },
+ {
+ "name": "DisplayName",
+ "type": "System.String",
+ "typeSimple": "string"
+ },
+ {
+ "name": "Features",
+ "type": "[Volo.Abp.FeatureManagement.FeatureDto]",
+ "typeSimple": "[Volo.Abp.FeatureManagement.FeatureDto]"
+ }
+ ]
+ },
+ "Volo.Abp.FeatureManagement.FeatureDto": {
+ "baseType": null,
+ "isEnum": false,
+ "enumNames": null,
+ "enumValues": null,
+ "genericArguments": null,
+ "properties": [
+ {
+ "name": "Name",
+ "type": "System.String",
+ "typeSimple": "string"
+ },
+ {
+ "name": "DisplayName",
+ "type": "System.String",
+ "typeSimple": "string"
+ },
+ {
+ "name": "Value",
+ "type": "System.String",
+ "typeSimple": "string"
+ },
+ {
+ "name": "Provider",
+ "type": "Volo.Abp.FeatureManagement.FeatureProviderDto",
+ "typeSimple": "Volo.Abp.FeatureManagement.FeatureProviderDto"
+ },
+ {
+ "name": "Description",
+ "type": "System.String",
+ "typeSimple": "string"
+ },
+ {
+ "name": "ValueType",
+ "type": "Volo.Abp.Validation.StringValues.IStringValueType",
+ "typeSimple": "Volo.Abp.Validation.StringValues.IStringValueType"
+ },
+ {
+ "name": "Depth",
+ "type": "System.Int32",
+ "typeSimple": "number"
+ },
+ {
+ "name": "ParentName",
+ "type": "System.String",
+ "typeSimple": "string"
+ }
+ ]
+ },
+ "Volo.Abp.FeatureManagement.FeatureProviderDto": {
+ "baseType": null,
+ "isEnum": false,
+ "enumNames": null,
+ "enumValues": null,
+ "genericArguments": null,
+ "properties": [
+ {
+ "name": "Name",
+ "type": "System.String",
+ "typeSimple": "string"
+ },
+ {
+ "name": "Key",
+ "type": "System.String",
+ "typeSimple": "string"
+ }
+ ]
+ },
+ "Volo.Abp.Validation.StringValues.IStringValueType": {
+ "baseType": null,
+ "isEnum": false,
+ "enumNames": null,
+ "enumValues": null,
+ "genericArguments": null,
+ "properties": [
+ {
+ "name": "Name",
+ "type": "System.String",
+ "typeSimple": "string"
+ },
+ {
+ "name": "Item",
+ "type": "System.Object",
+ "typeSimple": "object"
+ },
+ {
+ "name": "Properties",
+ "type": "{System.String:System.Object}",
+ "typeSimple": "{string:object}"
+ },
+ {
+ "name": "Validator",
+ "type": "Volo.Abp.Validation.StringValues.IValueValidator",
+ "typeSimple": "Volo.Abp.Validation.StringValues.IValueValidator"
+ }
+ ]
+ },
+ "Volo.Abp.Validation.StringValues.IValueValidator": {
+ "baseType": null,
+ "isEnum": false,
+ "enumNames": null,
+ "enumValues": null,
+ "genericArguments": null,
+ "properties": [
+ {
+ "name": "Name",
+ "type": "System.String",
+ "typeSimple": "string"
+ },
+ {
+ "name": "Item",
+ "type": "System.Object",
+ "typeSimple": "object"
+ },
+ {
+ "name": "Properties",
+ "type": "{System.String:System.Object}",
+ "typeSimple": "{string:object}"
+ }
+ ]
+ },
+ "Volo.Abp.FeatureManagement.UpdateFeaturesDto": {
+ "baseType": null,
+ "isEnum": false,
+ "enumNames": null,
+ "enumValues": null,
+ "genericArguments": null,
+ "properties": [
+ {
+ "name": "Features",
+ "type": "[Volo.Abp.FeatureManagement.UpdateFeatureDto]",
+ "typeSimple": "[Volo.Abp.FeatureManagement.UpdateFeatureDto]"
+ }
+ ]
+ },
+ "Volo.Abp.FeatureManagement.UpdateFeatureDto": {
+ "baseType": null,
+ "isEnum": false,
+ "enumNames": null,
+ "enumValues": null,
+ "genericArguments": null,
+ "properties": [
+ {
+ "name": "Name",
+ "type": "System.String",
+ "typeSimple": "string"
+ },
+ {
+ "name": "Value",
+ "type": "System.String",
+ "typeSimple": "string"
+ }
+ ]
+ },
+ "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationConfigurationDto": {
+ "baseType": null,
+ "isEnum": false,
+ "enumNames": null,
+ "enumValues": null,
+ "genericArguments": null,
+ "properties": [
+ {
+ "name": "Localization",
+ "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationLocalizationConfigurationDto",
+ "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationLocalizationConfigurationDto"
+ },
+ {
+ "name": "Auth",
+ "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationAuthConfigurationDto",
+ "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationAuthConfigurationDto"
+ },
+ {
+ "name": "Setting",
+ "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationSettingConfigurationDto",
+ "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationSettingConfigurationDto"
+ },
+ {
+ "name": "CurrentUser",
+ "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.CurrentUserDto",
+ "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.CurrentUserDto"
+ },
+ {
+ "name": "Features",
+ "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationFeatureConfigurationDto",
+ "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationFeatureConfigurationDto"
+ },
+ {
+ "name": "MultiTenancy",
+ "type": "Volo.Abp.AspNetCore.Mvc.MultiTenancy.MultiTenancyInfoDto",
+ "typeSimple": "Volo.Abp.AspNetCore.Mvc.MultiTenancy.MultiTenancyInfoDto"
+ },
+ {
+ "name": "CurrentTenant",
+ "type": "Volo.Abp.AspNetCore.Mvc.MultiTenancy.CurrentTenantDto",
+ "typeSimple": "Volo.Abp.AspNetCore.Mvc.MultiTenancy.CurrentTenantDto"
+ },
+ {
+ "name": "Timing",
+ "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.TimingDto",
+ "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.TimingDto"
+ },
+ {
+ "name": "Clock",
+ "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ClockDto",
+ "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ClockDto"
+ },
+ {
+ "name": "ObjectExtensions",
+ "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ObjectExtensionsDto",
+ "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ObjectExtensionsDto"
+ }
+ ]
+ },
+ "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationLocalizationConfigurationDto": {
+ "baseType": null,
+ "isEnum": false,
+ "enumNames": null,
+ "enumValues": null,
+ "genericArguments": null,
+ "properties": [
+ {
+ "name": "Values",
+ "type": "{System.String:{System.String:System.String}}",
+ "typeSimple": "{string:{string:string}}"
+ },
+ {
+ "name": "Languages",
+ "type": "[Volo.Abp.Localization.LanguageInfo]",
+ "typeSimple": "[Volo.Abp.Localization.LanguageInfo]"
+ },
+ {
+ "name": "CurrentCulture",
+ "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.CurrentCultureDto",
+ "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.CurrentCultureDto"
+ },
+ {
+ "name": "DefaultResourceName",
+ "type": "System.String",
+ "typeSimple": "string"
+ },
+ {
+ "name": "LanguagesMap",
+ "type": "{System.String:[Volo.Abp.NameValue]}",
+ "typeSimple": "{string:[Volo.Abp.NameValue]}"
+ },
+ {
+ "name": "LanguageFilesMap",
+ "type": "{System.String:[Volo.Abp.NameValue]}",
+ "typeSimple": "{string:[Volo.Abp.NameValue]}"
+ }
+ ]
+ },
+ "Volo.Abp.Localization.LanguageInfo": {
+ "baseType": null,
+ "isEnum": false,
+ "enumNames": null,
+ "enumValues": null,
+ "genericArguments": null,
+ "properties": [
+ {
+ "name": "CultureName",
+ "type": "System.String",
+ "typeSimple": "string"
+ },
+ {
+ "name": "UiCultureName",
+ "type": "System.String",
+ "typeSimple": "string"
+ },
+ {
+ "name": "DisplayName",
+ "type": "System.String",
+ "typeSimple": "string"
+ },
+ {
+ "name": "FlagIcon",
+ "type": "System.String",
+ "typeSimple": "string"
+ }
+ ]
+ },
+ "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.CurrentCultureDto": {
+ "baseType": null,
+ "isEnum": false,
+ "enumNames": null,
+ "enumValues": null,
+ "genericArguments": null,
+ "properties": [
+ {
+ "name": "DisplayName",
+ "type": "System.String",
+ "typeSimple": "string"
+ },
+ {
+ "name": "EnglishName",
+ "type": "System.String",
+ "typeSimple": "string"
+ },
+ {
+ "name": "ThreeLetterIsoLanguageName",
+ "type": "System.String",
+ "typeSimple": "string"
+ },
+ {
+ "name": "TwoLetterIsoLanguageName",
+ "type": "System.String",
+ "typeSimple": "string"
+ },
+ {
+ "name": "IsRightToLeft",
+ "type": "System.Boolean",
+ "typeSimple": "boolean"
+ },
+ {
+ "name": "CultureName",
+ "type": "System.String",
+ "typeSimple": "string"
+ },
+ {
+ "name": "Name",
+ "type": "System.String",
+ "typeSimple": "string"
+ },
+ {
+ "name": "NativeName",
+ "type": "System.String",
+ "typeSimple": "string"
+ },
+ {
+ "name": "DateTimeFormat",
+ "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.DateTimeFormatDto",
+ "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.DateTimeFormatDto"
+ }
+ ]
+ },
+ "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.DateTimeFormatDto": {
+ "baseType": null,
+ "isEnum": false,
+ "enumNames": null,
+ "enumValues": null,
+ "genericArguments": null,
+ "properties": [
+ {
+ "name": "CalendarAlgorithmType",
+ "type": "System.String",
+ "typeSimple": "string"
+ },
+ {
+ "name": "DateTimeFormatLong",
+ "type": "System.String",
+ "typeSimple": "string"
+ },
+ {
+ "name": "ShortDatePattern",
+ "type": "System.String",
+ "typeSimple": "string"
+ },
+ {
+ "name": "FullDateTimePattern",
+ "type": "System.String",
+ "typeSimple": "string"
+ },
+ {
+ "name": "DateSeparator",
+ "type": "System.String",
+ "typeSimple": "string"
+ },
+ {
+ "name": "ShortTimePattern",
+ "type": "System.String",
+ "typeSimple": "string"
+ },
+ {
+ "name": "LongTimePattern",
+ "type": "System.String",
+ "typeSimple": "string"
+ }
+ ]
+ },
+ "Volo.Abp.NameValue": {
+ "baseType": "Volo.Abp.NameValue",
+ "isEnum": false,
+ "enumNames": null,
+ "enumValues": null,
+ "genericArguments": null,
+ "properties": []
+ },
+ "Volo.Abp.NameValue": {
+ "baseType": null,
+ "isEnum": false,
+ "enumNames": null,
+ "enumValues": null,
+ "genericArguments": [
+ "T"
+ ],
+ "properties": [
+ {
+ "name": "Name",
+ "type": "System.String",
+ "typeSimple": "string"
+ },
+ {
+ "name": "Value",
+ "type": "T",
+ "typeSimple": "T"
+ }
+ ]
+ },
+ "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationAuthConfigurationDto": {
+ "baseType": null,
+ "isEnum": false,
+ "enumNames": null,
+ "enumValues": null,
+ "genericArguments": null,
+ "properties": [
+ {
+ "name": "Policies",
+ "type": "{System.String:System.Boolean}",
+ "typeSimple": "{string:boolean}"
+ },
+ {
+ "name": "GrantedPolicies",
+ "type": "{System.String:System.Boolean}",
+ "typeSimple": "{string:boolean}"
+ }
+ ]
+ },
+ "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationSettingConfigurationDto": {
+ "baseType": null,
+ "isEnum": false,
+ "enumNames": null,
+ "enumValues": null,
+ "genericArguments": null,
+ "properties": [
+ {
+ "name": "Values",
+ "type": "{System.String:System.String}",
+ "typeSimple": "{string:string}"
+ }
+ ]
+ },
+ "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.CurrentUserDto": {
+ "baseType": null,
+ "isEnum": false,
+ "enumNames": null,
+ "enumValues": null,
+ "genericArguments": null,
+ "properties": [
+ {
+ "name": "IsAuthenticated",
+ "type": "System.Boolean",
+ "typeSimple": "boolean"
+ },
+ {
+ "name": "Id",
+ "type": "System.Guid?",
+ "typeSimple": "string?"
+ },
+ {
+ "name": "TenantId",
+ "type": "System.Guid?",
+ "typeSimple": "string?"
+ },
+ {
+ "name": "UserName",
+ "type": "System.String",
+ "typeSimple": "string"
+ },
+ {
+ "name": "Name",
+ "type": "System.String",
+ "typeSimple": "string"
+ },
+ {
+ "name": "SurName",
+ "type": "System.String",
+ "typeSimple": "string"
+ },
+ {
+ "name": "Email",
+ "type": "System.String",
+ "typeSimple": "string"
+ },
+ {
+ "name": "EmailVerified",
+ "type": "System.Boolean",
+ "typeSimple": "boolean"
+ },
+ {
+ "name": "PhoneNumber",
+ "type": "System.String",
+ "typeSimple": "string"
+ },
+ {
+ "name": "PhoneNumberVerified",
+ "type": "System.Boolean",
+ "typeSimple": "boolean"
+ },
+ {
+ "name": "Roles",
+ "type": "[System.String]",
+ "typeSimple": "[string]"
+ }
+ ]
+ },
+ "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationFeatureConfigurationDto": {
+ "baseType": null,
+ "isEnum": false,
+ "enumNames": null,
+ "enumValues": null,
+ "genericArguments": null,
+ "properties": [
+ {
+ "name": "Values",
+ "type": "{System.String:System.String}",
+ "typeSimple": "{string:string}"
+ }
+ ]
+ },
+ "Volo.Abp.AspNetCore.Mvc.MultiTenancy.MultiTenancyInfoDto": {
+ "baseType": null,
+ "isEnum": false,
+ "enumNames": null,
+ "enumValues": null,
+ "genericArguments": null,
+ "properties": [
+ {
+ "name": "IsEnabled",
+ "type": "System.Boolean",
+ "typeSimple": "boolean"
+ }
+ ]
+ },
+ "Volo.Abp.AspNetCore.Mvc.MultiTenancy.CurrentTenantDto": {
+ "baseType": null,
+ "isEnum": false,
+ "enumNames": null,
+ "enumValues": null,
+ "genericArguments": null,
+ "properties": [
+ {
+ "name": "Id",
+ "type": "System.Guid?",
+ "typeSimple": "string?"
+ },
+ {
+ "name": "Name",
+ "type": "System.String",
+ "typeSimple": "string"
+ },
+ {
+ "name": "IsAvailable",
+ "type": "System.Boolean",
+ "typeSimple": "boolean"
+ }
+ ]
+ },
+ "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.TimingDto": {
+ "baseType": null,
+ "isEnum": false,
+ "enumNames": null,
+ "enumValues": null,
+ "genericArguments": null,
+ "properties": [
+ {
+ "name": "TimeZone",
+ "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.TimeZone",
+ "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.TimeZone"
+ }
+ ]
+ },
+ "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.TimeZone": {
+ "baseType": null,
+ "isEnum": false,
+ "enumNames": null,
+ "enumValues": null,
+ "genericArguments": null,
+ "properties": [
+ {
+ "name": "Iana",
+ "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.IanaTimeZone",
+ "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.IanaTimeZone"
+ },
+ {
+ "name": "Windows",
+ "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.WindowsTimeZone",
+ "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.WindowsTimeZone"
+ }
+ ]
+ },
+ "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.IanaTimeZone": {
+ "baseType": null,
+ "isEnum": false,
+ "enumNames": null,
+ "enumValues": null,
+ "genericArguments": null,
+ "properties": [
+ {
+ "name": "TimeZoneName",
+ "type": "System.String",
+ "typeSimple": "string"
+ }
+ ]
+ },
+ "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.WindowsTimeZone": {
+ "baseType": null,
+ "isEnum": false,
+ "enumNames": null,
+ "enumValues": null,
+ "genericArguments": null,
+ "properties": [
+ {
+ "name": "TimeZoneId",
+ "type": "System.String",
+ "typeSimple": "string"
+ }
+ ]
+ },
+ "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ClockDto": {
+ "baseType": null,
+ "isEnum": false,
+ "enumNames": null,
+ "enumValues": null,
+ "genericArguments": null,
+ "properties": [
+ {
+ "name": "Kind",
+ "type": "System.String",
+ "typeSimple": "string"
+ }
+ ]
+ },
+ "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ObjectExtensionsDto": {
+ "baseType": null,
+ "isEnum": false,
+ "enumNames": null,
+ "enumValues": null,
+ "genericArguments": null,
+ "properties": [
+ {
+ "name": "Modules",
+ "type": "{System.String:Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ModuleExtensionDto}",
+ "typeSimple": "{string:Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ModuleExtensionDto}"
+ },
+ {
+ "name": "Enums",
+ "type": "{System.String:Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionEnumDto}",
+ "typeSimple": "{string:Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionEnumDto}"
+ }
+ ]
+ },
+ "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ModuleExtensionDto": {
+ "baseType": null,
+ "isEnum": false,
+ "enumNames": null,
+ "enumValues": null,
+ "genericArguments": null,
+ "properties": [
+ {
+ "name": "Entities",
+ "type": "{System.String:Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.EntityExtensionDto}",
+ "typeSimple": "{string:Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.EntityExtensionDto}"
+ },
+ {
+ "name": "Configuration",
+ "type": "{System.String:System.Object}",
+ "typeSimple": "{string:object}"
+ }
+ ]
+ },
+ "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.EntityExtensionDto": {
+ "baseType": null,
+ "isEnum": false,
+ "enumNames": null,
+ "enumValues": null,
+ "genericArguments": null,
+ "properties": [
+ {
+ "name": "Properties",
+ "type": "{System.String:Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyDto}",
+ "typeSimple": "{string:Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyDto}"
+ },
+ {
+ "name": "Configuration",
+ "type": "{System.String:System.Object}",
+ "typeSimple": "{string:object}"
+ }
+ ]
+ },
+ "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyDto": {
+ "baseType": null,
+ "isEnum": false,
+ "enumNames": null,
+ "enumValues": null,
+ "genericArguments": null,
+ "properties": [
+ {
+ "name": "Type",
+ "type": "System.String",
+ "typeSimple": "string"
+ },
+ {
+ "name": "TypeSimple",
+ "type": "System.String",
+ "typeSimple": "string"
+ },
+ {
+ "name": "DisplayName",
+ "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.LocalizableStringDto",
+ "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.LocalizableStringDto"
+ },
+ {
+ "name": "Api",
+ "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyApiDto",
+ "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyApiDto"
+ },
+ {
+ "name": "Ui",
+ "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyUiDto",
+ "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyUiDto"
+ },
+ {
+ "name": "Attributes",
+ "type": "[Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyAttributeDto]",
+ "typeSimple": "[Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyAttributeDto]"
+ },
+ {
+ "name": "Configuration",
+ "type": "{System.String:System.Object}",
+ "typeSimple": "{string:object}"
+ },
+ {
+ "name": "DefaultValue",
+ "type": "System.Object",
+ "typeSimple": "object"
+ }
+ ]
+ },
+ "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.LocalizableStringDto": {
+ "baseType": null,
+ "isEnum": false,
+ "enumNames": null,
+ "enumValues": null,
+ "genericArguments": null,
+ "properties": [
+ {
+ "name": "Name",
+ "type": "System.String",
+ "typeSimple": "string"
+ },
+ {
+ "name": "Resource",
+ "type": "System.String",
+ "typeSimple": "string"
+ }
+ ]
+ },
+ "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyApiDto": {
+ "baseType": null,
+ "isEnum": false,
+ "enumNames": null,
+ "enumValues": null,
+ "genericArguments": null,
+ "properties": [
+ {
+ "name": "OnGet",
+ "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyApiGetDto",
+ "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyApiGetDto"
+ },
+ {
+ "name": "OnCreate",
+ "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyApiCreateDto",
+ "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyApiCreateDto"
+ },
+ {
+ "name": "OnUpdate",
+ "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyApiUpdateDto",
+ "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyApiUpdateDto"
+ }
+ ]
+ },
+ "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyApiGetDto": {
+ "baseType": null,
+ "isEnum": false,
+ "enumNames": null,
+ "enumValues": null,
+ "genericArguments": null,
+ "properties": [
+ {
+ "name": "IsAvailable",
+ "type": "System.Boolean",
+ "typeSimple": "boolean"
+ }
+ ]
+ },
+ "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyApiCreateDto": {
+ "baseType": null,
+ "isEnum": false,
+ "enumNames": null,
+ "enumValues": null,
+ "genericArguments": null,
+ "properties": [
+ {
+ "name": "IsAvailable",
+ "type": "System.Boolean",
+ "typeSimple": "boolean"
+ }
+ ]
+ },
+ "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyApiUpdateDto": {
+ "baseType": null,
+ "isEnum": false,
+ "enumNames": null,
+ "enumValues": null,
+ "genericArguments": null,
+ "properties": [
+ {
+ "name": "IsAvailable",
+ "type": "System.Boolean",
+ "typeSimple": "boolean"
+ }
+ ]
+ },
+ "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyUiDto": {
+ "baseType": null,
+ "isEnum": false,
+ "enumNames": null,
+ "enumValues": null,
+ "genericArguments": null,
+ "properties": [
+ {
+ "name": "OnTable",
+ "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyUiTableDto",
+ "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyUiTableDto"
+ },
+ {
+ "name": "OnCreateForm",
+ "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyUiFormDto",
+ "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyUiFormDto"
+ },
+ {
+ "name": "OnEditForm",
+ "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyUiFormDto",
+ "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyUiFormDto"
+ }
+ ]
+ },
+ "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyUiTableDto": {
+ "baseType": null,
+ "isEnum": false,
+ "enumNames": null,
+ "enumValues": null,
+ "genericArguments": null,
+ "properties": [
+ {
+ "name": "IsVisible",
+ "type": "System.Boolean",
+ "typeSimple": "boolean"
+ }
+ ]
+ },
+ "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyUiFormDto": {
+ "baseType": null,
+ "isEnum": false,
+ "enumNames": null,
+ "enumValues": null,
+ "genericArguments": null,
+ "properties": [
+ {
+ "name": "IsVisible",
+ "type": "System.Boolean",
+ "typeSimple": "boolean"
+ }
+ ]
+ },
+ "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyAttributeDto": {
+ "baseType": null,
+ "isEnum": false,
+ "enumNames": null,
+ "enumValues": null,
+ "genericArguments": null,
+ "properties": [
+ {
+ "name": "TypeSimple",
+ "type": "System.String",
+ "typeSimple": "string"
+ },
+ {
+ "name": "Config",
+ "type": "{System.String:System.Object}",
+ "typeSimple": "{string:object}"
+ }
+ ]
+ },
+ "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionEnumDto": {
+ "baseType": null,
+ "isEnum": false,
+ "enumNames": null,
+ "enumValues": null,
+ "genericArguments": null,
+ "properties": [
+ {
+ "name": "Fields",
+ "type": "[Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionEnumFieldDto]",
+ "typeSimple": "[Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionEnumFieldDto]"
+ },
+ {
+ "name": "LocalizationResource",
+ "type": "System.String",
+ "typeSimple": "string"
+ }
+ ]
+ },
+ "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionEnumFieldDto": {
+ "baseType": null,
+ "isEnum": false,
+ "enumNames": null,
+ "enumValues": null,
+ "genericArguments": null,
+ "properties": [
+ {
+ "name": "Name",
+ "type": "System.String",
+ "typeSimple": "string"
+ },
+ {
+ "name": "Value",
+ "type": "System.Object",
+ "typeSimple": "object"
+ }
+ ]
+ },
+ "Volo.Abp.Http.Modeling.ApplicationApiDescriptionModelRequestDto": {
+ "baseType": null,
+ "isEnum": false,
+ "enumNames": null,
+ "enumValues": null,
+ "genericArguments": null,
+ "properties": [
+ {
+ "name": "IncludeTypes",
+ "type": "System.Boolean",
+ "typeSimple": "boolean"
+ }
+ ]
+ },
+ "Volo.Abp.Http.Modeling.ApplicationApiDescriptionModel": {
+ "baseType": null,
+ "isEnum": false,
+ "enumNames": null,
+ "enumValues": null,
+ "genericArguments": null,
+ "properties": [
+ {
+ "name": "Modules",
+ "type": "{System.String:Volo.Abp.Http.Modeling.ModuleApiDescriptionModel}",
+ "typeSimple": "{string:Volo.Abp.Http.Modeling.ModuleApiDescriptionModel}"
+ },
+ {
+ "name": "Types",
+ "type": "{System.String:Volo.Abp.Http.Modeling.TypeApiDescriptionModel}",
+ "typeSimple": "{string:Volo.Abp.Http.Modeling.TypeApiDescriptionModel}"
+ }
+ ]
+ },
+ "Volo.Abp.Http.Modeling.ModuleApiDescriptionModel": {
+ "baseType": null,
+ "isEnum": false,
+ "enumNames": null,
+ "enumValues": null,
+ "genericArguments": null,
+ "properties": [
+ {
+ "name": "RootPath",
+ "type": "System.String",
+ "typeSimple": "string"
+ },
+ {
+ "name": "RemoteServiceName",
+ "type": "System.String",
+ "typeSimple": "string"
+ },
+ {
+ "name": "Controllers",
+ "type": "{System.String:Volo.Abp.Http.Modeling.ControllerApiDescriptionModel}",
+ "typeSimple": "{string:Volo.Abp.Http.Modeling.ControllerApiDescriptionModel}"
+ }
+ ]
+ },
+ "Volo.Abp.Http.Modeling.ControllerApiDescriptionModel": {
+ "baseType": null,
+ "isEnum": false,
+ "enumNames": null,
+ "enumValues": null,
+ "genericArguments": null,
+ "properties": [
+ {
+ "name": "ControllerName",
+ "type": "System.String",
+ "typeSimple": "string"
+ },
+ {
+ "name": "Type",
+ "type": "System.String",
+ "typeSimple": "string"
+ },
+ {
+ "name": "Interfaces",
+ "type": "[Volo.Abp.Http.Modeling.ControllerInterfaceApiDescriptionModel]",
+ "typeSimple": "[Volo.Abp.Http.Modeling.ControllerInterfaceApiDescriptionModel]"
+ },
+ {
+ "name": "Actions",
+ "type": "{System.String:Volo.Abp.Http.Modeling.ActionApiDescriptionModel}",
+ "typeSimple": "{string:Volo.Abp.Http.Modeling.ActionApiDescriptionModel}"
+ }
+ ]
+ },
+ "Volo.Abp.Http.Modeling.ControllerInterfaceApiDescriptionModel": {
+ "baseType": null,
+ "isEnum": false,
+ "enumNames": null,
+ "enumValues": null,
+ "genericArguments": null,
+ "properties": [
+ {
+ "name": "Type",
+ "type": "System.String",
+ "typeSimple": "string"
+ }
+ ]
+ },
+ "Volo.Abp.Http.Modeling.ActionApiDescriptionModel": {
+ "baseType": null,
+ "isEnum": false,
+ "enumNames": null,
+ "enumValues": null,
+ "genericArguments": null,
+ "properties": [
+ {
+ "name": "UniqueName",
+ "type": "System.String",
+ "typeSimple": "string"
+ },
+ {
+ "name": "Name",
+ "type": "System.String",
+ "typeSimple": "string"
+ },
+ {
+ "name": "HttpMethod",
+ "type": "System.String",
+ "typeSimple": "string"
+ },
+ {
+ "name": "Url",
+ "type": "System.String",
+ "typeSimple": "string"
+ },
+ {
+ "name": "SupportedVersions",
+ "type": "[System.String]",
+ "typeSimple": "[string]"
+ },
+ {
+ "name": "ParametersOnMethod",
+ "type": "[Volo.Abp.Http.Modeling.MethodParameterApiDescriptionModel]",
+ "typeSimple": "[Volo.Abp.Http.Modeling.MethodParameterApiDescriptionModel]"
+ },
+ {
+ "name": "Parameters",
+ "type": "[Volo.Abp.Http.Modeling.ParameterApiDescriptionModel]",
+ "typeSimple": "[Volo.Abp.Http.Modeling.ParameterApiDescriptionModel]"
+ },
+ {
+ "name": "ReturnValue",
+ "type": "Volo.Abp.Http.Modeling.ReturnValueApiDescriptionModel",
+ "typeSimple": "Volo.Abp.Http.Modeling.ReturnValueApiDescriptionModel"
+ }
+ ]
+ },
+ "Volo.Abp.Http.Modeling.MethodParameterApiDescriptionModel": {
+ "baseType": null,
+ "isEnum": false,
+ "enumNames": null,
+ "enumValues": null,
+ "genericArguments": null,
+ "properties": [
+ {
+ "name": "Name",
+ "type": "System.String",
+ "typeSimple": "string"
+ },
+ {
+ "name": "TypeAsString",
+ "type": "System.String",
+ "typeSimple": "string"
+ },
+ {
+ "name": "Type",
+ "type": "System.String",
+ "typeSimple": "string"
+ },
+ {
+ "name": "TypeSimple",
+ "type": "System.String",
+ "typeSimple": "string"
+ },
+ {
+ "name": "IsOptional",
+ "type": "System.Boolean",
+ "typeSimple": "boolean"
+ },
+ {
+ "name": "DefaultValue",
+ "type": "System.Object",
+ "typeSimple": "object"
+ }
+ ]
+ },
+ "Volo.Abp.Http.Modeling.ParameterApiDescriptionModel": {
+ "baseType": null,
+ "isEnum": false,
+ "enumNames": null,
+ "enumValues": null,
+ "genericArguments": null,
+ "properties": [
+ {
+ "name": "NameOnMethod",
+ "type": "System.String",
+ "typeSimple": "string"
+ },
+ {
+ "name": "Name",
+ "type": "System.String",
+ "typeSimple": "string"
+ },
+ {
+ "name": "Type",
+ "type": "System.String",
+ "typeSimple": "string"
+ },
+ {
+ "name": "TypeSimple",
+ "type": "System.String",
+ "typeSimple": "string"
+ },
+ {
+ "name": "IsOptional",
+ "type": "System.Boolean",
+ "typeSimple": "boolean"
+ },
+ {
+ "name": "DefaultValue",
+ "type": "System.Object",
+ "typeSimple": "object"
+ },
+ {
+ "name": "ConstraintTypes",
+ "type": "[System.String]",
+ "typeSimple": "[string]"
+ },
+ {
+ "name": "BindingSourceId",
+ "type": "System.String",
+ "typeSimple": "string"
+ },
+ {
+ "name": "DescriptorName",
+ "type": "System.String",
+ "typeSimple": "string"
+ }
+ ]
+ },
+ "Volo.Abp.Http.Modeling.ReturnValueApiDescriptionModel": {
+ "baseType": null,
+ "isEnum": false,
+ "enumNames": null,
+ "enumValues": null,
+ "genericArguments": null,
+ "properties": [
+ {
+ "name": "Type",
+ "type": "System.String",
+ "typeSimple": "string"
+ },
+ {
+ "name": "TypeSimple",
+ "type": "System.String",
+ "typeSimple": "string"
+ }
+ ]
+ },
+ "Volo.Abp.Http.Modeling.TypeApiDescriptionModel": {
+ "baseType": null,
+ "isEnum": false,
+ "enumNames": null,
+ "enumValues": null,
+ "genericArguments": null,
+ "properties": [
+ {
+ "name": "BaseType",
+ "type": "System.String",
+ "typeSimple": "string"
+ },
+ {
+ "name": "IsEnum",
+ "type": "System.Boolean",
+ "typeSimple": "boolean"
+ },
+ {
+ "name": "EnumNames",
+ "type": "[System.String]",
+ "typeSimple": "[string]"
+ },
+ {
+ "name": "EnumValues",
+ "type": "[System.Object]",
+ "typeSimple": "[object]"
+ },
+ {
+ "name": "GenericArguments",
+ "type": "[System.String]",
+ "typeSimple": "[string]"
+ },
+ {
+ "name": "Properties",
+ "type": "[Volo.Abp.Http.Modeling.PropertyApiDescriptionModel]",
+ "typeSimple": "[Volo.Abp.Http.Modeling.PropertyApiDescriptionModel]"
+ }
+ ]
+ },
+ "Volo.Abp.Http.Modeling.PropertyApiDescriptionModel": {
+ "baseType": null,
+ "isEnum": false,
+ "enumNames": null,
+ "enumValues": null,
+ "genericArguments": null,
+ "properties": [
+ {
+ "name": "Name",
+ "type": "System.String",
+ "typeSimple": "string"
+ },
+ {
+ "name": "Type",
+ "type": "System.String",
+ "typeSimple": "string"
+ },
+ {
+ "name": "TypeSimple",
+ "type": "System.String",
+ "typeSimple": "string"
+ }
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/npm/ng-packs/nx/ng-packs/packages/tenant-management/src/lib/proxy/index.ts b/npm/ng-packs/nx/ng-packs/packages/tenant-management/src/lib/proxy/index.ts
new file mode 100644
index 0000000000..12a257602f
--- /dev/null
+++ b/npm/ng-packs/nx/ng-packs/packages/tenant-management/src/lib/proxy/index.ts
@@ -0,0 +1,2 @@
+export * from './models';
+export * from './tenant.service';
diff --git a/npm/ng-packs/nx/ng-packs/packages/tenant-management/src/lib/proxy/models.ts b/npm/ng-packs/nx/ng-packs/packages/tenant-management/src/lib/proxy/models.ts
new file mode 100644
index 0000000000..c084037c5b
--- /dev/null
+++ b/npm/ng-packs/nx/ng-packs/packages/tenant-management/src/lib/proxy/models.ts
@@ -0,0 +1,22 @@
+import type { ExtensibleEntityDto, ExtensibleObject, PagedAndSortedResultRequestDto } from '@abp/ng.core';
+
+export interface GetTenantsInput extends PagedAndSortedResultRequestDto {
+ filter: string;
+}
+
+export interface TenantCreateDto extends TenantCreateOrUpdateDtoBase {
+ adminEmailAddress: string;
+ adminPassword: string;
+}
+
+export interface TenantCreateOrUpdateDtoBase extends ExtensibleObject {
+ name: string;
+}
+
+export interface TenantDto extends ExtensibleEntityDto {
+ name: string;
+}
+
+// tslint:disable-next-line: no-empty-interface
+export interface TenantUpdateDto extends TenantCreateOrUpdateDtoBase {
+}
diff --git a/npm/ng-packs/nx/ng-packs/packages/tenant-management/src/lib/proxy/tenant.service.ts b/npm/ng-packs/nx/ng-packs/packages/tenant-management/src/lib/proxy/tenant.service.ts
new file mode 100644
index 0000000000..61d1667be4
--- /dev/null
+++ b/npm/ng-packs/nx/ng-packs/packages/tenant-management/src/lib/proxy/tenant.service.ts
@@ -0,0 +1,74 @@
+import type { GetTenantsInput, TenantCreateDto, TenantDto, TenantUpdateDto } from './models';
+import { RestService } from '@abp/ng.core';
+import type { PagedResultDto } from '@abp/ng.core';
+import { Injectable } from '@angular/core';
+
+@Injectable({
+ providedIn: 'root',
+})
+export class TenantService {
+ apiName = 'AbpTenantManagement';
+
+ create = (input: TenantCreateDto) =>
+ this.restService.request({
+ method: 'POST',
+ url: '/api/multi-tenancy/tenants',
+ body: input,
+ },
+ { apiName: this.apiName });
+
+ delete = (id: string) =>
+ this.restService.request({
+ method: 'DELETE',
+ url: `/api/multi-tenancy/tenants/${id}`,
+ },
+ { apiName: this.apiName });
+
+ deleteDefaultConnectionString = (id: string) =>
+ this.restService.request({
+ method: 'DELETE',
+ url: `/api/multi-tenancy/tenants/${id}/default-connection-string`,
+ },
+ { apiName: this.apiName });
+
+ get = (id: string) =>
+ this.restService.request({
+ method: 'GET',
+ url: `/api/multi-tenancy/tenants/${id}`,
+ },
+ { apiName: this.apiName });
+
+ getDefaultConnectionString = (id: string) =>
+ this.restService.request({
+ method: 'GET',
+ responseType: 'text',
+ url: `/api/multi-tenancy/tenants/${id}/default-connection-string`,
+ },
+ { apiName: this.apiName });
+
+ getList = (input: GetTenantsInput) =>
+ this.restService.request>({
+ method: 'GET',
+ url: '/api/multi-tenancy/tenants',
+ params: { filter: input.filter, sorting: input.sorting, skipCount: input.skipCount, maxResultCount: input.maxResultCount },
+ },
+ { apiName: this.apiName });
+
+ update = (id: string, input: TenantUpdateDto) =>
+ this.restService.request({
+ method: 'PUT',
+ url: `/api/multi-tenancy/tenants/${id}`,
+ body: input,
+ },
+ { apiName: this.apiName });
+
+ updateDefaultConnectionString = (id: string, defaultConnectionString: string) =>
+ this.restService.request({
+ method: 'PUT',
+ url: `/api/multi-tenancy/tenants/${id}/default-connection-string`,
+ params: { defaultConnectionString },
+ },
+ { apiName: this.apiName });
+
+ constructor(private restService: RestService) {}
+}
diff --git a/npm/ng-packs/nx/ng-packs/packages/tenant-management/src/lib/services/index.ts b/npm/ng-packs/nx/ng-packs/packages/tenant-management/src/lib/services/index.ts
new file mode 100644
index 0000000000..22b8fba686
--- /dev/null
+++ b/npm/ng-packs/nx/ng-packs/packages/tenant-management/src/lib/services/index.ts
@@ -0,0 +1 @@
+export * from './tenant-management-state.service';
diff --git a/npm/ng-packs/nx/ng-packs/packages/tenant-management/src/lib/services/tenant-management-state.service.ts b/npm/ng-packs/nx/ng-packs/packages/tenant-management/src/lib/services/tenant-management-state.service.ts
new file mode 100644
index 0000000000..4475bef141
--- /dev/null
+++ b/npm/ng-packs/nx/ng-packs/packages/tenant-management/src/lib/services/tenant-management-state.service.ts
@@ -0,0 +1,41 @@
+import { Injectable } from '@angular/core';
+import { Store } from '@ngxs/store';
+import { TenantManagementState } from '../states/tenant-management.state';
+import { ABP } from '@abp/ng.core';
+import { GetTenants, GetTenantById, CreateTenant, UpdateTenant, DeleteTenant } from '../actions';
+import { TenantManagement } from '../models';
+
+@Injectable({
+ providedIn: 'root',
+})
+export class TenantManagementStateService {
+ constructor(private store: Store) {}
+
+ get() {
+ return this.store.selectSnapshot(TenantManagementState.get);
+ }
+
+ getTenantsTotalCount() {
+ return this.store.selectSnapshot(TenantManagementState.getTenantsTotalCount);
+ }
+
+ dispatchGetTenants(...args: ConstructorParameters) {
+ return this.store.dispatch(new GetTenants(...args));
+ }
+
+ dispatchGetTenantById(...args: ConstructorParameters) {
+ return this.store.dispatch(new GetTenantById(...args));
+ }
+
+ dispatchCreateTenant(...args: ConstructorParameters) {
+ return this.store.dispatch(new CreateTenant(...args));
+ }
+
+ dispatchUpdateTenant(...args: ConstructorParameters) {
+ return this.store.dispatch(new UpdateTenant(...args));
+ }
+
+ dispatchDeleteTenant(...args: ConstructorParameters) {
+ return this.store.dispatch(new DeleteTenant(...args));
+ }
+}
diff --git a/npm/ng-packs/nx/ng-packs/packages/tenant-management/src/lib/states/index.ts b/npm/ng-packs/nx/ng-packs/packages/tenant-management/src/lib/states/index.ts
new file mode 100644
index 0000000000..a6fb4168fe
--- /dev/null
+++ b/npm/ng-packs/nx/ng-packs/packages/tenant-management/src/lib/states/index.ts
@@ -0,0 +1 @@
+export * from './tenant-management.state';
diff --git a/npm/ng-packs/nx/ng-packs/packages/tenant-management/src/lib/states/tenant-management.state.ts b/npm/ng-packs/nx/ng-packs/packages/tenant-management/src/lib/states/tenant-management.state.ts
new file mode 100644
index 0000000000..2002afbcd9
--- /dev/null
+++ b/npm/ng-packs/nx/ng-packs/packages/tenant-management/src/lib/states/tenant-management.state.ts
@@ -0,0 +1,70 @@
+import { ABP, PagedResultDto } from '@abp/ng.core';
+import { Action, Selector, State, StateContext } from '@ngxs/store';
+import { tap } from 'rxjs/operators';
+import {
+ CreateTenant,
+ DeleteTenant,
+ GetTenantById,
+ GetTenants,
+ UpdateTenant,
+} from '../actions/tenant-management.actions';
+import { TenantManagement } from '../models/tenant-management';
+import { Injectable } from '@angular/core';
+import { TenantService } from '../proxy/tenant.service';
+import { TenantDto } from '../proxy/models';
+
+@State({
+ name: 'TenantManagementState',
+ defaults: { result: {}, selectedItem: {} } as TenantManagement.State,
+})
+@Injectable()
+export class TenantManagementState {
+ @Selector()
+ static get({ result }: TenantManagement.State): TenantDto[] {
+ return result.items || [];
+ }
+
+ @Selector()
+ static getTenantsTotalCount({ result }: TenantManagement.State): number {
+ return result.totalCount;
+ }
+
+ constructor(private service: TenantService) {}
+
+ @Action(GetTenants)
+ get({ patchState }: StateContext, { payload }: GetTenants) {
+ return this.service.getList(payload).pipe(
+ tap(result =>
+ patchState({
+ result,
+ }),
+ ),
+ );
+ }
+
+ @Action(GetTenantById)
+ getById({ patchState }: StateContext, { payload }: GetTenantById) {
+ return this.service.get(payload).pipe(
+ tap(selectedItem =>
+ patchState({
+ selectedItem,
+ }),
+ ),
+ );
+ }
+
+ @Action(DeleteTenant)
+ delete(_, { payload }: DeleteTenant) {
+ return this.service.delete(payload);
+ }
+
+ @Action(CreateTenant)
+ add(_, { payload }: CreateTenant) {
+ return this.service.create(payload);
+ }
+
+ @Action(UpdateTenant)
+ update({ getState }: StateContext, { payload }: UpdateTenant) {
+ return this.service.update(payload.id, { ...getState().selectedItem, ...payload });
+ }
+}
diff --git a/npm/ng-packs/nx/ng-packs/packages/tenant-management/src/lib/tenant-management-routing.module.ts b/npm/ng-packs/nx/ng-packs/packages/tenant-management/src/lib/tenant-management-routing.module.ts
new file mode 100644
index 0000000000..65666ea5a9
--- /dev/null
+++ b/npm/ng-packs/nx/ng-packs/packages/tenant-management/src/lib/tenant-management-routing.module.ts
@@ -0,0 +1,40 @@
+import {
+ AuthGuard,
+ DynamicLayoutComponent,
+ PermissionGuard,
+ ReplaceableComponents,
+ ReplaceableRouteContainerComponent,
+} from '@abp/ng.core';
+import { NgModule } from '@angular/core';
+import { RouterModule, Routes } from '@angular/router';
+import { TenantsComponent } from './components/tenants/tenants.component';
+import { eTenantManagementComponents } from './enums/components';
+import { TenantManagementExtensionsGuard } from './guards';
+
+const routes: Routes = [
+ { path: '', redirectTo: 'tenants', pathMatch: 'full' },
+ {
+ path: '',
+ component: DynamicLayoutComponent,
+ canActivate: [AuthGuard, PermissionGuard, TenantManagementExtensionsGuard],
+ children: [
+ {
+ path: 'tenants',
+ component: ReplaceableRouteContainerComponent,
+ data: {
+ requiredPolicy: 'AbpTenantManagement.Tenants',
+ replaceableComponent: {
+ key: eTenantManagementComponents.Tenants,
+ defaultComponent: TenantsComponent,
+ } as ReplaceableComponents.RouteData,
+ },
+ },
+ ],
+ },
+];
+
+@NgModule({
+ imports: [RouterModule.forChild(routes)],
+ exports: [RouterModule],
+})
+export class TenantManagementRoutingModule {}
diff --git a/npm/ng-packs/nx/ng-packs/packages/tenant-management/src/lib/tenant-management.module.ts b/npm/ng-packs/nx/ng-packs/packages/tenant-management/src/lib/tenant-management.module.ts
new file mode 100644
index 0000000000..e349b9b820
--- /dev/null
+++ b/npm/ng-packs/nx/ng-packs/packages/tenant-management/src/lib/tenant-management.module.ts
@@ -0,0 +1,73 @@
+import { CoreModule, LazyModuleFactory } from '@abp/ng.core';
+import { FeatureManagementModule } from '@abp/ng.feature-management';
+import { ThemeSharedModule } from '@abp/ng.theme.shared';
+import { UiExtensionsModule } from '@abp/ng.theme.shared/extensions';
+import { ModuleWithProviders, NgModule, NgModuleFactory } from '@angular/core';
+import { NgbDropdownModule } from '@ng-bootstrap/ng-bootstrap';
+import { NgxValidateCoreModule } from '@ngx-validate/core';
+import { NgxsModule } from '@ngxs/store';
+import { TenantsComponent } from './components/tenants/tenants.component';
+import { TenantManagementExtensionsGuard } from './guards/extensions.guard';
+import { TenantManagementConfigOptions } from './models/config-options';
+import { TenantManagementState } from './states/tenant-management.state';
+import { TenantManagementRoutingModule } from './tenant-management-routing.module';
+import {
+ TENANT_MANAGEMENT_CREATE_FORM_PROP_CONTRIBUTORS,
+ TENANT_MANAGEMENT_EDIT_FORM_PROP_CONTRIBUTORS,
+ TENANT_MANAGEMENT_ENTITY_ACTION_CONTRIBUTORS,
+ TENANT_MANAGEMENT_ENTITY_PROP_CONTRIBUTORS,
+ TENANT_MANAGEMENT_TOOLBAR_ACTION_CONTRIBUTORS,
+} from './tokens/extensions.token';
+
+@NgModule({
+ declarations: [TenantsComponent],
+ exports: [TenantsComponent],
+ imports: [
+ TenantManagementRoutingModule,
+ NgxsModule.forFeature([TenantManagementState]),
+ NgxValidateCoreModule,
+ CoreModule,
+ ThemeSharedModule,
+ NgbDropdownModule,
+ FeatureManagementModule,
+ UiExtensionsModule,
+ ],
+})
+export class TenantManagementModule {
+ static forChild(
+ options: TenantManagementConfigOptions = {},
+ ): ModuleWithProviders {
+ return {
+ ngModule: TenantManagementModule,
+ providers: [
+ {
+ provide: TENANT_MANAGEMENT_ENTITY_ACTION_CONTRIBUTORS,
+ useValue: options.entityActionContributors,
+ },
+ {
+ provide: TENANT_MANAGEMENT_TOOLBAR_ACTION_CONTRIBUTORS,
+ useValue: options.toolbarActionContributors,
+ },
+ {
+ provide: TENANT_MANAGEMENT_ENTITY_PROP_CONTRIBUTORS,
+ useValue: options.entityPropContributors,
+ },
+ {
+ provide: TENANT_MANAGEMENT_CREATE_FORM_PROP_CONTRIBUTORS,
+ useValue: options.createFormPropContributors,
+ },
+ {
+ provide: TENANT_MANAGEMENT_EDIT_FORM_PROP_CONTRIBUTORS,
+ useValue: options.editFormPropContributors,
+ },
+ TenantManagementExtensionsGuard,
+ ],
+ };
+ }
+
+ static forLazy(
+ options: TenantManagementConfigOptions = {},
+ ): NgModuleFactory {
+ return new LazyModuleFactory(TenantManagementModule.forChild(options));
+ }
+}
diff --git a/npm/ng-packs/nx/ng-packs/packages/tenant-management/src/lib/tests/tenant-management-state.service.spec.ts b/npm/ng-packs/nx/ng-packs/packages/tenant-management/src/lib/tests/tenant-management-state.service.spec.ts
new file mode 100644
index 0000000000..befd819b70
--- /dev/null
+++ b/npm/ng-packs/nx/ng-packs/packages/tenant-management/src/lib/tests/tenant-management-state.service.spec.ts
@@ -0,0 +1,61 @@
+import { createServiceFactory, SpectatorService, SpyObject } from '@ngneat/spectator/jest';
+import { TenantManagementStateService } from '../services/tenant-management-state.service';
+import { TenantManagementState } from '../states/tenant-management.state';
+import { Store } from '@ngxs/store';
+import * as TenantManagementActions from '../actions';
+
+describe('TenantManagementStateService', () => {
+ let service: TenantManagementStateService;
+ let spectator: SpectatorService;
+ let store: SpyObject;
+
+ const createService = createServiceFactory({
+ service: TenantManagementStateService,
+ mocks: [Store],
+ });
+ beforeEach(() => {
+ spectator = createService();
+ service = spectator.service;
+ store = spectator.inject(Store);
+ });
+
+ test('should have the all TenantManagementState static methods', () => {
+ const reg = /(?<=static )(.*)(?=\()/gm;
+ TenantManagementState.toString()
+ .match(reg)
+ .forEach(fnName => {
+ expect(service[fnName]).toBeTruthy();
+
+ const spy = jest.spyOn(store, 'selectSnapshot');
+ spy.mockClear();
+
+ const isDynamicSelector = TenantManagementState[fnName].name !== 'memoized';
+
+ if (isDynamicSelector) {
+ TenantManagementState[fnName] = jest.fn((...args) => args);
+ service[fnName]('test', 0, {});
+ expect(TenantManagementState[fnName]).toHaveBeenCalledWith('test', 0, {});
+ } else {
+ service[fnName]();
+ expect(spy).toHaveBeenCalledWith(TenantManagementState[fnName]);
+ }
+ });
+ });
+
+ test('should have a dispatch method for every TenantManagementState action', () => {
+ const reg = /(?<=dispatch)(\w+)(?=\()/gm;
+ TenantManagementStateService.toString()
+ .match(reg)
+ .forEach(fnName => {
+ expect(TenantManagementActions[fnName]).toBeTruthy();
+
+ const spy = jest.spyOn(store, 'dispatch');
+ spy.mockClear();
+
+ const params = Array.from(new Array(TenantManagementActions[fnName].length));
+
+ service[`dispatch${fnName}`](...params);
+ expect(spy).toHaveBeenCalledWith(new TenantManagementActions[fnName](...params));
+ });
+ });
+});
diff --git a/npm/ng-packs/nx/ng-packs/packages/tenant-management/src/lib/tokens/extensions.token.ts b/npm/ng-packs/nx/ng-packs/packages/tenant-management/src/lib/tokens/extensions.token.ts
new file mode 100644
index 0000000000..fb79b126d9
--- /dev/null
+++ b/npm/ng-packs/nx/ng-packs/packages/tenant-management/src/lib/tokens/extensions.token.ts
@@ -0,0 +1,74 @@
+import {
+ CreateFormPropContributorCallback,
+ EditFormPropContributorCallback,
+ EntityActionContributorCallback,
+ EntityPropContributorCallback,
+ ToolbarActionContributorCallback,
+} from '@abp/ng.theme.shared/extensions';
+import { InjectionToken } from '@angular/core';
+import { DEFAULT_TENANTS_ENTITY_ACTIONS } from '../defaults/default-tenants-entity-actions';
+import { DEFAULT_TENANTS_ENTITY_PROPS } from '../defaults/default-tenants-entity-props';
+import {
+ DEFAULT_TENANTS_CREATE_FORM_PROPS,
+ DEFAULT_TENANTS_EDIT_FORM_PROPS,
+} from '../defaults/default-tenants-form-props';
+import { DEFAULT_TENANTS_TOOLBAR_ACTIONS } from '../defaults/default-tenants-toolbar-actions';
+import { eTenantManagementComponents } from '../enums/components';
+import { TenantCreateDto, TenantDto, TenantUpdateDto } from '../proxy/models';
+
+export const DEFAULT_TENANT_MANAGEMENT_ENTITY_ACTIONS = {
+ [eTenantManagementComponents.Tenants]: DEFAULT_TENANTS_ENTITY_ACTIONS,
+};
+
+export const DEFAULT_TENANT_MANAGEMENT_TOOLBAR_ACTIONS = {
+ [eTenantManagementComponents.Tenants]: DEFAULT_TENANTS_TOOLBAR_ACTIONS,
+};
+
+export const DEFAULT_TENANT_MANAGEMENT_ENTITY_PROPS = {
+ [eTenantManagementComponents.Tenants]: DEFAULT_TENANTS_ENTITY_PROPS,
+};
+
+export const DEFAULT_TENANT_MANAGEMENT_CREATE_FORM_PROPS = {
+ [eTenantManagementComponents.Tenants]: DEFAULT_TENANTS_CREATE_FORM_PROPS,
+};
+
+export const DEFAULT_TENANT_MANAGEMENT_EDIT_FORM_PROPS = {
+ [eTenantManagementComponents.Tenants]: DEFAULT_TENANTS_EDIT_FORM_PROPS,
+};
+
+export const TENANT_MANAGEMENT_ENTITY_ACTION_CONTRIBUTORS = new InjectionToken(
+ 'TENANT_MANAGEMENT_ENTITY_ACTION_CONTRIBUTORS',
+);
+
+export const TENANT_MANAGEMENT_TOOLBAR_ACTION_CONTRIBUTORS = new InjectionToken(
+ 'TENANT_MANAGEMENT_TOOLBAR_ACTION_CONTRIBUTORS',
+);
+
+export const TENANT_MANAGEMENT_ENTITY_PROP_CONTRIBUTORS = new InjectionToken(
+ 'TENANT_MANAGEMENT_ENTITY_PROP_CONTRIBUTORS',
+);
+
+export const TENANT_MANAGEMENT_CREATE_FORM_PROP_CONTRIBUTORS = new InjectionToken(
+ 'TENANT_MANAGEMENT_CREATE_FORM_PROP_CONTRIBUTORS',
+);
+
+export const TENANT_MANAGEMENT_EDIT_FORM_PROP_CONTRIBUTORS = new InjectionToken(
+ 'TENANT_MANAGEMENT_EDIT_FORM_PROP_CONTRIBUTORS',
+);
+
+// Fix for TS4023 -> https://github.com/microsoft/TypeScript/issues/9944#issuecomment-254693497
+type EntityActionContributors = Partial<{
+ [eTenantManagementComponents.Tenants]: EntityActionContributorCallback[];
+}>;
+type ToolbarActionContributors = Partial<{
+ [eTenantManagementComponents.Tenants]: ToolbarActionContributorCallback[];
+}>;
+type EntityPropContributors = Partial<{
+ [eTenantManagementComponents.Tenants]: EntityPropContributorCallback[];
+}>;
+type CreateFormPropContributors = Partial<{
+ [eTenantManagementComponents.Tenants]: CreateFormPropContributorCallback[];
+}>;
+type EditFormPropContributors = Partial<{
+ [eTenantManagementComponents.Tenants]: EditFormPropContributorCallback[];
+}>;
diff --git a/npm/ng-packs/nx/ng-packs/packages/tenant-management/src/lib/tokens/index.ts b/npm/ng-packs/nx/ng-packs/packages/tenant-management/src/lib/tokens/index.ts
new file mode 100644
index 0000000000..33233400a2
--- /dev/null
+++ b/npm/ng-packs/nx/ng-packs/packages/tenant-management/src/lib/tokens/index.ts
@@ -0,0 +1 @@
+export * from './extensions.token';
diff --git a/npm/ng-packs/nx/ng-packs/packages/tenant-management/src/public-api.ts b/npm/ng-packs/nx/ng-packs/packages/tenant-management/src/public-api.ts
new file mode 100644
index 0000000000..e012a538b4
--- /dev/null
+++ b/npm/ng-packs/nx/ng-packs/packages/tenant-management/src/public-api.ts
@@ -0,0 +1,10 @@
+export * from './lib/actions';
+export * from './lib/components';
+export * from './lib/enums';
+export * from './lib/guards';
+export * from './lib/models';
+export * from './lib/proxy';
+export * from './lib/services';
+export * from './lib/states';
+export * from './lib/tenant-management.module';
+export * from './lib/tokens';
diff --git a/npm/ng-packs/nx/ng-packs/packages/tenant-management/src/test-setup.ts b/npm/ng-packs/nx/ng-packs/packages/tenant-management/src/test-setup.ts
new file mode 100644
index 0000000000..1100b3e8a6
--- /dev/null
+++ b/npm/ng-packs/nx/ng-packs/packages/tenant-management/src/test-setup.ts
@@ -0,0 +1 @@
+import 'jest-preset-angular/setup-jest';
diff --git a/npm/ng-packs/nx/ng-packs/packages/tenant-management/tsconfig.json b/npm/ng-packs/nx/ng-packs/packages/tenant-management/tsconfig.json
new file mode 100644
index 0000000000..62ebbd9464
--- /dev/null
+++ b/npm/ng-packs/nx/ng-packs/packages/tenant-management/tsconfig.json
@@ -0,0 +1,13 @@
+{
+ "extends": "../../tsconfig.base.json",
+ "files": [],
+ "include": [],
+ "references": [
+ {
+ "path": "./tsconfig.lib.json"
+ },
+ {
+ "path": "./tsconfig.spec.json"
+ }
+ ]
+}
diff --git a/npm/ng-packs/nx/ng-packs/packages/tenant-management/tsconfig.lib.json b/npm/ng-packs/nx/ng-packs/packages/tenant-management/tsconfig.lib.json
new file mode 100644
index 0000000000..bbcc12b1c7
--- /dev/null
+++ b/npm/ng-packs/nx/ng-packs/packages/tenant-management/tsconfig.lib.json
@@ -0,0 +1,14 @@
+{
+ "extends": "./tsconfig.json",
+ "compilerOptions": {
+ "outDir": "../../dist/out-tsc",
+ "target": "es2015",
+ "declaration": true,
+ "declarationMap": true,
+ "inlineSources": true,
+ "types": [],
+ "lib": ["dom", "es2018"]
+ },
+ "exclude": ["src/test-setup.ts", "**/*.spec.ts"],
+ "include": ["**/*.ts"]
+}
diff --git a/npm/ng-packs/nx/ng-packs/packages/tenant-management/tsconfig.lib.prod.json b/npm/ng-packs/nx/ng-packs/packages/tenant-management/tsconfig.lib.prod.json
new file mode 100644
index 0000000000..331d0ecb05
--- /dev/null
+++ b/npm/ng-packs/nx/ng-packs/packages/tenant-management/tsconfig.lib.prod.json
@@ -0,0 +1,11 @@
+/* To learn more about this file see: https://angular.io/config/tsconfig. */
+{
+ "extends": "./tsconfig.lib.json",
+ "compilerOptions": {
+ "declarationMap": false
+ },
+ "angularCompilerOptions": {
+ "compilationMode": "partial",
+ "enableIvy": false
+ }
+}
diff --git a/npm/ng-packs/nx/ng-packs/packages/tenant-management/tsconfig.spec.json b/npm/ng-packs/nx/ng-packs/packages/tenant-management/tsconfig.spec.json
new file mode 100644
index 0000000000..cfff29a544
--- /dev/null
+++ b/npm/ng-packs/nx/ng-packs/packages/tenant-management/tsconfig.spec.json
@@ -0,0 +1,10 @@
+{
+ "extends": "./tsconfig.json",
+ "compilerOptions": {
+ "outDir": "../../dist/out-tsc",
+ "module": "commonjs",
+ "types": ["jest", "node"]
+ },
+ "files": ["src/test-setup.ts"],
+ "include": ["**/*.spec.ts", "**/*.d.ts"]
+}
diff --git a/npm/ng-packs/nx/ng-packs/tsconfig.base.json b/npm/ng-packs/nx/ng-packs/tsconfig.base.json
index dd1e858d7c..e472bc62e4 100644
--- a/npm/ng-packs/nx/ng-packs/tsconfig.base.json
+++ b/npm/ng-packs/nx/ng-packs/tsconfig.base.json
@@ -15,8 +15,6 @@
"skipDefaultLibCheck": true,
"baseUrl": ".",
"paths": {
- "@abp/ng.identity": ["dist/packages/identity/"],
- "@abp/ng.identity/config": ["dist/packages/identity/config"],
"@abp/ng.account": ["dist/packages/account"],
"@abp/ng.account.core": ["dist/packages/account-core"],
"@abp/ng.account/config": ["dist/packages/account/config"],
@@ -27,6 +25,8 @@
"@abp/ng.core/locale": ["dist/packages/core/locale"],
"@abp/ng.core/testing": ["dist/packages/core/testing"],
"@abp/ng.feature-management": ["dist/packages/feature-management"],
+ "@abp/ng.identity": ["dist/packages/identity/"],
+ "@abp/ng.identity/config": ["dist/packages/identity/config"],
"@abp/ng.permission-management": ["dist/packages/permission-management"],
"@abp/ng.setting-management": ["dist/packages/setting-management"],
"@abp/ng.setting-management/config": [
@@ -38,7 +38,9 @@
"@abp/ng.theme.shared/extensions": [
"dist/packages/theme-shared/extensions"
],
- "@abp/ng.theme.shared/testing": ["dist/packages/theme-shared/testing"]
+ "@abp/ng.theme.shared/testing": ["dist/packages/theme-shared/testing"],
+ "@abp/ng.tenant-management": ["dist/packages/tenant-management"],
+ "@abp/ng.tenant-management/config": ["dist/packages/tenant-management/config"]
}
},
"exclude": ["node_modules", "tmp"]