From 2a77639f639eb1f30857dd974ea7b054e40b1cba Mon Sep 17 00:00:00 2001 From: bnymncoskuner Date: Fri, 10 Dec 2021 11:16:05 +0300 Subject: [PATCH 01/25] feat: generate angular project for catalog --- apps/angular/angular.json | 31 +++++++++++++ apps/angular/projects/catalog/README.md | 24 ++++++++++ apps/angular/projects/catalog/karma.conf.js | 44 +++++++++++++++++++ apps/angular/projects/catalog/ng-package.json | 7 +++ apps/angular/projects/catalog/package.json | 11 +++++ .../catalog/src/lib/catalog.component.spec.ts | 25 +++++++++++ .../catalog/src/lib/catalog.component.ts | 20 +++++++++ .../catalog/src/lib/catalog.module.ts | 16 +++++++ .../catalog/src/lib/catalog.service.spec.ts | 16 +++++++ .../catalog/src/lib/catalog.service.ts | 9 ++++ .../projects/catalog/src/public-api.ts | 7 +++ apps/angular/projects/catalog/src/test.ts | 28 ++++++++++++ .../projects/catalog/tsconfig.lib.json | 20 +++++++++ .../projects/catalog/tsconfig.lib.prod.json | 10 +++++ .../projects/catalog/tsconfig.spec.json | 17 +++++++ apps/angular/tsconfig.json | 8 +++- 16 files changed, 292 insertions(+), 1 deletion(-) create mode 100644 apps/angular/projects/catalog/README.md create mode 100644 apps/angular/projects/catalog/karma.conf.js create mode 100644 apps/angular/projects/catalog/ng-package.json create mode 100644 apps/angular/projects/catalog/package.json create mode 100644 apps/angular/projects/catalog/src/lib/catalog.component.spec.ts create mode 100644 apps/angular/projects/catalog/src/lib/catalog.component.ts create mode 100644 apps/angular/projects/catalog/src/lib/catalog.module.ts create mode 100644 apps/angular/projects/catalog/src/lib/catalog.service.spec.ts create mode 100644 apps/angular/projects/catalog/src/lib/catalog.service.ts create mode 100644 apps/angular/projects/catalog/src/public-api.ts create mode 100644 apps/angular/projects/catalog/src/test.ts create mode 100644 apps/angular/projects/catalog/tsconfig.lib.json create mode 100644 apps/angular/projects/catalog/tsconfig.lib.prod.json create mode 100644 apps/angular/projects/catalog/tsconfig.spec.json diff --git a/apps/angular/angular.json b/apps/angular/angular.json index 29bd668d..31fc0890 100644 --- a/apps/angular/angular.json +++ b/apps/angular/angular.json @@ -158,6 +158,37 @@ } } } + }, + "catalog": { + "projectType": "library", + "root": "projects/catalog", + "sourceRoot": "projects/catalog/src", + "prefix": "lib", + "architect": { + "build": { + "builder": "@angular-devkit/build-angular:ng-packagr", + "options": { + "project": "projects/catalog/ng-package.json" + }, + "configurations": { + "production": { + "tsConfig": "projects/catalog/tsconfig.lib.prod.json" + }, + "development": { + "tsConfig": "projects/catalog/tsconfig.lib.json" + } + }, + "defaultConfiguration": "production" + }, + "test": { + "builder": "@angular-devkit/build-angular:karma", + "options": { + "main": "projects/catalog/src/test.ts", + "tsConfig": "projects/catalog/tsconfig.spec.json", + "karmaConfig": "projects/catalog/karma.conf.js" + } + } + } } }, "defaultProject": "EShopOnAbp", diff --git a/apps/angular/projects/catalog/README.md b/apps/angular/projects/catalog/README.md new file mode 100644 index 00000000..f09f6206 --- /dev/null +++ b/apps/angular/projects/catalog/README.md @@ -0,0 +1,24 @@ +# Catalog + +This library was generated with [Angular CLI](https://github.com/angular/angular-cli) version 12.2.0. + +## Code scaffolding + +Run `ng generate component component-name --project catalog` to generate a new component. You can also use `ng generate directive|pipe|service|class|guard|interface|enum|module --project catalog`. +> Note: Don't forget to add `--project catalog` or else it will be added to the default project in your `angular.json` file. + +## Build + +Run `ng build catalog` to build the project. The build artifacts will be stored in the `dist/` directory. + +## Publishing + +After building your library with `ng build catalog`, go to the dist folder `cd dist/catalog` and run `npm publish`. + +## Running unit tests + +Run `ng test catalog` to execute the unit tests via [Karma](https://karma-runner.github.io). + +## Further help + +To get more help on the Angular CLI use `ng help` or go check out the [Angular CLI Overview and Command Reference](https://angular.io/cli) page. diff --git a/apps/angular/projects/catalog/karma.conf.js b/apps/angular/projects/catalog/karma.conf.js new file mode 100644 index 00000000..292a66bf --- /dev/null +++ b/apps/angular/projects/catalog/karma.conf.js @@ -0,0 +1,44 @@ +// Karma configuration file, see link for more information +// https://karma-runner.github.io/1.0/config/configuration-file.html + +module.exports = function (config) { + config.set({ + basePath: '', + frameworks: ['jasmine', '@angular-devkit/build-angular'], + plugins: [ + require('karma-jasmine'), + require('karma-chrome-launcher'), + require('karma-jasmine-html-reporter'), + require('karma-coverage'), + require('@angular-devkit/build-angular/plugins/karma') + ], + client: { + jasmine: { + // you can add configuration options for Jasmine here + // the possible options are listed at https://jasmine.github.io/api/edge/Configuration.html + // for example, you can disable the random execution with `random: false` + // or set a specific seed with `seed: 4321` + }, + clearContext: false // leave Jasmine Spec Runner output visible in browser + }, + jasmineHtmlReporter: { + suppressAll: true // removes the duplicated traces + }, + coverageReporter: { + dir: require('path').join(__dirname, '../../coverage/catalog'), + subdir: '.', + reporters: [ + { type: 'html' }, + { type: 'text-summary' } + ] + }, + reporters: ['progress', 'kjhtml'], + port: 9876, + colors: true, + logLevel: config.LOG_INFO, + autoWatch: true, + browsers: ['Chrome'], + singleRun: false, + restartOnFileChange: true + }); +}; diff --git a/apps/angular/projects/catalog/ng-package.json b/apps/angular/projects/catalog/ng-package.json new file mode 100644 index 00000000..199ab697 --- /dev/null +++ b/apps/angular/projects/catalog/ng-package.json @@ -0,0 +1,7 @@ +{ + "$schema": "../../node_modules/ng-packagr/ng-package.schema.json", + "dest": "../../dist/catalog", + "lib": { + "entryFile": "src/public-api.ts" + } +} \ No newline at end of file diff --git a/apps/angular/projects/catalog/package.json b/apps/angular/projects/catalog/package.json new file mode 100644 index 00000000..f6cdbadd --- /dev/null +++ b/apps/angular/projects/catalog/package.json @@ -0,0 +1,11 @@ +{ + "name": "catalog", + "version": "0.0.1", + "peerDependencies": { + "@angular/common": "^12.2.0", + "@angular/core": "^12.2.0" + }, + "dependencies": { + "tslib": "^2.3.0" + } +} \ No newline at end of file diff --git a/apps/angular/projects/catalog/src/lib/catalog.component.spec.ts b/apps/angular/projects/catalog/src/lib/catalog.component.spec.ts new file mode 100644 index 00000000..61e36545 --- /dev/null +++ b/apps/angular/projects/catalog/src/lib/catalog.component.spec.ts @@ -0,0 +1,25 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { CatalogComponent } from './catalog.component'; + +describe('CatalogComponent', () => { + let component: CatalogComponent; + let fixture: ComponentFixture; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + declarations: [ CatalogComponent ] + }) + .compileComponents(); + }); + + beforeEach(() => { + fixture = TestBed.createComponent(CatalogComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/apps/angular/projects/catalog/src/lib/catalog.component.ts b/apps/angular/projects/catalog/src/lib/catalog.component.ts new file mode 100644 index 00000000..7893827b --- /dev/null +++ b/apps/angular/projects/catalog/src/lib/catalog.component.ts @@ -0,0 +1,20 @@ +import { Component, OnInit } from '@angular/core'; + +@Component({ + selector: 'lib-catalog', + template: ` +

+ catalog works! +

+ `, + styles: [ + ] +}) +export class CatalogComponent implements OnInit { + + constructor() { } + + ngOnInit(): void { + } + +} diff --git a/apps/angular/projects/catalog/src/lib/catalog.module.ts b/apps/angular/projects/catalog/src/lib/catalog.module.ts new file mode 100644 index 00000000..d68cc777 --- /dev/null +++ b/apps/angular/projects/catalog/src/lib/catalog.module.ts @@ -0,0 +1,16 @@ +import { NgModule } from '@angular/core'; +import { CatalogComponent } from './catalog.component'; + + + +@NgModule({ + declarations: [ + CatalogComponent + ], + imports: [ + ], + exports: [ + CatalogComponent + ] +}) +export class CatalogModule { } diff --git a/apps/angular/projects/catalog/src/lib/catalog.service.spec.ts b/apps/angular/projects/catalog/src/lib/catalog.service.spec.ts new file mode 100644 index 00000000..21b1429f --- /dev/null +++ b/apps/angular/projects/catalog/src/lib/catalog.service.spec.ts @@ -0,0 +1,16 @@ +import { TestBed } from '@angular/core/testing'; + +import { CatalogService } from './catalog.service'; + +describe('CatalogService', () => { + let service: CatalogService; + + beforeEach(() => { + TestBed.configureTestingModule({}); + service = TestBed.inject(CatalogService); + }); + + it('should be created', () => { + expect(service).toBeTruthy(); + }); +}); diff --git a/apps/angular/projects/catalog/src/lib/catalog.service.ts b/apps/angular/projects/catalog/src/lib/catalog.service.ts new file mode 100644 index 00000000..220959ce --- /dev/null +++ b/apps/angular/projects/catalog/src/lib/catalog.service.ts @@ -0,0 +1,9 @@ +import { Injectable } from '@angular/core'; + +@Injectable({ + providedIn: 'root' +}) +export class CatalogService { + + constructor() { } +} diff --git a/apps/angular/projects/catalog/src/public-api.ts b/apps/angular/projects/catalog/src/public-api.ts new file mode 100644 index 00000000..79b5530f --- /dev/null +++ b/apps/angular/projects/catalog/src/public-api.ts @@ -0,0 +1,7 @@ +/* + * Public API Surface of catalog + */ + +export * from './lib/catalog.service'; +export * from './lib/catalog.component'; +export * from './lib/catalog.module'; diff --git a/apps/angular/projects/catalog/src/test.ts b/apps/angular/projects/catalog/src/test.ts new file mode 100644 index 00000000..b84c0c21 --- /dev/null +++ b/apps/angular/projects/catalog/src/test.ts @@ -0,0 +1,28 @@ +// This file is required by karma.conf.js and loads recursively all the .spec and framework files + +import 'zone.js'; +import 'zone.js/testing'; +import { getTestBed } from '@angular/core/testing'; +import { + BrowserDynamicTestingModule, + platformBrowserDynamicTesting +} from '@angular/platform-browser-dynamic/testing'; + +declare const require: { + context(path: string, deep?: boolean, filter?: RegExp): { + keys(): string[]; + (id: string): T; + }; +}; + +// First, initialize the Angular testing environment. +getTestBed().initTestEnvironment( + BrowserDynamicTestingModule, + platformBrowserDynamicTesting(), + { teardown: { destroyAfterEach: true }}, +); + +// Then we find all the tests. +const context = require.context('./', true, /\.spec\.ts$/); +// And load the modules. +context.keys().map(context); diff --git a/apps/angular/projects/catalog/tsconfig.lib.json b/apps/angular/projects/catalog/tsconfig.lib.json new file mode 100644 index 00000000..1407202d --- /dev/null +++ b/apps/angular/projects/catalog/tsconfig.lib.json @@ -0,0 +1,20 @@ +/* To learn more about this file see: https://angular.io/config/tsconfig. */ +{ + "extends": "../../tsconfig.json", + "compilerOptions": { + "outDir": "../../out-tsc/lib", + "target": "es2015", + "declaration": true, + "declarationMap": true, + "inlineSources": true, + "types": [], + "lib": [ + "dom", + "es2018" + ] + }, + "exclude": [ + "src/test.ts", + "**/*.spec.ts" + ] +} diff --git a/apps/angular/projects/catalog/tsconfig.lib.prod.json b/apps/angular/projects/catalog/tsconfig.lib.prod.json new file mode 100644 index 00000000..06de549e --- /dev/null +++ b/apps/angular/projects/catalog/tsconfig.lib.prod.json @@ -0,0 +1,10 @@ +/* To learn more about this file see: https://angular.io/config/tsconfig. */ +{ + "extends": "./tsconfig.lib.json", + "compilerOptions": { + "declarationMap": false + }, + "angularCompilerOptions": { + "compilationMode": "partial" + } +} diff --git a/apps/angular/projects/catalog/tsconfig.spec.json b/apps/angular/projects/catalog/tsconfig.spec.json new file mode 100644 index 00000000..715dd0a5 --- /dev/null +++ b/apps/angular/projects/catalog/tsconfig.spec.json @@ -0,0 +1,17 @@ +/* To learn more about this file see: https://angular.io/config/tsconfig. */ +{ + "extends": "../../tsconfig.json", + "compilerOptions": { + "outDir": "../../out-tsc/spec", + "types": [ + "jasmine" + ] + }, + "files": [ + "src/test.ts" + ], + "include": [ + "**/*.spec.ts", + "**/*.d.ts" + ] +} diff --git a/apps/angular/tsconfig.json b/apps/angular/tsconfig.json index 7a5bf823..77111840 100644 --- a/apps/angular/tsconfig.json +++ b/apps/angular/tsconfig.json @@ -15,7 +15,13 @@ "lib": ["es2018", "dom"], "paths": { "@proxy": ["src/app/proxy/index.ts"], - "@proxy/*": ["src/app/proxy/*"] + "@proxy/*": [ + "src/app/proxy/*" + ], + "catalog": [ + "dist/catalog/catalog", + "dist/catalog" + ] } }, "angularCompilerOptions": { From 474ae65b1fd8db5fe4da14ae614d04be132b2e3b Mon Sep 17 00:00:00 2001 From: bnymncoskuner Date: Fri, 10 Dec 2021 11:19:10 +0300 Subject: [PATCH 02/25] feat: add CatalogService in environment.ts --- apps/angular/src/environments/environment.ts | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/apps/angular/src/environments/environment.ts b/apps/angular/src/environments/environment.ts index 6096504f..be862fc3 100644 --- a/apps/angular/src/environments/environment.ts +++ b/apps/angular/src/environments/environment.ts @@ -13,14 +13,17 @@ export const environment = { redirectUri: baseUrl, clientId: 'Web', responseType: 'code', - scope: - 'offline_access openid profile email phone IdentityService AdministrationService', + scope: 'offline_access openid profile email phone IdentityService AdministrationService', requireHttps: true, }, apis: { default: { url: 'https://localhost:44372', rootNamespace: 'EShopOnAbp', - } + }, + CatalogService: { + url: 'https://localhost:44354', + rootNamespace: 'EShopOnAbp.CatalogService', + }, }, } as Environment; From 831b387e715f7482cf145c5d5c37f7a7418d465c Mon Sep 17 00:00:00 2001 From: bnymncoskuner Date: Fri, 10 Dec 2021 11:21:08 +0300 Subject: [PATCH 03/25] feat: generate proxies for catalog service --- .../projects/catalog/src/lib/proxy/README.md | 17 + .../catalog/src/lib/proxy/generate-proxy.json | 2221 +++++++++++++++++ .../projects/catalog/src/lib/proxy/index.ts | 2 + .../catalog/src/lib/proxy/products/index.ts | 3 + .../catalog/src/lib/proxy/products/models.ts | 24 + .../src/lib/proxy/products/product.service.ts | 58 + .../proxy/products/public-product.service.ts | 27 + 7 files changed, 2352 insertions(+) create mode 100644 apps/angular/projects/catalog/src/lib/proxy/README.md create mode 100644 apps/angular/projects/catalog/src/lib/proxy/generate-proxy.json create mode 100644 apps/angular/projects/catalog/src/lib/proxy/index.ts create mode 100644 apps/angular/projects/catalog/src/lib/proxy/products/index.ts create mode 100644 apps/angular/projects/catalog/src/lib/proxy/products/models.ts create mode 100644 apps/angular/projects/catalog/src/lib/proxy/products/product.service.ts create mode 100644 apps/angular/projects/catalog/src/lib/proxy/products/public-product.service.ts diff --git a/apps/angular/projects/catalog/src/lib/proxy/README.md b/apps/angular/projects/catalog/src/lib/proxy/README.md new file mode 100644 index 00000000..767dfd0f --- /dev/null +++ b/apps/angular/projects/catalog/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/apps/angular/projects/catalog/src/lib/proxy/generate-proxy.json b/apps/angular/projects/catalog/src/lib/proxy/generate-proxy.json new file mode 100644 index 00000000..6cf150f4 --- /dev/null +++ b/apps/angular/projects/catalog/src/lib/proxy/generate-proxy.json @@ -0,0 +1,2221 @@ +{ + "generated": [ + "catalog" + ], + "modules": { + "abp": { + "rootPath": "abp", + "remoteServiceName": "abp", + "controllers": { + "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.AbpApplicationConfigurationController": { + "controllerName": "AbpApplicationConfiguration", + "controllerGroupName": "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" + }, + "allowAnonymous": null, + "implementFrom": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.IAbpApplicationConfigurationAppService" + } + } + }, + "Volo.Abp.AspNetCore.Mvc.ApiExploring.AbpApiDefinitionController": { + "controllerName": "AbpApiDefinition", + "controllerGroupName": "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", + "jsonName": null, + "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" + }, + "allowAnonymous": null, + "implementFrom": "Volo.Abp.AspNetCore.Mvc.ApiExploring.AbpApiDefinitionController" + } + } + } + } + }, + "catalog": { + "rootPath": "catalog", + "remoteServiceName": "Catalog", + "controllers": { + "EShopOnAbp.CatalogService.Products.ProductAppService": { + "controllerName": "Product", + "controllerGroupName": "Product", + "type": "EShopOnAbp.CatalogService.Products.ProductAppService", + "interfaces": [ + { + "type": "Volo.Abp.Validation.IValidationEnabled" + }, + { + "type": "Volo.Abp.Auditing.IAuditingEnabled" + }, + { + "type": "Volo.Abp.GlobalFeatures.IGlobalFeatureCheckingEnabled" + }, + { + "type": "EShopOnAbp.CatalogService.Products.IProductAppService" + } + ], + "actions": { + "GetListPagedAsyncByInput": { + "uniqueName": "GetListPagedAsyncByInput", + "name": "GetListPagedAsync", + "httpMethod": "GET", + "url": "api/catalog/product/paged", + "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", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null, + "constraintTypes": null, + "bindingSourceId": "ModelBinding", + "descriptorName": "input" + }, + { + "nameOnMethod": "input", + "name": "SkipCount", + "jsonName": null, + "type": "System.Int32", + "typeSimple": "number", + "isOptional": false, + "defaultValue": null, + "constraintTypes": null, + "bindingSourceId": "ModelBinding", + "descriptorName": "input" + }, + { + "nameOnMethod": "input", + "name": "MaxResultCount", + "jsonName": null, + "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" + }, + "allowAnonymous": null, + "implementFrom": "EShopOnAbp.CatalogService.Products.IProductAppService" + }, + "GetListAsync": { + "uniqueName": "GetListAsync", + "name": "GetListAsync", + "httpMethod": "GET", + "url": "api/catalog/product", + "supportedVersions": [], + "parametersOnMethod": [], + "parameters": [], + "returnValue": { + "type": "Volo.Abp.Application.Dtos.ListResultDto", + "typeSimple": "Volo.Abp.Application.Dtos.ListResultDto" + }, + "allowAnonymous": null, + "implementFrom": "EShopOnAbp.CatalogService.Products.IProductAppService" + }, + "GetAsyncById": { + "uniqueName": "GetAsyncById", + "name": "GetAsync", + "httpMethod": "GET", + "url": "api/catalog/product/{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", + "jsonName": null, + "type": "System.Guid", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null, + "constraintTypes": [], + "bindingSourceId": "Path", + "descriptorName": "" + } + ], + "returnValue": { + "type": "EShopOnAbp.CatalogService.Products.ProductDto", + "typeSimple": "EShopOnAbp.CatalogService.Products.ProductDto" + }, + "allowAnonymous": null, + "implementFrom": "EShopOnAbp.CatalogService.Products.IProductAppService" + }, + "CreateAsyncByInput": { + "uniqueName": "CreateAsyncByInput", + "name": "CreateAsync", + "httpMethod": "POST", + "url": "api/catalog/product", + "supportedVersions": [], + "parametersOnMethod": [ + { + "name": "input", + "typeAsString": "EShopOnAbp.CatalogService.Products.CreateProductDto, EShopOnAbp.CatalogService.Application.Contracts", + "type": "EShopOnAbp.CatalogService.Products.CreateProductDto", + "typeSimple": "EShopOnAbp.CatalogService.Products.CreateProductDto", + "isOptional": false, + "defaultValue": null + } + ], + "parameters": [ + { + "nameOnMethod": "input", + "name": "input", + "jsonName": null, + "type": "EShopOnAbp.CatalogService.Products.CreateProductDto", + "typeSimple": "EShopOnAbp.CatalogService.Products.CreateProductDto", + "isOptional": false, + "defaultValue": null, + "constraintTypes": null, + "bindingSourceId": "Body", + "descriptorName": "" + } + ], + "returnValue": { + "type": "EShopOnAbp.CatalogService.Products.ProductDto", + "typeSimple": "EShopOnAbp.CatalogService.Products.ProductDto" + }, + "allowAnonymous": false, + "implementFrom": "EShopOnAbp.CatalogService.Products.IProductAppService" + }, + "UpdateAsyncByIdAndInput": { + "uniqueName": "UpdateAsyncByIdAndInput", + "name": "UpdateAsync", + "httpMethod": "PUT", + "url": "api/catalog/product/{id}", + "supportedVersions": [], + "parametersOnMethod": [ + { + "name": "id", + "typeAsString": "System.Guid, System.Private.CoreLib", + "type": "System.Guid", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null + }, + { + "name": "input", + "typeAsString": "EShopOnAbp.CatalogService.Products.UpdateProductDto, EShopOnAbp.CatalogService.Application.Contracts", + "type": "EShopOnAbp.CatalogService.Products.UpdateProductDto", + "typeSimple": "EShopOnAbp.CatalogService.Products.UpdateProductDto", + "isOptional": false, + "defaultValue": null + } + ], + "parameters": [ + { + "nameOnMethod": "id", + "name": "id", + "jsonName": null, + "type": "System.Guid", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null, + "constraintTypes": [], + "bindingSourceId": "Path", + "descriptorName": "" + }, + { + "nameOnMethod": "input", + "name": "input", + "jsonName": null, + "type": "EShopOnAbp.CatalogService.Products.UpdateProductDto", + "typeSimple": "EShopOnAbp.CatalogService.Products.UpdateProductDto", + "isOptional": false, + "defaultValue": null, + "constraintTypes": null, + "bindingSourceId": "Body", + "descriptorName": "" + } + ], + "returnValue": { + "type": "EShopOnAbp.CatalogService.Products.ProductDto", + "typeSimple": "EShopOnAbp.CatalogService.Products.ProductDto" + }, + "allowAnonymous": null, + "implementFrom": "EShopOnAbp.CatalogService.Products.IProductAppService" + }, + "DeleteAsyncById": { + "uniqueName": "DeleteAsyncById", + "name": "DeleteAsync", + "httpMethod": "DELETE", + "url": "api/catalog/product/{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", + "jsonName": null, + "type": "System.Guid", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null, + "constraintTypes": [], + "bindingSourceId": "Path", + "descriptorName": "" + } + ], + "returnValue": { + "type": "System.Void", + "typeSimple": "System.Void" + }, + "allowAnonymous": false, + "implementFrom": "EShopOnAbp.CatalogService.Products.IProductAppService" + } + } + }, + "EShopOnAbp.CatalogService.Products.PublicProductAppService": { + "controllerName": "PublicProduct", + "controllerGroupName": "PublicProduct", + "type": "EShopOnAbp.CatalogService.Products.PublicProductAppService", + "interfaces": [ + { + "type": "Volo.Abp.Validation.IValidationEnabled" + }, + { + "type": "Volo.Abp.Auditing.IAuditingEnabled" + }, + { + "type": "Volo.Abp.GlobalFeatures.IGlobalFeatureCheckingEnabled" + }, + { + "type": "EShopOnAbp.CatalogService.Products.IPublicProductAppService" + } + ], + "actions": { + "GetListAsync": { + "uniqueName": "GetListAsync", + "name": "GetListAsync", + "httpMethod": "GET", + "url": "api/catalog/public-product", + "supportedVersions": [], + "parametersOnMethod": [], + "parameters": [], + "returnValue": { + "type": "Volo.Abp.Application.Dtos.ListResultDto", + "typeSimple": "Volo.Abp.Application.Dtos.ListResultDto" + }, + "allowAnonymous": null, + "implementFrom": "EShopOnAbp.CatalogService.Products.IPublicProductAppService" + }, + "GetAsyncById": { + "uniqueName": "GetAsyncById", + "name": "GetAsync", + "httpMethod": "GET", + "url": "api/catalog/public-product/{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", + "jsonName": null, + "type": "System.Guid", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null, + "constraintTypes": [], + "bindingSourceId": "Path", + "descriptorName": "" + } + ], + "returnValue": { + "type": "EShopOnAbp.CatalogService.Products.ProductDto", + "typeSimple": "EShopOnAbp.CatalogService.Products.ProductDto" + }, + "allowAnonymous": null, + "implementFrom": "EShopOnAbp.CatalogService.Products.IPublicProductAppService" + } + } + } + } + } + }, + "types": { + "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationConfigurationDto": { + "baseType": null, + "isEnum": false, + "enumNames": null, + "enumValues": null, + "genericArguments": null, + "properties": [ + { + "name": "Localization", + "jsonName": null, + "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationLocalizationConfigurationDto", + "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationLocalizationConfigurationDto", + "isRequired": false + }, + { + "name": "Auth", + "jsonName": null, + "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationAuthConfigurationDto", + "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationAuthConfigurationDto", + "isRequired": false + }, + { + "name": "Setting", + "jsonName": null, + "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationSettingConfigurationDto", + "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationSettingConfigurationDto", + "isRequired": false + }, + { + "name": "CurrentUser", + "jsonName": null, + "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.CurrentUserDto", + "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.CurrentUserDto", + "isRequired": false + }, + { + "name": "Features", + "jsonName": null, + "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationFeatureConfigurationDto", + "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationFeatureConfigurationDto", + "isRequired": false + }, + { + "name": "MultiTenancy", + "jsonName": null, + "type": "Volo.Abp.AspNetCore.Mvc.MultiTenancy.MultiTenancyInfoDto", + "typeSimple": "Volo.Abp.AspNetCore.Mvc.MultiTenancy.MultiTenancyInfoDto", + "isRequired": false + }, + { + "name": "CurrentTenant", + "jsonName": null, + "type": "Volo.Abp.AspNetCore.Mvc.MultiTenancy.CurrentTenantDto", + "typeSimple": "Volo.Abp.AspNetCore.Mvc.MultiTenancy.CurrentTenantDto", + "isRequired": false + }, + { + "name": "Timing", + "jsonName": null, + "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.TimingDto", + "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.TimingDto", + "isRequired": false + }, + { + "name": "Clock", + "jsonName": null, + "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ClockDto", + "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ClockDto", + "isRequired": false + }, + { + "name": "ObjectExtensions", + "jsonName": null, + "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ObjectExtensionsDto", + "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ObjectExtensionsDto", + "isRequired": false + } + ] + }, + "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationLocalizationConfigurationDto": { + "baseType": null, + "isEnum": false, + "enumNames": null, + "enumValues": null, + "genericArguments": null, + "properties": [ + { + "name": "Values", + "jsonName": null, + "type": "{System.String:System.Collections.Generic.Dictionary}", + "typeSimple": "{string:System.Collections.Generic.Dictionary}", + "isRequired": false + }, + { + "name": "Languages", + "jsonName": null, + "type": "[Volo.Abp.Localization.LanguageInfo]", + "typeSimple": "[Volo.Abp.Localization.LanguageInfo]", + "isRequired": false + }, + { + "name": "CurrentCulture", + "jsonName": null, + "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.CurrentCultureDto", + "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.CurrentCultureDto", + "isRequired": false + }, + { + "name": "DefaultResourceName", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false + }, + { + "name": "LanguagesMap", + "jsonName": null, + "type": "{System.String:[Volo.Abp.NameValue]}", + "typeSimple": "{string:[Volo.Abp.NameValue]}", + "isRequired": false + }, + { + "name": "LanguageFilesMap", + "jsonName": null, + "type": "{System.String:[Volo.Abp.NameValue]}", + "typeSimple": "{string:[Volo.Abp.NameValue]}", + "isRequired": false + } + ] + }, + "Volo.Abp.Localization.LanguageInfo": { + "baseType": null, + "isEnum": false, + "enumNames": null, + "enumValues": null, + "genericArguments": null, + "properties": [ + { + "name": "CultureName", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false + }, + { + "name": "UiCultureName", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false + }, + { + "name": "DisplayName", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false + }, + { + "name": "FlagIcon", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false + } + ] + }, + "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.CurrentCultureDto": { + "baseType": null, + "isEnum": false, + "enumNames": null, + "enumValues": null, + "genericArguments": null, + "properties": [ + { + "name": "DisplayName", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false + }, + { + "name": "EnglishName", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false + }, + { + "name": "ThreeLetterIsoLanguageName", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false + }, + { + "name": "TwoLetterIsoLanguageName", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false + }, + { + "name": "IsRightToLeft", + "jsonName": null, + "type": "System.Boolean", + "typeSimple": "boolean", + "isRequired": false + }, + { + "name": "CultureName", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false + }, + { + "name": "Name", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false + }, + { + "name": "NativeName", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false + }, + { + "name": "DateTimeFormat", + "jsonName": null, + "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.DateTimeFormatDto", + "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.DateTimeFormatDto", + "isRequired": false + } + ] + }, + "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.DateTimeFormatDto": { + "baseType": null, + "isEnum": false, + "enumNames": null, + "enumValues": null, + "genericArguments": null, + "properties": [ + { + "name": "CalendarAlgorithmType", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false + }, + { + "name": "DateTimeFormatLong", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false + }, + { + "name": "ShortDatePattern", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false + }, + { + "name": "FullDateTimePattern", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false + }, + { + "name": "DateSeparator", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false + }, + { + "name": "ShortTimePattern", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false + }, + { + "name": "LongTimePattern", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false + } + ] + }, + "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", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false + }, + { + "name": "Value", + "jsonName": null, + "type": "T", + "typeSimple": "T", + "isRequired": false + } + ] + }, + "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationAuthConfigurationDto": { + "baseType": null, + "isEnum": false, + "enumNames": null, + "enumValues": null, + "genericArguments": null, + "properties": [ + { + "name": "Policies", + "jsonName": null, + "type": "{System.String:System.Boolean}", + "typeSimple": "{string:boolean}", + "isRequired": false + }, + { + "name": "GrantedPolicies", + "jsonName": null, + "type": "{System.String:System.Boolean}", + "typeSimple": "{string:boolean}", + "isRequired": false + } + ] + }, + "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationSettingConfigurationDto": { + "baseType": null, + "isEnum": false, + "enumNames": null, + "enumValues": null, + "genericArguments": null, + "properties": [ + { + "name": "Values", + "jsonName": null, + "type": "{System.String:System.String}", + "typeSimple": "{string:string}", + "isRequired": false + } + ] + }, + "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.CurrentUserDto": { + "baseType": null, + "isEnum": false, + "enumNames": null, + "enumValues": null, + "genericArguments": null, + "properties": [ + { + "name": "IsAuthenticated", + "jsonName": null, + "type": "System.Boolean", + "typeSimple": "boolean", + "isRequired": false + }, + { + "name": "Id", + "jsonName": null, + "type": "System.Guid?", + "typeSimple": "string?", + "isRequired": false + }, + { + "name": "TenantId", + "jsonName": null, + "type": "System.Guid?", + "typeSimple": "string?", + "isRequired": false + }, + { + "name": "ImpersonatorUserId", + "jsonName": null, + "type": "System.Guid?", + "typeSimple": "string?", + "isRequired": false + }, + { + "name": "ImpersonatorTenantId", + "jsonName": null, + "type": "System.Guid?", + "typeSimple": "string?", + "isRequired": false + }, + { + "name": "UserName", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false + }, + { + "name": "Name", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false + }, + { + "name": "SurName", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false + }, + { + "name": "Email", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false + }, + { + "name": "EmailVerified", + "jsonName": null, + "type": "System.Boolean", + "typeSimple": "boolean", + "isRequired": false + }, + { + "name": "PhoneNumber", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false + }, + { + "name": "PhoneNumberVerified", + "jsonName": null, + "type": "System.Boolean", + "typeSimple": "boolean", + "isRequired": false + }, + { + "name": "Roles", + "jsonName": null, + "type": "[System.String]", + "typeSimple": "[string]", + "isRequired": false + } + ] + }, + "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationFeatureConfigurationDto": { + "baseType": null, + "isEnum": false, + "enumNames": null, + "enumValues": null, + "genericArguments": null, + "properties": [ + { + "name": "Values", + "jsonName": null, + "type": "{System.String:System.String}", + "typeSimple": "{string:string}", + "isRequired": false + } + ] + }, + "Volo.Abp.AspNetCore.Mvc.MultiTenancy.MultiTenancyInfoDto": { + "baseType": null, + "isEnum": false, + "enumNames": null, + "enumValues": null, + "genericArguments": null, + "properties": [ + { + "name": "IsEnabled", + "jsonName": null, + "type": "System.Boolean", + "typeSimple": "boolean", + "isRequired": false + } + ] + }, + "Volo.Abp.AspNetCore.Mvc.MultiTenancy.CurrentTenantDto": { + "baseType": null, + "isEnum": false, + "enumNames": null, + "enumValues": null, + "genericArguments": null, + "properties": [ + { + "name": "Id", + "jsonName": null, + "type": "System.Guid?", + "typeSimple": "string?", + "isRequired": false + }, + { + "name": "Name", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false + }, + { + "name": "IsAvailable", + "jsonName": null, + "type": "System.Boolean", + "typeSimple": "boolean", + "isRequired": false + } + ] + }, + "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.TimingDto": { + "baseType": null, + "isEnum": false, + "enumNames": null, + "enumValues": null, + "genericArguments": null, + "properties": [ + { + "name": "TimeZone", + "jsonName": null, + "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.TimeZone", + "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.TimeZone", + "isRequired": false + } + ] + }, + "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.TimeZone": { + "baseType": null, + "isEnum": false, + "enumNames": null, + "enumValues": null, + "genericArguments": null, + "properties": [ + { + "name": "Iana", + "jsonName": null, + "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.IanaTimeZone", + "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.IanaTimeZone", + "isRequired": false + }, + { + "name": "Windows", + "jsonName": null, + "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.WindowsTimeZone", + "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.WindowsTimeZone", + "isRequired": false + } + ] + }, + "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.IanaTimeZone": { + "baseType": null, + "isEnum": false, + "enumNames": null, + "enumValues": null, + "genericArguments": null, + "properties": [ + { + "name": "TimeZoneName", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false + } + ] + }, + "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.WindowsTimeZone": { + "baseType": null, + "isEnum": false, + "enumNames": null, + "enumValues": null, + "genericArguments": null, + "properties": [ + { + "name": "TimeZoneId", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false + } + ] + }, + "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ClockDto": { + "baseType": null, + "isEnum": false, + "enumNames": null, + "enumValues": null, + "genericArguments": null, + "properties": [ + { + "name": "Kind", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false + } + ] + }, + "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ObjectExtensionsDto": { + "baseType": null, + "isEnum": false, + "enumNames": null, + "enumValues": null, + "genericArguments": null, + "properties": [ + { + "name": "Modules", + "jsonName": null, + "type": "{System.String:Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ModuleExtensionDto}", + "typeSimple": "{string:Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ModuleExtensionDto}", + "isRequired": false + }, + { + "name": "Enums", + "jsonName": null, + "type": "{System.String:Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionEnumDto}", + "typeSimple": "{string:Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionEnumDto}", + "isRequired": false + } + ] + }, + "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ModuleExtensionDto": { + "baseType": null, + "isEnum": false, + "enumNames": null, + "enumValues": null, + "genericArguments": null, + "properties": [ + { + "name": "Entities", + "jsonName": null, + "type": "{System.String:Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.EntityExtensionDto}", + "typeSimple": "{string:Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.EntityExtensionDto}", + "isRequired": false + }, + { + "name": "Configuration", + "jsonName": null, + "type": "{System.String:System.Object}", + "typeSimple": "{string:object}", + "isRequired": false + } + ] + }, + "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.EntityExtensionDto": { + "baseType": null, + "isEnum": false, + "enumNames": null, + "enumValues": null, + "genericArguments": null, + "properties": [ + { + "name": "Properties", + "jsonName": null, + "type": "{System.String:Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyDto}", + "typeSimple": "{string:Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyDto}", + "isRequired": false + }, + { + "name": "Configuration", + "jsonName": null, + "type": "{System.String:System.Object}", + "typeSimple": "{string:object}", + "isRequired": false + } + ] + }, + "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyDto": { + "baseType": null, + "isEnum": false, + "enumNames": null, + "enumValues": null, + "genericArguments": null, + "properties": [ + { + "name": "Type", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false + }, + { + "name": "TypeSimple", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false + }, + { + "name": "DisplayName", + "jsonName": null, + "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.LocalizableStringDto", + "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.LocalizableStringDto", + "isRequired": false + }, + { + "name": "Api", + "jsonName": null, + "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyApiDto", + "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyApiDto", + "isRequired": false + }, + { + "name": "Ui", + "jsonName": null, + "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyUiDto", + "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyUiDto", + "isRequired": false + }, + { + "name": "Attributes", + "jsonName": null, + "type": "[Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyAttributeDto]", + "typeSimple": "[Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyAttributeDto]", + "isRequired": false + }, + { + "name": "Configuration", + "jsonName": null, + "type": "{System.String:System.Object}", + "typeSimple": "{string:object}", + "isRequired": false + }, + { + "name": "DefaultValue", + "jsonName": null, + "type": "System.Object", + "typeSimple": "object", + "isRequired": false + } + ] + }, + "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.LocalizableStringDto": { + "baseType": null, + "isEnum": false, + "enumNames": null, + "enumValues": null, + "genericArguments": null, + "properties": [ + { + "name": "Name", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false + }, + { + "name": "Resource", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false + } + ] + }, + "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyApiDto": { + "baseType": null, + "isEnum": false, + "enumNames": null, + "enumValues": null, + "genericArguments": null, + "properties": [ + { + "name": "OnGet", + "jsonName": null, + "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyApiGetDto", + "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyApiGetDto", + "isRequired": false + }, + { + "name": "OnCreate", + "jsonName": null, + "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyApiCreateDto", + "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyApiCreateDto", + "isRequired": false + }, + { + "name": "OnUpdate", + "jsonName": null, + "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyApiUpdateDto", + "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyApiUpdateDto", + "isRequired": false + } + ] + }, + "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyApiGetDto": { + "baseType": null, + "isEnum": false, + "enumNames": null, + "enumValues": null, + "genericArguments": null, + "properties": [ + { + "name": "IsAvailable", + "jsonName": null, + "type": "System.Boolean", + "typeSimple": "boolean", + "isRequired": false + } + ] + }, + "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyApiCreateDto": { + "baseType": null, + "isEnum": false, + "enumNames": null, + "enumValues": null, + "genericArguments": null, + "properties": [ + { + "name": "IsAvailable", + "jsonName": null, + "type": "System.Boolean", + "typeSimple": "boolean", + "isRequired": false + } + ] + }, + "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyApiUpdateDto": { + "baseType": null, + "isEnum": false, + "enumNames": null, + "enumValues": null, + "genericArguments": null, + "properties": [ + { + "name": "IsAvailable", + "jsonName": null, + "type": "System.Boolean", + "typeSimple": "boolean", + "isRequired": false + } + ] + }, + "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyUiDto": { + "baseType": null, + "isEnum": false, + "enumNames": null, + "enumValues": null, + "genericArguments": null, + "properties": [ + { + "name": "OnTable", + "jsonName": null, + "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyUiTableDto", + "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyUiTableDto", + "isRequired": false + }, + { + "name": "OnCreateForm", + "jsonName": null, + "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyUiFormDto", + "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyUiFormDto", + "isRequired": false + }, + { + "name": "OnEditForm", + "jsonName": null, + "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyUiFormDto", + "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyUiFormDto", + "isRequired": false + }, + { + "name": "Lookup", + "jsonName": null, + "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyUiLookupDto", + "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyUiLookupDto", + "isRequired": false + } + ] + }, + "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyUiTableDto": { + "baseType": null, + "isEnum": false, + "enumNames": null, + "enumValues": null, + "genericArguments": null, + "properties": [ + { + "name": "IsVisible", + "jsonName": null, + "type": "System.Boolean", + "typeSimple": "boolean", + "isRequired": false + } + ] + }, + "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyUiFormDto": { + "baseType": null, + "isEnum": false, + "enumNames": null, + "enumValues": null, + "genericArguments": null, + "properties": [ + { + "name": "IsVisible", + "jsonName": null, + "type": "System.Boolean", + "typeSimple": "boolean", + "isRequired": false + } + ] + }, + "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyUiLookupDto": { + "baseType": null, + "isEnum": false, + "enumNames": null, + "enumValues": null, + "genericArguments": null, + "properties": [ + { + "name": "Url", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false + }, + { + "name": "ResultListPropertyName", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false + }, + { + "name": "DisplayPropertyName", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false + }, + { + "name": "ValuePropertyName", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false + }, + { + "name": "FilterParamName", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false + } + ] + }, + "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyAttributeDto": { + "baseType": null, + "isEnum": false, + "enumNames": null, + "enumValues": null, + "genericArguments": null, + "properties": [ + { + "name": "TypeSimple", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false + }, + { + "name": "Config", + "jsonName": null, + "type": "{System.String:System.Object}", + "typeSimple": "{string:object}", + "isRequired": false + } + ] + }, + "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionEnumDto": { + "baseType": null, + "isEnum": false, + "enumNames": null, + "enumValues": null, + "genericArguments": null, + "properties": [ + { + "name": "Fields", + "jsonName": null, + "type": "[Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionEnumFieldDto]", + "typeSimple": "[Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionEnumFieldDto]", + "isRequired": false + }, + { + "name": "LocalizationResource", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false + } + ] + }, + "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionEnumFieldDto": { + "baseType": null, + "isEnum": false, + "enumNames": null, + "enumValues": null, + "genericArguments": null, + "properties": [ + { + "name": "Name", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false + }, + { + "name": "Value", + "jsonName": null, + "type": "System.Object", + "typeSimple": "object", + "isRequired": false + } + ] + }, + "Volo.Abp.Http.Modeling.ApplicationApiDescriptionModelRequestDto": { + "baseType": null, + "isEnum": false, + "enumNames": null, + "enumValues": null, + "genericArguments": null, + "properties": [ + { + "name": "IncludeTypes", + "jsonName": null, + "type": "System.Boolean", + "typeSimple": "boolean", + "isRequired": false + } + ] + }, + "Volo.Abp.Http.Modeling.ApplicationApiDescriptionModel": { + "baseType": null, + "isEnum": false, + "enumNames": null, + "enumValues": null, + "genericArguments": null, + "properties": [ + { + "name": "Modules", + "jsonName": null, + "type": "{System.String:Volo.Abp.Http.Modeling.ModuleApiDescriptionModel}", + "typeSimple": "{string:Volo.Abp.Http.Modeling.ModuleApiDescriptionModel}", + "isRequired": false + }, + { + "name": "Types", + "jsonName": null, + "type": "{System.String:Volo.Abp.Http.Modeling.TypeApiDescriptionModel}", + "typeSimple": "{string:Volo.Abp.Http.Modeling.TypeApiDescriptionModel}", + "isRequired": false + } + ] + }, + "Volo.Abp.Http.Modeling.ModuleApiDescriptionModel": { + "baseType": null, + "isEnum": false, + "enumNames": null, + "enumValues": null, + "genericArguments": null, + "properties": [ + { + "name": "RootPath", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false + }, + { + "name": "RemoteServiceName", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false + }, + { + "name": "Controllers", + "jsonName": null, + "type": "{System.String:Volo.Abp.Http.Modeling.ControllerApiDescriptionModel}", + "typeSimple": "{string:Volo.Abp.Http.Modeling.ControllerApiDescriptionModel}", + "isRequired": false + } + ] + }, + "Volo.Abp.Http.Modeling.ControllerApiDescriptionModel": { + "baseType": null, + "isEnum": false, + "enumNames": null, + "enumValues": null, + "genericArguments": null, + "properties": [ + { + "name": "ControllerName", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false + }, + { + "name": "ControllerGroupName", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false + }, + { + "name": "Type", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false + }, + { + "name": "Interfaces", + "jsonName": null, + "type": "[Volo.Abp.Http.Modeling.ControllerInterfaceApiDescriptionModel]", + "typeSimple": "[Volo.Abp.Http.Modeling.ControllerInterfaceApiDescriptionModel]", + "isRequired": false + }, + { + "name": "Actions", + "jsonName": null, + "type": "{System.String:Volo.Abp.Http.Modeling.ActionApiDescriptionModel}", + "typeSimple": "{string:Volo.Abp.Http.Modeling.ActionApiDescriptionModel}", + "isRequired": false + } + ] + }, + "Volo.Abp.Http.Modeling.ControllerInterfaceApiDescriptionModel": { + "baseType": null, + "isEnum": false, + "enumNames": null, + "enumValues": null, + "genericArguments": null, + "properties": [ + { + "name": "Type", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false + } + ] + }, + "Volo.Abp.Http.Modeling.ActionApiDescriptionModel": { + "baseType": null, + "isEnum": false, + "enumNames": null, + "enumValues": null, + "genericArguments": null, + "properties": [ + { + "name": "UniqueName", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false + }, + { + "name": "Name", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false + }, + { + "name": "HttpMethod", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false + }, + { + "name": "Url", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false + }, + { + "name": "SupportedVersions", + "jsonName": null, + "type": "[System.String]", + "typeSimple": "[string]", + "isRequired": false + }, + { + "name": "ParametersOnMethod", + "jsonName": null, + "type": "[Volo.Abp.Http.Modeling.MethodParameterApiDescriptionModel]", + "typeSimple": "[Volo.Abp.Http.Modeling.MethodParameterApiDescriptionModel]", + "isRequired": false + }, + { + "name": "Parameters", + "jsonName": null, + "type": "[Volo.Abp.Http.Modeling.ParameterApiDescriptionModel]", + "typeSimple": "[Volo.Abp.Http.Modeling.ParameterApiDescriptionModel]", + "isRequired": false + }, + { + "name": "ReturnValue", + "jsonName": null, + "type": "Volo.Abp.Http.Modeling.ReturnValueApiDescriptionModel", + "typeSimple": "Volo.Abp.Http.Modeling.ReturnValueApiDescriptionModel", + "isRequired": false + }, + { + "name": "AllowAnonymous", + "jsonName": null, + "type": "System.Boolean?", + "typeSimple": "boolean?", + "isRequired": false + }, + { + "name": "ImplementFrom", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false + } + ] + }, + "Volo.Abp.Http.Modeling.MethodParameterApiDescriptionModel": { + "baseType": null, + "isEnum": false, + "enumNames": null, + "enumValues": null, + "genericArguments": null, + "properties": [ + { + "name": "Name", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false + }, + { + "name": "TypeAsString", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false + }, + { + "name": "Type", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false + }, + { + "name": "TypeSimple", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false + }, + { + "name": "IsOptional", + "jsonName": null, + "type": "System.Boolean", + "typeSimple": "boolean", + "isRequired": false + }, + { + "name": "DefaultValue", + "jsonName": null, + "type": "System.Object", + "typeSimple": "object", + "isRequired": false + } + ] + }, + "Volo.Abp.Http.Modeling.ParameterApiDescriptionModel": { + "baseType": null, + "isEnum": false, + "enumNames": null, + "enumValues": null, + "genericArguments": null, + "properties": [ + { + "name": "NameOnMethod", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false + }, + { + "name": "Name", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false + }, + { + "name": "JsonName", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false + }, + { + "name": "Type", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false + }, + { + "name": "TypeSimple", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false + }, + { + "name": "IsOptional", + "jsonName": null, + "type": "System.Boolean", + "typeSimple": "boolean", + "isRequired": false + }, + { + "name": "DefaultValue", + "jsonName": null, + "type": "System.Object", + "typeSimple": "object", + "isRequired": false + }, + { + "name": "ConstraintTypes", + "jsonName": null, + "type": "[System.String]", + "typeSimple": "[string]", + "isRequired": false + }, + { + "name": "BindingSourceId", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false + }, + { + "name": "DescriptorName", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false + } + ] + }, + "Volo.Abp.Http.Modeling.ReturnValueApiDescriptionModel": { + "baseType": null, + "isEnum": false, + "enumNames": null, + "enumValues": null, + "genericArguments": null, + "properties": [ + { + "name": "Type", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false + }, + { + "name": "TypeSimple", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false + } + ] + }, + "Volo.Abp.Http.Modeling.TypeApiDescriptionModel": { + "baseType": null, + "isEnum": false, + "enumNames": null, + "enumValues": null, + "genericArguments": null, + "properties": [ + { + "name": "BaseType", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false + }, + { + "name": "IsEnum", + "jsonName": null, + "type": "System.Boolean", + "typeSimple": "boolean", + "isRequired": false + }, + { + "name": "EnumNames", + "jsonName": null, + "type": "[System.String]", + "typeSimple": "[string]", + "isRequired": false + }, + { + "name": "EnumValues", + "jsonName": null, + "type": "[System.Object]", + "typeSimple": "[object]", + "isRequired": false + }, + { + "name": "GenericArguments", + "jsonName": null, + "type": "[System.String]", + "typeSimple": "[string]", + "isRequired": false + }, + { + "name": "Properties", + "jsonName": null, + "type": "[Volo.Abp.Http.Modeling.PropertyApiDescriptionModel]", + "typeSimple": "[Volo.Abp.Http.Modeling.PropertyApiDescriptionModel]", + "isRequired": false + } + ] + }, + "Volo.Abp.Http.Modeling.PropertyApiDescriptionModel": { + "baseType": null, + "isEnum": false, + "enumNames": null, + "enumValues": null, + "genericArguments": null, + "properties": [ + { + "name": "Name", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false + }, + { + "name": "JsonName", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false + }, + { + "name": "Type", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false + }, + { + "name": "TypeSimple", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false + }, + { + "name": "IsRequired", + "jsonName": null, + "type": "System.Boolean", + "typeSimple": "boolean", + "isRequired": false + } + ] + }, + "Volo.Abp.Application.Dtos.PagedAndSortedResultRequestDto": { + "baseType": "Volo.Abp.Application.Dtos.PagedResultRequestDto", + "isEnum": false, + "enumNames": null, + "enumValues": null, + "genericArguments": null, + "properties": [ + { + "name": "Sorting", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false + } + ] + }, + "Volo.Abp.Application.Dtos.PagedResultRequestDto": { + "baseType": "Volo.Abp.Application.Dtos.LimitedResultRequestDto", + "isEnum": false, + "enumNames": null, + "enumValues": null, + "genericArguments": null, + "properties": [ + { + "name": "SkipCount", + "jsonName": null, + "type": "System.Int32", + "typeSimple": "number", + "isRequired": false + } + ] + }, + "Volo.Abp.Application.Dtos.LimitedResultRequestDto": { + "baseType": null, + "isEnum": false, + "enumNames": null, + "enumValues": null, + "genericArguments": null, + "properties": [ + { + "name": "DefaultMaxResultCount", + "jsonName": null, + "type": "System.Int32", + "typeSimple": "number", + "isRequired": false + }, + { + "name": "MaxMaxResultCount", + "jsonName": null, + "type": "System.Int32", + "typeSimple": "number", + "isRequired": false + }, + { + "name": "MaxResultCount", + "jsonName": null, + "type": "System.Int32", + "typeSimple": "number", + "isRequired": false + } + ] + }, + "Volo.Abp.Application.Dtos.PagedResultDto": { + "baseType": "Volo.Abp.Application.Dtos.ListResultDto", + "isEnum": false, + "enumNames": null, + "enumValues": null, + "genericArguments": [ + "T" + ], + "properties": [ + { + "name": "TotalCount", + "jsonName": null, + "type": "System.Int64", + "typeSimple": "number", + "isRequired": false + } + ] + }, + "Volo.Abp.Application.Dtos.ListResultDto": { + "baseType": null, + "isEnum": false, + "enumNames": null, + "enumValues": null, + "genericArguments": [ + "T" + ], + "properties": [ + { + "name": "Items", + "jsonName": null, + "type": "[T]", + "typeSimple": "[T]", + "isRequired": false + } + ] + }, + "EShopOnAbp.CatalogService.Products.ProductDto": { + "baseType": "Volo.Abp.Application.Dtos.AuditedEntityDto", + "isEnum": false, + "enumNames": null, + "enumValues": null, + "genericArguments": null, + "properties": [ + { + "name": "Code", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false + }, + { + "name": "Name", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false + }, + { + "name": "ImageName", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false + }, + { + "name": "Price", + "jsonName": null, + "type": "System.Single", + "typeSimple": "number", + "isRequired": false + }, + { + "name": "StockCount", + "jsonName": null, + "type": "System.Int32", + "typeSimple": "number", + "isRequired": false + } + ] + }, + "Volo.Abp.Application.Dtos.AuditedEntityDto": { + "baseType": "Volo.Abp.Application.Dtos.CreationAuditedEntityDto", + "isEnum": false, + "enumNames": null, + "enumValues": null, + "genericArguments": [ + "TPrimaryKey" + ], + "properties": [ + { + "name": "LastModificationTime", + "jsonName": null, + "type": "System.DateTime?", + "typeSimple": "string?", + "isRequired": false + }, + { + "name": "LastModifierId", + "jsonName": null, + "type": "System.Guid?", + "typeSimple": "string?", + "isRequired": false + } + ] + }, + "Volo.Abp.Application.Dtos.CreationAuditedEntityDto": { + "baseType": "Volo.Abp.Application.Dtos.EntityDto", + "isEnum": false, + "enumNames": null, + "enumValues": null, + "genericArguments": [ + "TPrimaryKey" + ], + "properties": [ + { + "name": "CreationTime", + "jsonName": null, + "type": "System.DateTime", + "typeSimple": "string", + "isRequired": false + }, + { + "name": "CreatorId", + "jsonName": null, + "type": "System.Guid?", + "typeSimple": "string?", + "isRequired": false + } + ] + }, + "Volo.Abp.Application.Dtos.EntityDto": { + "baseType": "Volo.Abp.Application.Dtos.EntityDto", + "isEnum": false, + "enumNames": null, + "enumValues": null, + "genericArguments": [ + "TKey" + ], + "properties": [ + { + "name": "Id", + "jsonName": null, + "type": "TKey", + "typeSimple": "TKey", + "isRequired": false + } + ] + }, + "Volo.Abp.Application.Dtos.EntityDto": { + "baseType": null, + "isEnum": false, + "enumNames": null, + "enumValues": null, + "genericArguments": null, + "properties": [] + }, + "EShopOnAbp.CatalogService.Products.CreateProductDto": { + "baseType": null, + "isEnum": false, + "enumNames": null, + "enumValues": null, + "genericArguments": null, + "properties": [ + { + "name": "Code", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": true + }, + { + "name": "Name", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": true + }, + { + "name": "ImageName", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false + }, + { + "name": "Price", + "jsonName": null, + "type": "System.Single", + "typeSimple": "number", + "isRequired": false + }, + { + "name": "StockCount", + "jsonName": null, + "type": "System.Int32", + "typeSimple": "number", + "isRequired": false + } + ] + }, + "EShopOnAbp.CatalogService.Products.UpdateProductDto": { + "baseType": null, + "isEnum": false, + "enumNames": null, + "enumValues": null, + "genericArguments": null, + "properties": [ + { + "name": "Name", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": true + }, + { + "name": "ImageName", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false + }, + { + "name": "Price", + "jsonName": null, + "type": "System.Single", + "typeSimple": "number", + "isRequired": false + }, + { + "name": "StockCount", + "jsonName": null, + "type": "System.Int32", + "typeSimple": "number", + "isRequired": false + } + ] + } + } +} \ No newline at end of file diff --git a/apps/angular/projects/catalog/src/lib/proxy/index.ts b/apps/angular/projects/catalog/src/lib/proxy/index.ts new file mode 100644 index 00000000..b77fad86 --- /dev/null +++ b/apps/angular/projects/catalog/src/lib/proxy/index.ts @@ -0,0 +1,2 @@ +import * as Products from './products'; +export { Products }; diff --git a/apps/angular/projects/catalog/src/lib/proxy/products/index.ts b/apps/angular/projects/catalog/src/lib/proxy/products/index.ts new file mode 100644 index 00000000..2c3e05bf --- /dev/null +++ b/apps/angular/projects/catalog/src/lib/proxy/products/index.ts @@ -0,0 +1,3 @@ +export * from './models'; +export * from './product.service'; +export * from './public-product.service'; diff --git a/apps/angular/projects/catalog/src/lib/proxy/products/models.ts b/apps/angular/projects/catalog/src/lib/proxy/products/models.ts new file mode 100644 index 00000000..54cd9960 --- /dev/null +++ b/apps/angular/projects/catalog/src/lib/proxy/products/models.ts @@ -0,0 +1,24 @@ +import type { AuditedEntityDto } from '@abp/ng.core'; + +export interface CreateProductDto { + code: string; + name: string; + imageName?: string; + price: number; + stockCount: number; +} + +export interface ProductDto extends AuditedEntityDto { + code?: string; + name?: string; + imageName?: string; + price: number; + stockCount: number; +} + +export interface UpdateProductDto { + name: string; + imageName?: string; + price: number; + stockCount: number; +} diff --git a/apps/angular/projects/catalog/src/lib/proxy/products/product.service.ts b/apps/angular/projects/catalog/src/lib/proxy/products/product.service.ts new file mode 100644 index 00000000..32777bd1 --- /dev/null +++ b/apps/angular/projects/catalog/src/lib/proxy/products/product.service.ts @@ -0,0 +1,58 @@ +import type { CreateProductDto, ProductDto, UpdateProductDto } from './models'; +import { RestService } from '@abp/ng.core'; +import type { ListResultDto, PagedAndSortedResultRequestDto, PagedResultDto } from '@abp/ng.core'; +import { Injectable } from '@angular/core'; + +@Injectable({ + providedIn: 'root', +}) +export class ProductService { + apiName = 'Catalog'; + + create = (input: CreateProductDto) => + this.restService.request({ + method: 'POST', + url: '/api/catalog/product', + body: input, + }, + { apiName: this.apiName }); + + delete = (id: string) => + this.restService.request({ + method: 'DELETE', + url: `/api/catalog/product/${id}`, + }, + { apiName: this.apiName }); + + get = (id: string) => + this.restService.request({ + method: 'GET', + url: `/api/catalog/product/${id}`, + }, + { apiName: this.apiName }); + + getList = () => + this.restService.request>({ + method: 'GET', + url: '/api/catalog/product', + }, + { apiName: this.apiName }); + + getListPaged = (input: PagedAndSortedResultRequestDto) => + this.restService.request>({ + method: 'GET', + url: '/api/catalog/product/paged', + params: { sorting: input.sorting, skipCount: input.skipCount, maxResultCount: input.maxResultCount }, + }, + { apiName: this.apiName }); + + update = (id: string, input: UpdateProductDto) => + this.restService.request({ + method: 'PUT', + url: `/api/catalog/product/${id}`, + body: input, + }, + { apiName: this.apiName }); + + constructor(private restService: RestService) {} +} diff --git a/apps/angular/projects/catalog/src/lib/proxy/products/public-product.service.ts b/apps/angular/projects/catalog/src/lib/proxy/products/public-product.service.ts new file mode 100644 index 00000000..660330e5 --- /dev/null +++ b/apps/angular/projects/catalog/src/lib/proxy/products/public-product.service.ts @@ -0,0 +1,27 @@ +import type { ProductDto } from './models'; +import { RestService } from '@abp/ng.core'; +import type { ListResultDto } from '@abp/ng.core'; +import { Injectable } from '@angular/core'; + +@Injectable({ + providedIn: 'root', +}) +export class PublicProductService { + apiName = 'Catalog'; + + get = (id: string) => + this.restService.request({ + method: 'GET', + url: `/api/catalog/public-product/${id}`, + }, + { apiName: this.apiName }); + + getList = () => + this.restService.request>({ + method: 'GET', + url: '/api/catalog/public-product', + }, + { apiName: this.apiName }); + + constructor(private restService: RestService) {} +} From 994093aea116e37a418a6205c1176b6bfdb5c5e3 Mon Sep 17 00:00:00 2001 From: bnymncoskuner Date: Fri, 10 Dec 2021 11:45:07 +0300 Subject: [PATCH 04/25] feat: add catalog routing and show the page --- .../config/src/catalog-config.module.ts | 12 +++++++ .../catalog/config/src/enums/index.ts | 2 ++ .../catalog/config/src/enums/policy-names.ts | 4 +++ .../catalog/config/src/enums/route-names.ts | 4 +++ .../catalog/config/src/providers/index.ts | 1 + .../config/src/providers/route.provider.ts | 31 +++++++++++++++++++ .../projects/catalog/config/src/public-api.ts | 3 ++ .../catalog/src/lib/catalog-routing.module.ts | 11 +++++++ .../catalog/src/lib/catalog.module.ts | 16 +++------- apps/angular/src/app/app-routing.module.ts | 4 +++ apps/angular/src/app/app.module.ts | 2 ++ apps/angular/tsconfig.json | 10 +++--- 12 files changed, 85 insertions(+), 15 deletions(-) create mode 100644 apps/angular/projects/catalog/config/src/catalog-config.module.ts create mode 100644 apps/angular/projects/catalog/config/src/enums/index.ts create mode 100644 apps/angular/projects/catalog/config/src/enums/policy-names.ts create mode 100644 apps/angular/projects/catalog/config/src/enums/route-names.ts create mode 100644 apps/angular/projects/catalog/config/src/providers/index.ts create mode 100644 apps/angular/projects/catalog/config/src/providers/route.provider.ts create mode 100644 apps/angular/projects/catalog/config/src/public-api.ts create mode 100644 apps/angular/projects/catalog/src/lib/catalog-routing.module.ts diff --git a/apps/angular/projects/catalog/config/src/catalog-config.module.ts b/apps/angular/projects/catalog/config/src/catalog-config.module.ts new file mode 100644 index 00000000..67cc0536 --- /dev/null +++ b/apps/angular/projects/catalog/config/src/catalog-config.module.ts @@ -0,0 +1,12 @@ +import { ModuleWithProviders, NgModule } from '@angular/core'; +import { CATALOG_ROUTE_PROVIDERS } from './providers/route.provider'; + +@NgModule() +export class CatalogConfigModule { + static forRoot(): ModuleWithProviders { + return { + ngModule: CatalogConfigModule, + providers: [CATALOG_ROUTE_PROVIDERS], + }; + } +} diff --git a/apps/angular/projects/catalog/config/src/enums/index.ts b/apps/angular/projects/catalog/config/src/enums/index.ts new file mode 100644 index 00000000..4a7a6a0e --- /dev/null +++ b/apps/angular/projects/catalog/config/src/enums/index.ts @@ -0,0 +1,2 @@ +export * from './policy-names'; +export * from './route-names'; diff --git a/apps/angular/projects/catalog/config/src/enums/policy-names.ts b/apps/angular/projects/catalog/config/src/enums/policy-names.ts new file mode 100644 index 00000000..86928cfb --- /dev/null +++ b/apps/angular/projects/catalog/config/src/enums/policy-names.ts @@ -0,0 +1,4 @@ +export const enum eCatalogPolicyNames { + Catalog = 'AbpCatalog.ProductManagement', + ProductManagement = 'AbpCatalog.ProductManagement', +} diff --git a/apps/angular/projects/catalog/config/src/enums/route-names.ts b/apps/angular/projects/catalog/config/src/enums/route-names.ts new file mode 100644 index 00000000..f2f86f69 --- /dev/null +++ b/apps/angular/projects/catalog/config/src/enums/route-names.ts @@ -0,0 +1,4 @@ +export const enum eCatalogRouteNames { + Catalog = 'AbpCatalog::Menu::Catalog', + ProductManagement = 'AbpCatalog::Menu:ProductManagement', +} diff --git a/apps/angular/projects/catalog/config/src/providers/index.ts b/apps/angular/projects/catalog/config/src/providers/index.ts new file mode 100644 index 00000000..fe08efba --- /dev/null +++ b/apps/angular/projects/catalog/config/src/providers/index.ts @@ -0,0 +1 @@ +export * from './route.provider'; diff --git a/apps/angular/projects/catalog/config/src/providers/route.provider.ts b/apps/angular/projects/catalog/config/src/providers/route.provider.ts new file mode 100644 index 00000000..ace11e4b --- /dev/null +++ b/apps/angular/projects/catalog/config/src/providers/route.provider.ts @@ -0,0 +1,31 @@ +import { eLayoutType, RoutesService } from '@abp/ng.core'; +import { APP_INITIALIZER } from '@angular/core'; +import { eCatalogRouteNames } from '../enums/route-names'; + +export const CATALOG_ROUTE_PROVIDERS = [ + { provide: APP_INITIALIZER, useFactory: configureRoutes, deps: [RoutesService], multi: true }, +]; + +export function configureRoutes(routesService: RoutesService) { + return () => { + routesService.add([ + { + path: '/catalog', + name: eCatalogRouteNames.Catalog, + layout: eLayoutType.application, + // TODO: find icon + iconClass: 'fa fa-users', + // TODO: add this policy + // requiredPolicy: eCatalogPolicyNames.Catalog, + }, + { + path: '/catalog', + name: eCatalogRouteNames.ProductManagement, + parentName: eCatalogRouteNames.Catalog, + order: 1, + // TODO: add this policy + // requiredPolicy: eCatalogPolicyNames.ProductManagement, + }, + ]); + }; +} diff --git a/apps/angular/projects/catalog/config/src/public-api.ts b/apps/angular/projects/catalog/config/src/public-api.ts new file mode 100644 index 00000000..cd9cb63f --- /dev/null +++ b/apps/angular/projects/catalog/config/src/public-api.ts @@ -0,0 +1,3 @@ +export * from './catalog-config.module'; +export * from './enums'; +export * from './providers'; diff --git a/apps/angular/projects/catalog/src/lib/catalog-routing.module.ts b/apps/angular/projects/catalog/src/lib/catalog-routing.module.ts new file mode 100644 index 00000000..4d848a7c --- /dev/null +++ b/apps/angular/projects/catalog/src/lib/catalog-routing.module.ts @@ -0,0 +1,11 @@ +import { NgModule } from '@angular/core'; +import { RouterModule, Routes } from '@angular/router'; +import { CatalogComponent } from './catalog.component'; + +const routes: Routes = [{ path: '', component: CatalogComponent }]; + +@NgModule({ + imports: [RouterModule.forChild(routes)], + exports: [RouterModule], +}) +export class CatalogRoutingModule {} diff --git a/apps/angular/projects/catalog/src/lib/catalog.module.ts b/apps/angular/projects/catalog/src/lib/catalog.module.ts index d68cc777..1b07c62b 100644 --- a/apps/angular/projects/catalog/src/lib/catalog.module.ts +++ b/apps/angular/projects/catalog/src/lib/catalog.module.ts @@ -1,16 +1,10 @@ import { NgModule } from '@angular/core'; +import { CatalogRoutingModule } from './catalog-routing.module'; import { CatalogComponent } from './catalog.component'; - - @NgModule({ - declarations: [ - CatalogComponent - ], - imports: [ - ], - exports: [ - CatalogComponent - ] + declarations: [CatalogComponent], + imports: [CatalogRoutingModule], + exports: [CatalogComponent], }) -export class CatalogModule { } +export class CatalogModule {} diff --git a/apps/angular/src/app/app-routing.module.ts b/apps/angular/src/app/app-routing.module.ts index 178c1823..ee4b614f 100644 --- a/apps/angular/src/app/app-routing.module.ts +++ b/apps/angular/src/app/app-routing.module.ts @@ -25,6 +25,10 @@ const routes: Routes = [ loadChildren: () => import('@abp/ng.setting-management').then(m => m.SettingManagementModule.forLazy()), }, + { + path: 'catalog', + loadChildren: () => import('@catalog').then(m => m.CatalogModule), + }, ]; @NgModule({ diff --git a/apps/angular/src/app/app.module.ts b/apps/angular/src/app/app.module.ts index 532c2b41..af512779 100644 --- a/apps/angular/src/app/app.module.ts +++ b/apps/angular/src/app/app.module.ts @@ -9,6 +9,7 @@ import { ThemeSharedModule } from '@abp/ng.theme.shared'; import { NgModule } from '@angular/core'; import { BrowserModule } from '@angular/platform-browser'; import { BrowserAnimationsModule } from '@angular/platform-browser/animations'; +import { CatalogConfigModule } from '@catalog/config'; import { environment } from '../environments/environment'; import { AppRoutingModule } from './app-routing.module'; import { AppComponent } from './app.component'; @@ -29,6 +30,7 @@ import { APP_ROUTE_PROVIDER } from './route.provider'; TenantManagementConfigModule.forRoot(), SettingManagementConfigModule.forRoot(), ThemeBasicModule.forRoot(), + CatalogConfigModule.forRoot(), ], declarations: [AppComponent], providers: [APP_ROUTE_PROVIDER], diff --git a/apps/angular/tsconfig.json b/apps/angular/tsconfig.json index 77111840..c9db678c 100644 --- a/apps/angular/tsconfig.json +++ b/apps/angular/tsconfig.json @@ -18,10 +18,12 @@ "@proxy/*": [ "src/app/proxy/*" ], - "catalog": [ - "dist/catalog/catalog", - "dist/catalog" - ] + "@catalog/config": [ + "projects/catalog/config/src/public-api.ts" + ], + "@catalog": [ + "projects/catalog/src/public-api.ts", + ], } }, "angularCompilerOptions": { From b2d5a3896de338405ed57e9cde669a0ce0a7e3b0 Mon Sep 17 00:00:00 2001 From: bnymncoskuner Date: Fri, 10 Dec 2021 11:51:54 +0300 Subject: [PATCH 05/25] feat: add products page --- .../config/src/providers/route.provider.ts | 2 +- .../src/{lib => }/catalog-routing.module.ts | 9 +++++++-- .../catalog/src/{lib => }/catalog.module.ts | 3 --- .../catalog/src/lib/catalog.component.ts | 20 ------------------- .../catalog/src/lib/catalog.service.spec.ts | 16 --------------- .../catalog/src/lib/catalog.service.ts | 9 --------- .../projects/catalog/src/pages/index.ts | 1 + .../catalog/src/pages/product/index.ts | 3 +++ .../pages/product/product-routing.module.ts | 11 ++++++++++ .../src/pages/product/product.component.css | 0 .../src/pages/product/product.component.html | 1 + .../product/product.component.spec.ts} | 12 +++++------ .../src/pages/product/product.component.ts | 15 ++++++++++++++ .../src/pages/product/product.module.ts | 17 ++++++++++++++++ .../catalog/src/{lib => }/proxy/README.md | 0 .../src/{lib => }/proxy/generate-proxy.json | 0 .../catalog/src/{lib => }/proxy/index.ts | 0 .../src/{lib => }/proxy/products/index.ts | 0 .../src/{lib => }/proxy/products/models.ts | 0 .../proxy/products/product.service.ts | 0 .../proxy/products/public-product.service.ts | 0 .../projects/catalog/src/public-api.ts | 6 ++---- 22 files changed, 64 insertions(+), 61 deletions(-) rename apps/angular/projects/catalog/src/{lib => }/catalog-routing.module.ts (51%) rename apps/angular/projects/catalog/src/{lib => }/catalog.module.ts (60%) delete mode 100644 apps/angular/projects/catalog/src/lib/catalog.component.ts delete mode 100644 apps/angular/projects/catalog/src/lib/catalog.service.spec.ts delete mode 100644 apps/angular/projects/catalog/src/lib/catalog.service.ts create mode 100644 apps/angular/projects/catalog/src/pages/index.ts create mode 100644 apps/angular/projects/catalog/src/pages/product/index.ts create mode 100644 apps/angular/projects/catalog/src/pages/product/product-routing.module.ts create mode 100644 apps/angular/projects/catalog/src/pages/product/product.component.css create mode 100644 apps/angular/projects/catalog/src/pages/product/product.component.html rename apps/angular/projects/catalog/src/{lib/catalog.component.spec.ts => pages/product/product.component.spec.ts} (56%) create mode 100644 apps/angular/projects/catalog/src/pages/product/product.component.ts create mode 100644 apps/angular/projects/catalog/src/pages/product/product.module.ts rename apps/angular/projects/catalog/src/{lib => }/proxy/README.md (100%) rename apps/angular/projects/catalog/src/{lib => }/proxy/generate-proxy.json (100%) rename apps/angular/projects/catalog/src/{lib => }/proxy/index.ts (100%) rename apps/angular/projects/catalog/src/{lib => }/proxy/products/index.ts (100%) rename apps/angular/projects/catalog/src/{lib => }/proxy/products/models.ts (100%) rename apps/angular/projects/catalog/src/{lib => }/proxy/products/product.service.ts (100%) rename apps/angular/projects/catalog/src/{lib => }/proxy/products/public-product.service.ts (100%) diff --git a/apps/angular/projects/catalog/config/src/providers/route.provider.ts b/apps/angular/projects/catalog/config/src/providers/route.provider.ts index ace11e4b..c62247ab 100644 --- a/apps/angular/projects/catalog/config/src/providers/route.provider.ts +++ b/apps/angular/projects/catalog/config/src/providers/route.provider.ts @@ -19,7 +19,7 @@ export function configureRoutes(routesService: RoutesService) { // requiredPolicy: eCatalogPolicyNames.Catalog, }, { - path: '/catalog', + path: '/catalog/products', name: eCatalogRouteNames.ProductManagement, parentName: eCatalogRouteNames.Catalog, order: 1, diff --git a/apps/angular/projects/catalog/src/lib/catalog-routing.module.ts b/apps/angular/projects/catalog/src/catalog-routing.module.ts similarity index 51% rename from apps/angular/projects/catalog/src/lib/catalog-routing.module.ts rename to apps/angular/projects/catalog/src/catalog-routing.module.ts index 4d848a7c..bc499ba8 100644 --- a/apps/angular/projects/catalog/src/lib/catalog-routing.module.ts +++ b/apps/angular/projects/catalog/src/catalog-routing.module.ts @@ -1,8 +1,13 @@ import { NgModule } from '@angular/core'; import { RouterModule, Routes } from '@angular/router'; -import { CatalogComponent } from './catalog.component'; -const routes: Routes = [{ path: '', component: CatalogComponent }]; +const routes: Routes = [ + { path: '', redirectTo: 'products', pathMatch: 'full' }, + { + path: 'products', + loadChildren: () => import('./pages/product/product.module').then(m => m.ProductModule), + }, +]; @NgModule({ imports: [RouterModule.forChild(routes)], diff --git a/apps/angular/projects/catalog/src/lib/catalog.module.ts b/apps/angular/projects/catalog/src/catalog.module.ts similarity index 60% rename from apps/angular/projects/catalog/src/lib/catalog.module.ts rename to apps/angular/projects/catalog/src/catalog.module.ts index 1b07c62b..a6f59df4 100644 --- a/apps/angular/projects/catalog/src/lib/catalog.module.ts +++ b/apps/angular/projects/catalog/src/catalog.module.ts @@ -1,10 +1,7 @@ import { NgModule } from '@angular/core'; import { CatalogRoutingModule } from './catalog-routing.module'; -import { CatalogComponent } from './catalog.component'; @NgModule({ - declarations: [CatalogComponent], imports: [CatalogRoutingModule], - exports: [CatalogComponent], }) export class CatalogModule {} diff --git a/apps/angular/projects/catalog/src/lib/catalog.component.ts b/apps/angular/projects/catalog/src/lib/catalog.component.ts deleted file mode 100644 index 7893827b..00000000 --- a/apps/angular/projects/catalog/src/lib/catalog.component.ts +++ /dev/null @@ -1,20 +0,0 @@ -import { Component, OnInit } from '@angular/core'; - -@Component({ - selector: 'lib-catalog', - template: ` -

- catalog works! -

- `, - styles: [ - ] -}) -export class CatalogComponent implements OnInit { - - constructor() { } - - ngOnInit(): void { - } - -} diff --git a/apps/angular/projects/catalog/src/lib/catalog.service.spec.ts b/apps/angular/projects/catalog/src/lib/catalog.service.spec.ts deleted file mode 100644 index 21b1429f..00000000 --- a/apps/angular/projects/catalog/src/lib/catalog.service.spec.ts +++ /dev/null @@ -1,16 +0,0 @@ -import { TestBed } from '@angular/core/testing'; - -import { CatalogService } from './catalog.service'; - -describe('CatalogService', () => { - let service: CatalogService; - - beforeEach(() => { - TestBed.configureTestingModule({}); - service = TestBed.inject(CatalogService); - }); - - it('should be created', () => { - expect(service).toBeTruthy(); - }); -}); diff --git a/apps/angular/projects/catalog/src/lib/catalog.service.ts b/apps/angular/projects/catalog/src/lib/catalog.service.ts deleted file mode 100644 index 220959ce..00000000 --- a/apps/angular/projects/catalog/src/lib/catalog.service.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { Injectable } from '@angular/core'; - -@Injectable({ - providedIn: 'root' -}) -export class CatalogService { - - constructor() { } -} diff --git a/apps/angular/projects/catalog/src/pages/index.ts b/apps/angular/projects/catalog/src/pages/index.ts new file mode 100644 index 00000000..81cb0b00 --- /dev/null +++ b/apps/angular/projects/catalog/src/pages/index.ts @@ -0,0 +1 @@ +export * from './product'; diff --git a/apps/angular/projects/catalog/src/pages/product/index.ts b/apps/angular/projects/catalog/src/pages/product/index.ts new file mode 100644 index 00000000..1152f4d7 --- /dev/null +++ b/apps/angular/projects/catalog/src/pages/product/index.ts @@ -0,0 +1,3 @@ +export * from './product-routing.module'; +export * from './product.component'; +export * from './product.module'; diff --git a/apps/angular/projects/catalog/src/pages/product/product-routing.module.ts b/apps/angular/projects/catalog/src/pages/product/product-routing.module.ts new file mode 100644 index 00000000..68bbc749 --- /dev/null +++ b/apps/angular/projects/catalog/src/pages/product/product-routing.module.ts @@ -0,0 +1,11 @@ +import { NgModule } from '@angular/core'; +import { RouterModule, Routes } from '@angular/router'; +import { ProductComponent } from './product.component'; + +const routes: Routes = [{ path: '', component: ProductComponent }]; + +@NgModule({ + imports: [RouterModule.forChild(routes)], + exports: [RouterModule] +}) +export class ProductRoutingModule { } diff --git a/apps/angular/projects/catalog/src/pages/product/product.component.css b/apps/angular/projects/catalog/src/pages/product/product.component.css new file mode 100644 index 00000000..e69de29b diff --git a/apps/angular/projects/catalog/src/pages/product/product.component.html b/apps/angular/projects/catalog/src/pages/product/product.component.html new file mode 100644 index 00000000..772b6238 --- /dev/null +++ b/apps/angular/projects/catalog/src/pages/product/product.component.html @@ -0,0 +1 @@ +

product works!

diff --git a/apps/angular/projects/catalog/src/lib/catalog.component.spec.ts b/apps/angular/projects/catalog/src/pages/product/product.component.spec.ts similarity index 56% rename from apps/angular/projects/catalog/src/lib/catalog.component.spec.ts rename to apps/angular/projects/catalog/src/pages/product/product.component.spec.ts index 61e36545..13cc4bc9 100644 --- a/apps/angular/projects/catalog/src/lib/catalog.component.spec.ts +++ b/apps/angular/projects/catalog/src/pages/product/product.component.spec.ts @@ -1,20 +1,20 @@ import { ComponentFixture, TestBed } from '@angular/core/testing'; -import { CatalogComponent } from './catalog.component'; +import { ProductComponent } from './product.component'; -describe('CatalogComponent', () => { - let component: CatalogComponent; - let fixture: ComponentFixture; +describe('ProductComponent', () => { + let component: ProductComponent; + let fixture: ComponentFixture; beforeEach(async () => { await TestBed.configureTestingModule({ - declarations: [ CatalogComponent ] + declarations: [ ProductComponent ] }) .compileComponents(); }); beforeEach(() => { - fixture = TestBed.createComponent(CatalogComponent); + fixture = TestBed.createComponent(ProductComponent); component = fixture.componentInstance; fixture.detectChanges(); }); diff --git a/apps/angular/projects/catalog/src/pages/product/product.component.ts b/apps/angular/projects/catalog/src/pages/product/product.component.ts new file mode 100644 index 00000000..13ef2015 --- /dev/null +++ b/apps/angular/projects/catalog/src/pages/product/product.component.ts @@ -0,0 +1,15 @@ +import { Component, OnInit } from '@angular/core'; + +@Component({ + selector: 'lib-product', + templateUrl: './product.component.html', + styleUrls: ['./product.component.css'] +}) +export class ProductComponent implements OnInit { + + constructor() { } + + ngOnInit(): void { + } + +} diff --git a/apps/angular/projects/catalog/src/pages/product/product.module.ts b/apps/angular/projects/catalog/src/pages/product/product.module.ts new file mode 100644 index 00000000..2fc892ab --- /dev/null +++ b/apps/angular/projects/catalog/src/pages/product/product.module.ts @@ -0,0 +1,17 @@ +import { NgModule } from '@angular/core'; +import { CommonModule } from '@angular/common'; + +import { ProductRoutingModule } from './product-routing.module'; +import { ProductComponent } from './product.component'; + + +@NgModule({ + declarations: [ + ProductComponent + ], + imports: [ + CommonModule, + ProductRoutingModule + ] +}) +export class ProductModule { } diff --git a/apps/angular/projects/catalog/src/lib/proxy/README.md b/apps/angular/projects/catalog/src/proxy/README.md similarity index 100% rename from apps/angular/projects/catalog/src/lib/proxy/README.md rename to apps/angular/projects/catalog/src/proxy/README.md diff --git a/apps/angular/projects/catalog/src/lib/proxy/generate-proxy.json b/apps/angular/projects/catalog/src/proxy/generate-proxy.json similarity index 100% rename from apps/angular/projects/catalog/src/lib/proxy/generate-proxy.json rename to apps/angular/projects/catalog/src/proxy/generate-proxy.json diff --git a/apps/angular/projects/catalog/src/lib/proxy/index.ts b/apps/angular/projects/catalog/src/proxy/index.ts similarity index 100% rename from apps/angular/projects/catalog/src/lib/proxy/index.ts rename to apps/angular/projects/catalog/src/proxy/index.ts diff --git a/apps/angular/projects/catalog/src/lib/proxy/products/index.ts b/apps/angular/projects/catalog/src/proxy/products/index.ts similarity index 100% rename from apps/angular/projects/catalog/src/lib/proxy/products/index.ts rename to apps/angular/projects/catalog/src/proxy/products/index.ts diff --git a/apps/angular/projects/catalog/src/lib/proxy/products/models.ts b/apps/angular/projects/catalog/src/proxy/products/models.ts similarity index 100% rename from apps/angular/projects/catalog/src/lib/proxy/products/models.ts rename to apps/angular/projects/catalog/src/proxy/products/models.ts diff --git a/apps/angular/projects/catalog/src/lib/proxy/products/product.service.ts b/apps/angular/projects/catalog/src/proxy/products/product.service.ts similarity index 100% rename from apps/angular/projects/catalog/src/lib/proxy/products/product.service.ts rename to apps/angular/projects/catalog/src/proxy/products/product.service.ts diff --git a/apps/angular/projects/catalog/src/lib/proxy/products/public-product.service.ts b/apps/angular/projects/catalog/src/proxy/products/public-product.service.ts similarity index 100% rename from apps/angular/projects/catalog/src/lib/proxy/products/public-product.service.ts rename to apps/angular/projects/catalog/src/proxy/products/public-product.service.ts diff --git a/apps/angular/projects/catalog/src/public-api.ts b/apps/angular/projects/catalog/src/public-api.ts index 79b5530f..2767012f 100644 --- a/apps/angular/projects/catalog/src/public-api.ts +++ b/apps/angular/projects/catalog/src/public-api.ts @@ -1,7 +1,5 @@ /* * Public API Surface of catalog */ - -export * from './lib/catalog.service'; -export * from './lib/catalog.component'; -export * from './lib/catalog.module'; +export * from './catalog.module'; +export * from './pages'; From 01ded4d32c3f26125989be27c64e1d6a8f69ea87 Mon Sep 17 00:00:00 2001 From: bnymncoskuner Date: Fri, 10 Dec 2021 12:07:48 +0300 Subject: [PATCH 06/25] feat: display initial list on product page --- .../projects/catalog/src/lib/proxy/README.md | 17 + .../catalog/src/lib/proxy/generate-proxy.json | 2221 +++++++++++++++++ .../projects/catalog/src/lib/proxy/index.ts | 2 + .../catalog/src/lib/proxy/products/index.ts | 3 + .../catalog/src/lib/proxy/products/models.ts | 24 + .../src/lib/proxy/products/product.service.ts | 58 + .../proxy/products/public-product.service.ts | 27 + .../src/pages/product/product.component.html | 6 +- .../pages/product/product.component.spec.ts | 25 - .../src/pages/product/product.component.ts | 13 +- .../projects/catalog/src/public-api.ts | 5 - apps/angular/src/app/app-routing.module.ts | 2 +- apps/angular/src/environments/environment.ts | 2 +- apps/angular/tsconfig.json | 8 +- .../appsettings.json | 4 +- 15 files changed, 2369 insertions(+), 48 deletions(-) create mode 100644 apps/angular/projects/catalog/src/lib/proxy/README.md create mode 100644 apps/angular/projects/catalog/src/lib/proxy/generate-proxy.json create mode 100644 apps/angular/projects/catalog/src/lib/proxy/index.ts create mode 100644 apps/angular/projects/catalog/src/lib/proxy/products/index.ts create mode 100644 apps/angular/projects/catalog/src/lib/proxy/products/models.ts create mode 100644 apps/angular/projects/catalog/src/lib/proxy/products/product.service.ts create mode 100644 apps/angular/projects/catalog/src/lib/proxy/products/public-product.service.ts delete mode 100644 apps/angular/projects/catalog/src/pages/product/product.component.spec.ts delete mode 100644 apps/angular/projects/catalog/src/public-api.ts diff --git a/apps/angular/projects/catalog/src/lib/proxy/README.md b/apps/angular/projects/catalog/src/lib/proxy/README.md new file mode 100644 index 00000000..767dfd0f --- /dev/null +++ b/apps/angular/projects/catalog/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/apps/angular/projects/catalog/src/lib/proxy/generate-proxy.json b/apps/angular/projects/catalog/src/lib/proxy/generate-proxy.json new file mode 100644 index 00000000..6cf150f4 --- /dev/null +++ b/apps/angular/projects/catalog/src/lib/proxy/generate-proxy.json @@ -0,0 +1,2221 @@ +{ + "generated": [ + "catalog" + ], + "modules": { + "abp": { + "rootPath": "abp", + "remoteServiceName": "abp", + "controllers": { + "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.AbpApplicationConfigurationController": { + "controllerName": "AbpApplicationConfiguration", + "controllerGroupName": "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" + }, + "allowAnonymous": null, + "implementFrom": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.IAbpApplicationConfigurationAppService" + } + } + }, + "Volo.Abp.AspNetCore.Mvc.ApiExploring.AbpApiDefinitionController": { + "controllerName": "AbpApiDefinition", + "controllerGroupName": "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", + "jsonName": null, + "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" + }, + "allowAnonymous": null, + "implementFrom": "Volo.Abp.AspNetCore.Mvc.ApiExploring.AbpApiDefinitionController" + } + } + } + } + }, + "catalog": { + "rootPath": "catalog", + "remoteServiceName": "Catalog", + "controllers": { + "EShopOnAbp.CatalogService.Products.ProductAppService": { + "controllerName": "Product", + "controllerGroupName": "Product", + "type": "EShopOnAbp.CatalogService.Products.ProductAppService", + "interfaces": [ + { + "type": "Volo.Abp.Validation.IValidationEnabled" + }, + { + "type": "Volo.Abp.Auditing.IAuditingEnabled" + }, + { + "type": "Volo.Abp.GlobalFeatures.IGlobalFeatureCheckingEnabled" + }, + { + "type": "EShopOnAbp.CatalogService.Products.IProductAppService" + } + ], + "actions": { + "GetListPagedAsyncByInput": { + "uniqueName": "GetListPagedAsyncByInput", + "name": "GetListPagedAsync", + "httpMethod": "GET", + "url": "api/catalog/product/paged", + "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", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null, + "constraintTypes": null, + "bindingSourceId": "ModelBinding", + "descriptorName": "input" + }, + { + "nameOnMethod": "input", + "name": "SkipCount", + "jsonName": null, + "type": "System.Int32", + "typeSimple": "number", + "isOptional": false, + "defaultValue": null, + "constraintTypes": null, + "bindingSourceId": "ModelBinding", + "descriptorName": "input" + }, + { + "nameOnMethod": "input", + "name": "MaxResultCount", + "jsonName": null, + "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" + }, + "allowAnonymous": null, + "implementFrom": "EShopOnAbp.CatalogService.Products.IProductAppService" + }, + "GetListAsync": { + "uniqueName": "GetListAsync", + "name": "GetListAsync", + "httpMethod": "GET", + "url": "api/catalog/product", + "supportedVersions": [], + "parametersOnMethod": [], + "parameters": [], + "returnValue": { + "type": "Volo.Abp.Application.Dtos.ListResultDto", + "typeSimple": "Volo.Abp.Application.Dtos.ListResultDto" + }, + "allowAnonymous": null, + "implementFrom": "EShopOnAbp.CatalogService.Products.IProductAppService" + }, + "GetAsyncById": { + "uniqueName": "GetAsyncById", + "name": "GetAsync", + "httpMethod": "GET", + "url": "api/catalog/product/{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", + "jsonName": null, + "type": "System.Guid", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null, + "constraintTypes": [], + "bindingSourceId": "Path", + "descriptorName": "" + } + ], + "returnValue": { + "type": "EShopOnAbp.CatalogService.Products.ProductDto", + "typeSimple": "EShopOnAbp.CatalogService.Products.ProductDto" + }, + "allowAnonymous": null, + "implementFrom": "EShopOnAbp.CatalogService.Products.IProductAppService" + }, + "CreateAsyncByInput": { + "uniqueName": "CreateAsyncByInput", + "name": "CreateAsync", + "httpMethod": "POST", + "url": "api/catalog/product", + "supportedVersions": [], + "parametersOnMethod": [ + { + "name": "input", + "typeAsString": "EShopOnAbp.CatalogService.Products.CreateProductDto, EShopOnAbp.CatalogService.Application.Contracts", + "type": "EShopOnAbp.CatalogService.Products.CreateProductDto", + "typeSimple": "EShopOnAbp.CatalogService.Products.CreateProductDto", + "isOptional": false, + "defaultValue": null + } + ], + "parameters": [ + { + "nameOnMethod": "input", + "name": "input", + "jsonName": null, + "type": "EShopOnAbp.CatalogService.Products.CreateProductDto", + "typeSimple": "EShopOnAbp.CatalogService.Products.CreateProductDto", + "isOptional": false, + "defaultValue": null, + "constraintTypes": null, + "bindingSourceId": "Body", + "descriptorName": "" + } + ], + "returnValue": { + "type": "EShopOnAbp.CatalogService.Products.ProductDto", + "typeSimple": "EShopOnAbp.CatalogService.Products.ProductDto" + }, + "allowAnonymous": false, + "implementFrom": "EShopOnAbp.CatalogService.Products.IProductAppService" + }, + "UpdateAsyncByIdAndInput": { + "uniqueName": "UpdateAsyncByIdAndInput", + "name": "UpdateAsync", + "httpMethod": "PUT", + "url": "api/catalog/product/{id}", + "supportedVersions": [], + "parametersOnMethod": [ + { + "name": "id", + "typeAsString": "System.Guid, System.Private.CoreLib", + "type": "System.Guid", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null + }, + { + "name": "input", + "typeAsString": "EShopOnAbp.CatalogService.Products.UpdateProductDto, EShopOnAbp.CatalogService.Application.Contracts", + "type": "EShopOnAbp.CatalogService.Products.UpdateProductDto", + "typeSimple": "EShopOnAbp.CatalogService.Products.UpdateProductDto", + "isOptional": false, + "defaultValue": null + } + ], + "parameters": [ + { + "nameOnMethod": "id", + "name": "id", + "jsonName": null, + "type": "System.Guid", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null, + "constraintTypes": [], + "bindingSourceId": "Path", + "descriptorName": "" + }, + { + "nameOnMethod": "input", + "name": "input", + "jsonName": null, + "type": "EShopOnAbp.CatalogService.Products.UpdateProductDto", + "typeSimple": "EShopOnAbp.CatalogService.Products.UpdateProductDto", + "isOptional": false, + "defaultValue": null, + "constraintTypes": null, + "bindingSourceId": "Body", + "descriptorName": "" + } + ], + "returnValue": { + "type": "EShopOnAbp.CatalogService.Products.ProductDto", + "typeSimple": "EShopOnAbp.CatalogService.Products.ProductDto" + }, + "allowAnonymous": null, + "implementFrom": "EShopOnAbp.CatalogService.Products.IProductAppService" + }, + "DeleteAsyncById": { + "uniqueName": "DeleteAsyncById", + "name": "DeleteAsync", + "httpMethod": "DELETE", + "url": "api/catalog/product/{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", + "jsonName": null, + "type": "System.Guid", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null, + "constraintTypes": [], + "bindingSourceId": "Path", + "descriptorName": "" + } + ], + "returnValue": { + "type": "System.Void", + "typeSimple": "System.Void" + }, + "allowAnonymous": false, + "implementFrom": "EShopOnAbp.CatalogService.Products.IProductAppService" + } + } + }, + "EShopOnAbp.CatalogService.Products.PublicProductAppService": { + "controllerName": "PublicProduct", + "controllerGroupName": "PublicProduct", + "type": "EShopOnAbp.CatalogService.Products.PublicProductAppService", + "interfaces": [ + { + "type": "Volo.Abp.Validation.IValidationEnabled" + }, + { + "type": "Volo.Abp.Auditing.IAuditingEnabled" + }, + { + "type": "Volo.Abp.GlobalFeatures.IGlobalFeatureCheckingEnabled" + }, + { + "type": "EShopOnAbp.CatalogService.Products.IPublicProductAppService" + } + ], + "actions": { + "GetListAsync": { + "uniqueName": "GetListAsync", + "name": "GetListAsync", + "httpMethod": "GET", + "url": "api/catalog/public-product", + "supportedVersions": [], + "parametersOnMethod": [], + "parameters": [], + "returnValue": { + "type": "Volo.Abp.Application.Dtos.ListResultDto", + "typeSimple": "Volo.Abp.Application.Dtos.ListResultDto" + }, + "allowAnonymous": null, + "implementFrom": "EShopOnAbp.CatalogService.Products.IPublicProductAppService" + }, + "GetAsyncById": { + "uniqueName": "GetAsyncById", + "name": "GetAsync", + "httpMethod": "GET", + "url": "api/catalog/public-product/{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", + "jsonName": null, + "type": "System.Guid", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null, + "constraintTypes": [], + "bindingSourceId": "Path", + "descriptorName": "" + } + ], + "returnValue": { + "type": "EShopOnAbp.CatalogService.Products.ProductDto", + "typeSimple": "EShopOnAbp.CatalogService.Products.ProductDto" + }, + "allowAnonymous": null, + "implementFrom": "EShopOnAbp.CatalogService.Products.IPublicProductAppService" + } + } + } + } + } + }, + "types": { + "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationConfigurationDto": { + "baseType": null, + "isEnum": false, + "enumNames": null, + "enumValues": null, + "genericArguments": null, + "properties": [ + { + "name": "Localization", + "jsonName": null, + "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationLocalizationConfigurationDto", + "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationLocalizationConfigurationDto", + "isRequired": false + }, + { + "name": "Auth", + "jsonName": null, + "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationAuthConfigurationDto", + "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationAuthConfigurationDto", + "isRequired": false + }, + { + "name": "Setting", + "jsonName": null, + "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationSettingConfigurationDto", + "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationSettingConfigurationDto", + "isRequired": false + }, + { + "name": "CurrentUser", + "jsonName": null, + "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.CurrentUserDto", + "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.CurrentUserDto", + "isRequired": false + }, + { + "name": "Features", + "jsonName": null, + "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationFeatureConfigurationDto", + "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationFeatureConfigurationDto", + "isRequired": false + }, + { + "name": "MultiTenancy", + "jsonName": null, + "type": "Volo.Abp.AspNetCore.Mvc.MultiTenancy.MultiTenancyInfoDto", + "typeSimple": "Volo.Abp.AspNetCore.Mvc.MultiTenancy.MultiTenancyInfoDto", + "isRequired": false + }, + { + "name": "CurrentTenant", + "jsonName": null, + "type": "Volo.Abp.AspNetCore.Mvc.MultiTenancy.CurrentTenantDto", + "typeSimple": "Volo.Abp.AspNetCore.Mvc.MultiTenancy.CurrentTenantDto", + "isRequired": false + }, + { + "name": "Timing", + "jsonName": null, + "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.TimingDto", + "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.TimingDto", + "isRequired": false + }, + { + "name": "Clock", + "jsonName": null, + "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ClockDto", + "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ClockDto", + "isRequired": false + }, + { + "name": "ObjectExtensions", + "jsonName": null, + "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ObjectExtensionsDto", + "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ObjectExtensionsDto", + "isRequired": false + } + ] + }, + "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationLocalizationConfigurationDto": { + "baseType": null, + "isEnum": false, + "enumNames": null, + "enumValues": null, + "genericArguments": null, + "properties": [ + { + "name": "Values", + "jsonName": null, + "type": "{System.String:System.Collections.Generic.Dictionary}", + "typeSimple": "{string:System.Collections.Generic.Dictionary}", + "isRequired": false + }, + { + "name": "Languages", + "jsonName": null, + "type": "[Volo.Abp.Localization.LanguageInfo]", + "typeSimple": "[Volo.Abp.Localization.LanguageInfo]", + "isRequired": false + }, + { + "name": "CurrentCulture", + "jsonName": null, + "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.CurrentCultureDto", + "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.CurrentCultureDto", + "isRequired": false + }, + { + "name": "DefaultResourceName", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false + }, + { + "name": "LanguagesMap", + "jsonName": null, + "type": "{System.String:[Volo.Abp.NameValue]}", + "typeSimple": "{string:[Volo.Abp.NameValue]}", + "isRequired": false + }, + { + "name": "LanguageFilesMap", + "jsonName": null, + "type": "{System.String:[Volo.Abp.NameValue]}", + "typeSimple": "{string:[Volo.Abp.NameValue]}", + "isRequired": false + } + ] + }, + "Volo.Abp.Localization.LanguageInfo": { + "baseType": null, + "isEnum": false, + "enumNames": null, + "enumValues": null, + "genericArguments": null, + "properties": [ + { + "name": "CultureName", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false + }, + { + "name": "UiCultureName", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false + }, + { + "name": "DisplayName", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false + }, + { + "name": "FlagIcon", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false + } + ] + }, + "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.CurrentCultureDto": { + "baseType": null, + "isEnum": false, + "enumNames": null, + "enumValues": null, + "genericArguments": null, + "properties": [ + { + "name": "DisplayName", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false + }, + { + "name": "EnglishName", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false + }, + { + "name": "ThreeLetterIsoLanguageName", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false + }, + { + "name": "TwoLetterIsoLanguageName", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false + }, + { + "name": "IsRightToLeft", + "jsonName": null, + "type": "System.Boolean", + "typeSimple": "boolean", + "isRequired": false + }, + { + "name": "CultureName", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false + }, + { + "name": "Name", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false + }, + { + "name": "NativeName", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false + }, + { + "name": "DateTimeFormat", + "jsonName": null, + "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.DateTimeFormatDto", + "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.DateTimeFormatDto", + "isRequired": false + } + ] + }, + "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.DateTimeFormatDto": { + "baseType": null, + "isEnum": false, + "enumNames": null, + "enumValues": null, + "genericArguments": null, + "properties": [ + { + "name": "CalendarAlgorithmType", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false + }, + { + "name": "DateTimeFormatLong", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false + }, + { + "name": "ShortDatePattern", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false + }, + { + "name": "FullDateTimePattern", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false + }, + { + "name": "DateSeparator", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false + }, + { + "name": "ShortTimePattern", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false + }, + { + "name": "LongTimePattern", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false + } + ] + }, + "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", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false + }, + { + "name": "Value", + "jsonName": null, + "type": "T", + "typeSimple": "T", + "isRequired": false + } + ] + }, + "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationAuthConfigurationDto": { + "baseType": null, + "isEnum": false, + "enumNames": null, + "enumValues": null, + "genericArguments": null, + "properties": [ + { + "name": "Policies", + "jsonName": null, + "type": "{System.String:System.Boolean}", + "typeSimple": "{string:boolean}", + "isRequired": false + }, + { + "name": "GrantedPolicies", + "jsonName": null, + "type": "{System.String:System.Boolean}", + "typeSimple": "{string:boolean}", + "isRequired": false + } + ] + }, + "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationSettingConfigurationDto": { + "baseType": null, + "isEnum": false, + "enumNames": null, + "enumValues": null, + "genericArguments": null, + "properties": [ + { + "name": "Values", + "jsonName": null, + "type": "{System.String:System.String}", + "typeSimple": "{string:string}", + "isRequired": false + } + ] + }, + "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.CurrentUserDto": { + "baseType": null, + "isEnum": false, + "enumNames": null, + "enumValues": null, + "genericArguments": null, + "properties": [ + { + "name": "IsAuthenticated", + "jsonName": null, + "type": "System.Boolean", + "typeSimple": "boolean", + "isRequired": false + }, + { + "name": "Id", + "jsonName": null, + "type": "System.Guid?", + "typeSimple": "string?", + "isRequired": false + }, + { + "name": "TenantId", + "jsonName": null, + "type": "System.Guid?", + "typeSimple": "string?", + "isRequired": false + }, + { + "name": "ImpersonatorUserId", + "jsonName": null, + "type": "System.Guid?", + "typeSimple": "string?", + "isRequired": false + }, + { + "name": "ImpersonatorTenantId", + "jsonName": null, + "type": "System.Guid?", + "typeSimple": "string?", + "isRequired": false + }, + { + "name": "UserName", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false + }, + { + "name": "Name", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false + }, + { + "name": "SurName", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false + }, + { + "name": "Email", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false + }, + { + "name": "EmailVerified", + "jsonName": null, + "type": "System.Boolean", + "typeSimple": "boolean", + "isRequired": false + }, + { + "name": "PhoneNumber", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false + }, + { + "name": "PhoneNumberVerified", + "jsonName": null, + "type": "System.Boolean", + "typeSimple": "boolean", + "isRequired": false + }, + { + "name": "Roles", + "jsonName": null, + "type": "[System.String]", + "typeSimple": "[string]", + "isRequired": false + } + ] + }, + "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationFeatureConfigurationDto": { + "baseType": null, + "isEnum": false, + "enumNames": null, + "enumValues": null, + "genericArguments": null, + "properties": [ + { + "name": "Values", + "jsonName": null, + "type": "{System.String:System.String}", + "typeSimple": "{string:string}", + "isRequired": false + } + ] + }, + "Volo.Abp.AspNetCore.Mvc.MultiTenancy.MultiTenancyInfoDto": { + "baseType": null, + "isEnum": false, + "enumNames": null, + "enumValues": null, + "genericArguments": null, + "properties": [ + { + "name": "IsEnabled", + "jsonName": null, + "type": "System.Boolean", + "typeSimple": "boolean", + "isRequired": false + } + ] + }, + "Volo.Abp.AspNetCore.Mvc.MultiTenancy.CurrentTenantDto": { + "baseType": null, + "isEnum": false, + "enumNames": null, + "enumValues": null, + "genericArguments": null, + "properties": [ + { + "name": "Id", + "jsonName": null, + "type": "System.Guid?", + "typeSimple": "string?", + "isRequired": false + }, + { + "name": "Name", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false + }, + { + "name": "IsAvailable", + "jsonName": null, + "type": "System.Boolean", + "typeSimple": "boolean", + "isRequired": false + } + ] + }, + "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.TimingDto": { + "baseType": null, + "isEnum": false, + "enumNames": null, + "enumValues": null, + "genericArguments": null, + "properties": [ + { + "name": "TimeZone", + "jsonName": null, + "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.TimeZone", + "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.TimeZone", + "isRequired": false + } + ] + }, + "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.TimeZone": { + "baseType": null, + "isEnum": false, + "enumNames": null, + "enumValues": null, + "genericArguments": null, + "properties": [ + { + "name": "Iana", + "jsonName": null, + "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.IanaTimeZone", + "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.IanaTimeZone", + "isRequired": false + }, + { + "name": "Windows", + "jsonName": null, + "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.WindowsTimeZone", + "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.WindowsTimeZone", + "isRequired": false + } + ] + }, + "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.IanaTimeZone": { + "baseType": null, + "isEnum": false, + "enumNames": null, + "enumValues": null, + "genericArguments": null, + "properties": [ + { + "name": "TimeZoneName", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false + } + ] + }, + "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.WindowsTimeZone": { + "baseType": null, + "isEnum": false, + "enumNames": null, + "enumValues": null, + "genericArguments": null, + "properties": [ + { + "name": "TimeZoneId", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false + } + ] + }, + "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ClockDto": { + "baseType": null, + "isEnum": false, + "enumNames": null, + "enumValues": null, + "genericArguments": null, + "properties": [ + { + "name": "Kind", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false + } + ] + }, + "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ObjectExtensionsDto": { + "baseType": null, + "isEnum": false, + "enumNames": null, + "enumValues": null, + "genericArguments": null, + "properties": [ + { + "name": "Modules", + "jsonName": null, + "type": "{System.String:Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ModuleExtensionDto}", + "typeSimple": "{string:Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ModuleExtensionDto}", + "isRequired": false + }, + { + "name": "Enums", + "jsonName": null, + "type": "{System.String:Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionEnumDto}", + "typeSimple": "{string:Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionEnumDto}", + "isRequired": false + } + ] + }, + "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ModuleExtensionDto": { + "baseType": null, + "isEnum": false, + "enumNames": null, + "enumValues": null, + "genericArguments": null, + "properties": [ + { + "name": "Entities", + "jsonName": null, + "type": "{System.String:Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.EntityExtensionDto}", + "typeSimple": "{string:Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.EntityExtensionDto}", + "isRequired": false + }, + { + "name": "Configuration", + "jsonName": null, + "type": "{System.String:System.Object}", + "typeSimple": "{string:object}", + "isRequired": false + } + ] + }, + "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.EntityExtensionDto": { + "baseType": null, + "isEnum": false, + "enumNames": null, + "enumValues": null, + "genericArguments": null, + "properties": [ + { + "name": "Properties", + "jsonName": null, + "type": "{System.String:Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyDto}", + "typeSimple": "{string:Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyDto}", + "isRequired": false + }, + { + "name": "Configuration", + "jsonName": null, + "type": "{System.String:System.Object}", + "typeSimple": "{string:object}", + "isRequired": false + } + ] + }, + "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyDto": { + "baseType": null, + "isEnum": false, + "enumNames": null, + "enumValues": null, + "genericArguments": null, + "properties": [ + { + "name": "Type", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false + }, + { + "name": "TypeSimple", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false + }, + { + "name": "DisplayName", + "jsonName": null, + "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.LocalizableStringDto", + "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.LocalizableStringDto", + "isRequired": false + }, + { + "name": "Api", + "jsonName": null, + "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyApiDto", + "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyApiDto", + "isRequired": false + }, + { + "name": "Ui", + "jsonName": null, + "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyUiDto", + "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyUiDto", + "isRequired": false + }, + { + "name": "Attributes", + "jsonName": null, + "type": "[Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyAttributeDto]", + "typeSimple": "[Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyAttributeDto]", + "isRequired": false + }, + { + "name": "Configuration", + "jsonName": null, + "type": "{System.String:System.Object}", + "typeSimple": "{string:object}", + "isRequired": false + }, + { + "name": "DefaultValue", + "jsonName": null, + "type": "System.Object", + "typeSimple": "object", + "isRequired": false + } + ] + }, + "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.LocalizableStringDto": { + "baseType": null, + "isEnum": false, + "enumNames": null, + "enumValues": null, + "genericArguments": null, + "properties": [ + { + "name": "Name", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false + }, + { + "name": "Resource", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false + } + ] + }, + "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyApiDto": { + "baseType": null, + "isEnum": false, + "enumNames": null, + "enumValues": null, + "genericArguments": null, + "properties": [ + { + "name": "OnGet", + "jsonName": null, + "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyApiGetDto", + "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyApiGetDto", + "isRequired": false + }, + { + "name": "OnCreate", + "jsonName": null, + "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyApiCreateDto", + "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyApiCreateDto", + "isRequired": false + }, + { + "name": "OnUpdate", + "jsonName": null, + "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyApiUpdateDto", + "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyApiUpdateDto", + "isRequired": false + } + ] + }, + "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyApiGetDto": { + "baseType": null, + "isEnum": false, + "enumNames": null, + "enumValues": null, + "genericArguments": null, + "properties": [ + { + "name": "IsAvailable", + "jsonName": null, + "type": "System.Boolean", + "typeSimple": "boolean", + "isRequired": false + } + ] + }, + "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyApiCreateDto": { + "baseType": null, + "isEnum": false, + "enumNames": null, + "enumValues": null, + "genericArguments": null, + "properties": [ + { + "name": "IsAvailable", + "jsonName": null, + "type": "System.Boolean", + "typeSimple": "boolean", + "isRequired": false + } + ] + }, + "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyApiUpdateDto": { + "baseType": null, + "isEnum": false, + "enumNames": null, + "enumValues": null, + "genericArguments": null, + "properties": [ + { + "name": "IsAvailable", + "jsonName": null, + "type": "System.Boolean", + "typeSimple": "boolean", + "isRequired": false + } + ] + }, + "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyUiDto": { + "baseType": null, + "isEnum": false, + "enumNames": null, + "enumValues": null, + "genericArguments": null, + "properties": [ + { + "name": "OnTable", + "jsonName": null, + "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyUiTableDto", + "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyUiTableDto", + "isRequired": false + }, + { + "name": "OnCreateForm", + "jsonName": null, + "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyUiFormDto", + "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyUiFormDto", + "isRequired": false + }, + { + "name": "OnEditForm", + "jsonName": null, + "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyUiFormDto", + "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyUiFormDto", + "isRequired": false + }, + { + "name": "Lookup", + "jsonName": null, + "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyUiLookupDto", + "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyUiLookupDto", + "isRequired": false + } + ] + }, + "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyUiTableDto": { + "baseType": null, + "isEnum": false, + "enumNames": null, + "enumValues": null, + "genericArguments": null, + "properties": [ + { + "name": "IsVisible", + "jsonName": null, + "type": "System.Boolean", + "typeSimple": "boolean", + "isRequired": false + } + ] + }, + "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyUiFormDto": { + "baseType": null, + "isEnum": false, + "enumNames": null, + "enumValues": null, + "genericArguments": null, + "properties": [ + { + "name": "IsVisible", + "jsonName": null, + "type": "System.Boolean", + "typeSimple": "boolean", + "isRequired": false + } + ] + }, + "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyUiLookupDto": { + "baseType": null, + "isEnum": false, + "enumNames": null, + "enumValues": null, + "genericArguments": null, + "properties": [ + { + "name": "Url", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false + }, + { + "name": "ResultListPropertyName", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false + }, + { + "name": "DisplayPropertyName", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false + }, + { + "name": "ValuePropertyName", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false + }, + { + "name": "FilterParamName", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false + } + ] + }, + "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyAttributeDto": { + "baseType": null, + "isEnum": false, + "enumNames": null, + "enumValues": null, + "genericArguments": null, + "properties": [ + { + "name": "TypeSimple", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false + }, + { + "name": "Config", + "jsonName": null, + "type": "{System.String:System.Object}", + "typeSimple": "{string:object}", + "isRequired": false + } + ] + }, + "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionEnumDto": { + "baseType": null, + "isEnum": false, + "enumNames": null, + "enumValues": null, + "genericArguments": null, + "properties": [ + { + "name": "Fields", + "jsonName": null, + "type": "[Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionEnumFieldDto]", + "typeSimple": "[Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionEnumFieldDto]", + "isRequired": false + }, + { + "name": "LocalizationResource", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false + } + ] + }, + "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionEnumFieldDto": { + "baseType": null, + "isEnum": false, + "enumNames": null, + "enumValues": null, + "genericArguments": null, + "properties": [ + { + "name": "Name", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false + }, + { + "name": "Value", + "jsonName": null, + "type": "System.Object", + "typeSimple": "object", + "isRequired": false + } + ] + }, + "Volo.Abp.Http.Modeling.ApplicationApiDescriptionModelRequestDto": { + "baseType": null, + "isEnum": false, + "enumNames": null, + "enumValues": null, + "genericArguments": null, + "properties": [ + { + "name": "IncludeTypes", + "jsonName": null, + "type": "System.Boolean", + "typeSimple": "boolean", + "isRequired": false + } + ] + }, + "Volo.Abp.Http.Modeling.ApplicationApiDescriptionModel": { + "baseType": null, + "isEnum": false, + "enumNames": null, + "enumValues": null, + "genericArguments": null, + "properties": [ + { + "name": "Modules", + "jsonName": null, + "type": "{System.String:Volo.Abp.Http.Modeling.ModuleApiDescriptionModel}", + "typeSimple": "{string:Volo.Abp.Http.Modeling.ModuleApiDescriptionModel}", + "isRequired": false + }, + { + "name": "Types", + "jsonName": null, + "type": "{System.String:Volo.Abp.Http.Modeling.TypeApiDescriptionModel}", + "typeSimple": "{string:Volo.Abp.Http.Modeling.TypeApiDescriptionModel}", + "isRequired": false + } + ] + }, + "Volo.Abp.Http.Modeling.ModuleApiDescriptionModel": { + "baseType": null, + "isEnum": false, + "enumNames": null, + "enumValues": null, + "genericArguments": null, + "properties": [ + { + "name": "RootPath", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false + }, + { + "name": "RemoteServiceName", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false + }, + { + "name": "Controllers", + "jsonName": null, + "type": "{System.String:Volo.Abp.Http.Modeling.ControllerApiDescriptionModel}", + "typeSimple": "{string:Volo.Abp.Http.Modeling.ControllerApiDescriptionModel}", + "isRequired": false + } + ] + }, + "Volo.Abp.Http.Modeling.ControllerApiDescriptionModel": { + "baseType": null, + "isEnum": false, + "enumNames": null, + "enumValues": null, + "genericArguments": null, + "properties": [ + { + "name": "ControllerName", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false + }, + { + "name": "ControllerGroupName", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false + }, + { + "name": "Type", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false + }, + { + "name": "Interfaces", + "jsonName": null, + "type": "[Volo.Abp.Http.Modeling.ControllerInterfaceApiDescriptionModel]", + "typeSimple": "[Volo.Abp.Http.Modeling.ControllerInterfaceApiDescriptionModel]", + "isRequired": false + }, + { + "name": "Actions", + "jsonName": null, + "type": "{System.String:Volo.Abp.Http.Modeling.ActionApiDescriptionModel}", + "typeSimple": "{string:Volo.Abp.Http.Modeling.ActionApiDescriptionModel}", + "isRequired": false + } + ] + }, + "Volo.Abp.Http.Modeling.ControllerInterfaceApiDescriptionModel": { + "baseType": null, + "isEnum": false, + "enumNames": null, + "enumValues": null, + "genericArguments": null, + "properties": [ + { + "name": "Type", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false + } + ] + }, + "Volo.Abp.Http.Modeling.ActionApiDescriptionModel": { + "baseType": null, + "isEnum": false, + "enumNames": null, + "enumValues": null, + "genericArguments": null, + "properties": [ + { + "name": "UniqueName", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false + }, + { + "name": "Name", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false + }, + { + "name": "HttpMethod", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false + }, + { + "name": "Url", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false + }, + { + "name": "SupportedVersions", + "jsonName": null, + "type": "[System.String]", + "typeSimple": "[string]", + "isRequired": false + }, + { + "name": "ParametersOnMethod", + "jsonName": null, + "type": "[Volo.Abp.Http.Modeling.MethodParameterApiDescriptionModel]", + "typeSimple": "[Volo.Abp.Http.Modeling.MethodParameterApiDescriptionModel]", + "isRequired": false + }, + { + "name": "Parameters", + "jsonName": null, + "type": "[Volo.Abp.Http.Modeling.ParameterApiDescriptionModel]", + "typeSimple": "[Volo.Abp.Http.Modeling.ParameterApiDescriptionModel]", + "isRequired": false + }, + { + "name": "ReturnValue", + "jsonName": null, + "type": "Volo.Abp.Http.Modeling.ReturnValueApiDescriptionModel", + "typeSimple": "Volo.Abp.Http.Modeling.ReturnValueApiDescriptionModel", + "isRequired": false + }, + { + "name": "AllowAnonymous", + "jsonName": null, + "type": "System.Boolean?", + "typeSimple": "boolean?", + "isRequired": false + }, + { + "name": "ImplementFrom", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false + } + ] + }, + "Volo.Abp.Http.Modeling.MethodParameterApiDescriptionModel": { + "baseType": null, + "isEnum": false, + "enumNames": null, + "enumValues": null, + "genericArguments": null, + "properties": [ + { + "name": "Name", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false + }, + { + "name": "TypeAsString", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false + }, + { + "name": "Type", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false + }, + { + "name": "TypeSimple", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false + }, + { + "name": "IsOptional", + "jsonName": null, + "type": "System.Boolean", + "typeSimple": "boolean", + "isRequired": false + }, + { + "name": "DefaultValue", + "jsonName": null, + "type": "System.Object", + "typeSimple": "object", + "isRequired": false + } + ] + }, + "Volo.Abp.Http.Modeling.ParameterApiDescriptionModel": { + "baseType": null, + "isEnum": false, + "enumNames": null, + "enumValues": null, + "genericArguments": null, + "properties": [ + { + "name": "NameOnMethod", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false + }, + { + "name": "Name", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false + }, + { + "name": "JsonName", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false + }, + { + "name": "Type", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false + }, + { + "name": "TypeSimple", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false + }, + { + "name": "IsOptional", + "jsonName": null, + "type": "System.Boolean", + "typeSimple": "boolean", + "isRequired": false + }, + { + "name": "DefaultValue", + "jsonName": null, + "type": "System.Object", + "typeSimple": "object", + "isRequired": false + }, + { + "name": "ConstraintTypes", + "jsonName": null, + "type": "[System.String]", + "typeSimple": "[string]", + "isRequired": false + }, + { + "name": "BindingSourceId", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false + }, + { + "name": "DescriptorName", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false + } + ] + }, + "Volo.Abp.Http.Modeling.ReturnValueApiDescriptionModel": { + "baseType": null, + "isEnum": false, + "enumNames": null, + "enumValues": null, + "genericArguments": null, + "properties": [ + { + "name": "Type", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false + }, + { + "name": "TypeSimple", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false + } + ] + }, + "Volo.Abp.Http.Modeling.TypeApiDescriptionModel": { + "baseType": null, + "isEnum": false, + "enumNames": null, + "enumValues": null, + "genericArguments": null, + "properties": [ + { + "name": "BaseType", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false + }, + { + "name": "IsEnum", + "jsonName": null, + "type": "System.Boolean", + "typeSimple": "boolean", + "isRequired": false + }, + { + "name": "EnumNames", + "jsonName": null, + "type": "[System.String]", + "typeSimple": "[string]", + "isRequired": false + }, + { + "name": "EnumValues", + "jsonName": null, + "type": "[System.Object]", + "typeSimple": "[object]", + "isRequired": false + }, + { + "name": "GenericArguments", + "jsonName": null, + "type": "[System.String]", + "typeSimple": "[string]", + "isRequired": false + }, + { + "name": "Properties", + "jsonName": null, + "type": "[Volo.Abp.Http.Modeling.PropertyApiDescriptionModel]", + "typeSimple": "[Volo.Abp.Http.Modeling.PropertyApiDescriptionModel]", + "isRequired": false + } + ] + }, + "Volo.Abp.Http.Modeling.PropertyApiDescriptionModel": { + "baseType": null, + "isEnum": false, + "enumNames": null, + "enumValues": null, + "genericArguments": null, + "properties": [ + { + "name": "Name", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false + }, + { + "name": "JsonName", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false + }, + { + "name": "Type", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false + }, + { + "name": "TypeSimple", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false + }, + { + "name": "IsRequired", + "jsonName": null, + "type": "System.Boolean", + "typeSimple": "boolean", + "isRequired": false + } + ] + }, + "Volo.Abp.Application.Dtos.PagedAndSortedResultRequestDto": { + "baseType": "Volo.Abp.Application.Dtos.PagedResultRequestDto", + "isEnum": false, + "enumNames": null, + "enumValues": null, + "genericArguments": null, + "properties": [ + { + "name": "Sorting", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false + } + ] + }, + "Volo.Abp.Application.Dtos.PagedResultRequestDto": { + "baseType": "Volo.Abp.Application.Dtos.LimitedResultRequestDto", + "isEnum": false, + "enumNames": null, + "enumValues": null, + "genericArguments": null, + "properties": [ + { + "name": "SkipCount", + "jsonName": null, + "type": "System.Int32", + "typeSimple": "number", + "isRequired": false + } + ] + }, + "Volo.Abp.Application.Dtos.LimitedResultRequestDto": { + "baseType": null, + "isEnum": false, + "enumNames": null, + "enumValues": null, + "genericArguments": null, + "properties": [ + { + "name": "DefaultMaxResultCount", + "jsonName": null, + "type": "System.Int32", + "typeSimple": "number", + "isRequired": false + }, + { + "name": "MaxMaxResultCount", + "jsonName": null, + "type": "System.Int32", + "typeSimple": "number", + "isRequired": false + }, + { + "name": "MaxResultCount", + "jsonName": null, + "type": "System.Int32", + "typeSimple": "number", + "isRequired": false + } + ] + }, + "Volo.Abp.Application.Dtos.PagedResultDto": { + "baseType": "Volo.Abp.Application.Dtos.ListResultDto", + "isEnum": false, + "enumNames": null, + "enumValues": null, + "genericArguments": [ + "T" + ], + "properties": [ + { + "name": "TotalCount", + "jsonName": null, + "type": "System.Int64", + "typeSimple": "number", + "isRequired": false + } + ] + }, + "Volo.Abp.Application.Dtos.ListResultDto": { + "baseType": null, + "isEnum": false, + "enumNames": null, + "enumValues": null, + "genericArguments": [ + "T" + ], + "properties": [ + { + "name": "Items", + "jsonName": null, + "type": "[T]", + "typeSimple": "[T]", + "isRequired": false + } + ] + }, + "EShopOnAbp.CatalogService.Products.ProductDto": { + "baseType": "Volo.Abp.Application.Dtos.AuditedEntityDto", + "isEnum": false, + "enumNames": null, + "enumValues": null, + "genericArguments": null, + "properties": [ + { + "name": "Code", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false + }, + { + "name": "Name", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false + }, + { + "name": "ImageName", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false + }, + { + "name": "Price", + "jsonName": null, + "type": "System.Single", + "typeSimple": "number", + "isRequired": false + }, + { + "name": "StockCount", + "jsonName": null, + "type": "System.Int32", + "typeSimple": "number", + "isRequired": false + } + ] + }, + "Volo.Abp.Application.Dtos.AuditedEntityDto": { + "baseType": "Volo.Abp.Application.Dtos.CreationAuditedEntityDto", + "isEnum": false, + "enumNames": null, + "enumValues": null, + "genericArguments": [ + "TPrimaryKey" + ], + "properties": [ + { + "name": "LastModificationTime", + "jsonName": null, + "type": "System.DateTime?", + "typeSimple": "string?", + "isRequired": false + }, + { + "name": "LastModifierId", + "jsonName": null, + "type": "System.Guid?", + "typeSimple": "string?", + "isRequired": false + } + ] + }, + "Volo.Abp.Application.Dtos.CreationAuditedEntityDto": { + "baseType": "Volo.Abp.Application.Dtos.EntityDto", + "isEnum": false, + "enumNames": null, + "enumValues": null, + "genericArguments": [ + "TPrimaryKey" + ], + "properties": [ + { + "name": "CreationTime", + "jsonName": null, + "type": "System.DateTime", + "typeSimple": "string", + "isRequired": false + }, + { + "name": "CreatorId", + "jsonName": null, + "type": "System.Guid?", + "typeSimple": "string?", + "isRequired": false + } + ] + }, + "Volo.Abp.Application.Dtos.EntityDto": { + "baseType": "Volo.Abp.Application.Dtos.EntityDto", + "isEnum": false, + "enumNames": null, + "enumValues": null, + "genericArguments": [ + "TKey" + ], + "properties": [ + { + "name": "Id", + "jsonName": null, + "type": "TKey", + "typeSimple": "TKey", + "isRequired": false + } + ] + }, + "Volo.Abp.Application.Dtos.EntityDto": { + "baseType": null, + "isEnum": false, + "enumNames": null, + "enumValues": null, + "genericArguments": null, + "properties": [] + }, + "EShopOnAbp.CatalogService.Products.CreateProductDto": { + "baseType": null, + "isEnum": false, + "enumNames": null, + "enumValues": null, + "genericArguments": null, + "properties": [ + { + "name": "Code", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": true + }, + { + "name": "Name", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": true + }, + { + "name": "ImageName", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false + }, + { + "name": "Price", + "jsonName": null, + "type": "System.Single", + "typeSimple": "number", + "isRequired": false + }, + { + "name": "StockCount", + "jsonName": null, + "type": "System.Int32", + "typeSimple": "number", + "isRequired": false + } + ] + }, + "EShopOnAbp.CatalogService.Products.UpdateProductDto": { + "baseType": null, + "isEnum": false, + "enumNames": null, + "enumValues": null, + "genericArguments": null, + "properties": [ + { + "name": "Name", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": true + }, + { + "name": "ImageName", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false + }, + { + "name": "Price", + "jsonName": null, + "type": "System.Single", + "typeSimple": "number", + "isRequired": false + }, + { + "name": "StockCount", + "jsonName": null, + "type": "System.Int32", + "typeSimple": "number", + "isRequired": false + } + ] + } + } +} \ No newline at end of file diff --git a/apps/angular/projects/catalog/src/lib/proxy/index.ts b/apps/angular/projects/catalog/src/lib/proxy/index.ts new file mode 100644 index 00000000..b77fad86 --- /dev/null +++ b/apps/angular/projects/catalog/src/lib/proxy/index.ts @@ -0,0 +1,2 @@ +import * as Products from './products'; +export { Products }; diff --git a/apps/angular/projects/catalog/src/lib/proxy/products/index.ts b/apps/angular/projects/catalog/src/lib/proxy/products/index.ts new file mode 100644 index 00000000..2c3e05bf --- /dev/null +++ b/apps/angular/projects/catalog/src/lib/proxy/products/index.ts @@ -0,0 +1,3 @@ +export * from './models'; +export * from './product.service'; +export * from './public-product.service'; diff --git a/apps/angular/projects/catalog/src/lib/proxy/products/models.ts b/apps/angular/projects/catalog/src/lib/proxy/products/models.ts new file mode 100644 index 00000000..54cd9960 --- /dev/null +++ b/apps/angular/projects/catalog/src/lib/proxy/products/models.ts @@ -0,0 +1,24 @@ +import type { AuditedEntityDto } from '@abp/ng.core'; + +export interface CreateProductDto { + code: string; + name: string; + imageName?: string; + price: number; + stockCount: number; +} + +export interface ProductDto extends AuditedEntityDto { + code?: string; + name?: string; + imageName?: string; + price: number; + stockCount: number; +} + +export interface UpdateProductDto { + name: string; + imageName?: string; + price: number; + stockCount: number; +} diff --git a/apps/angular/projects/catalog/src/lib/proxy/products/product.service.ts b/apps/angular/projects/catalog/src/lib/proxy/products/product.service.ts new file mode 100644 index 00000000..32777bd1 --- /dev/null +++ b/apps/angular/projects/catalog/src/lib/proxy/products/product.service.ts @@ -0,0 +1,58 @@ +import type { CreateProductDto, ProductDto, UpdateProductDto } from './models'; +import { RestService } from '@abp/ng.core'; +import type { ListResultDto, PagedAndSortedResultRequestDto, PagedResultDto } from '@abp/ng.core'; +import { Injectable } from '@angular/core'; + +@Injectable({ + providedIn: 'root', +}) +export class ProductService { + apiName = 'Catalog'; + + create = (input: CreateProductDto) => + this.restService.request({ + method: 'POST', + url: '/api/catalog/product', + body: input, + }, + { apiName: this.apiName }); + + delete = (id: string) => + this.restService.request({ + method: 'DELETE', + url: `/api/catalog/product/${id}`, + }, + { apiName: this.apiName }); + + get = (id: string) => + this.restService.request({ + method: 'GET', + url: `/api/catalog/product/${id}`, + }, + { apiName: this.apiName }); + + getList = () => + this.restService.request>({ + method: 'GET', + url: '/api/catalog/product', + }, + { apiName: this.apiName }); + + getListPaged = (input: PagedAndSortedResultRequestDto) => + this.restService.request>({ + method: 'GET', + url: '/api/catalog/product/paged', + params: { sorting: input.sorting, skipCount: input.skipCount, maxResultCount: input.maxResultCount }, + }, + { apiName: this.apiName }); + + update = (id: string, input: UpdateProductDto) => + this.restService.request({ + method: 'PUT', + url: `/api/catalog/product/${id}`, + body: input, + }, + { apiName: this.apiName }); + + constructor(private restService: RestService) {} +} diff --git a/apps/angular/projects/catalog/src/lib/proxy/products/public-product.service.ts b/apps/angular/projects/catalog/src/lib/proxy/products/public-product.service.ts new file mode 100644 index 00000000..660330e5 --- /dev/null +++ b/apps/angular/projects/catalog/src/lib/proxy/products/public-product.service.ts @@ -0,0 +1,27 @@ +import type { ProductDto } from './models'; +import { RestService } from '@abp/ng.core'; +import type { ListResultDto } from '@abp/ng.core'; +import { Injectable } from '@angular/core'; + +@Injectable({ + providedIn: 'root', +}) +export class PublicProductService { + apiName = 'Catalog'; + + get = (id: string) => + this.restService.request({ + method: 'GET', + url: `/api/catalog/public-product/${id}`, + }, + { apiName: this.apiName }); + + getList = () => + this.restService.request>({ + method: 'GET', + url: '/api/catalog/public-product', + }, + { apiName: this.apiName }); + + constructor(private restService: RestService) {} +} diff --git a/apps/angular/projects/catalog/src/pages/product/product.component.html b/apps/angular/projects/catalog/src/pages/product/product.component.html index 772b6238..7a7d2d7d 100644 --- a/apps/angular/projects/catalog/src/pages/product/product.component.html +++ b/apps/angular/projects/catalog/src/pages/product/product.component.html @@ -1 +1,5 @@ -

product works!

+
    +
  • + {{ item | json }} +
  • +
diff --git a/apps/angular/projects/catalog/src/pages/product/product.component.spec.ts b/apps/angular/projects/catalog/src/pages/product/product.component.spec.ts deleted file mode 100644 index 13cc4bc9..00000000 --- a/apps/angular/projects/catalog/src/pages/product/product.component.spec.ts +++ /dev/null @@ -1,25 +0,0 @@ -import { ComponentFixture, TestBed } from '@angular/core/testing'; - -import { ProductComponent } from './product.component'; - -describe('ProductComponent', () => { - let component: ProductComponent; - let fixture: ComponentFixture; - - beforeEach(async () => { - await TestBed.configureTestingModule({ - declarations: [ ProductComponent ] - }) - .compileComponents(); - }); - - beforeEach(() => { - fixture = TestBed.createComponent(ProductComponent); - component = fixture.componentInstance; - fixture.detectChanges(); - }); - - it('should create', () => { - expect(component).toBeTruthy(); - }); -}); diff --git a/apps/angular/projects/catalog/src/pages/product/product.component.ts b/apps/angular/projects/catalog/src/pages/product/product.component.ts index 13ef2015..669f8ded 100644 --- a/apps/angular/projects/catalog/src/pages/product/product.component.ts +++ b/apps/angular/projects/catalog/src/pages/product/product.component.ts @@ -1,15 +1,14 @@ import { Component, OnInit } from '@angular/core'; - +import { ProductService } from '@catalog/proxy/products'; +import { map } from 'rxjs/operators'; @Component({ selector: 'lib-product', templateUrl: './product.component.html', - styleUrls: ['./product.component.css'] + styleUrls: ['./product.component.css'], }) export class ProductComponent implements OnInit { + list$ = this.productService.getList().pipe(map(res => res.items)); + constructor(public readonly productService: ProductService) {} - constructor() { } - - ngOnInit(): void { - } - + ngOnInit(): void {} } diff --git a/apps/angular/projects/catalog/src/public-api.ts b/apps/angular/projects/catalog/src/public-api.ts deleted file mode 100644 index 2767012f..00000000 --- a/apps/angular/projects/catalog/src/public-api.ts +++ /dev/null @@ -1,5 +0,0 @@ -/* - * Public API Surface of catalog - */ -export * from './catalog.module'; -export * from './pages'; diff --git a/apps/angular/src/app/app-routing.module.ts b/apps/angular/src/app/app-routing.module.ts index ee4b614f..eb31ebba 100644 --- a/apps/angular/src/app/app-routing.module.ts +++ b/apps/angular/src/app/app-routing.module.ts @@ -27,7 +27,7 @@ const routes: Routes = [ }, { path: 'catalog', - loadChildren: () => import('@catalog').then(m => m.CatalogModule), + loadChildren: () => import('@catalog/catalog.module').then(m => m.CatalogModule), }, ]; diff --git a/apps/angular/src/environments/environment.ts b/apps/angular/src/environments/environment.ts index be862fc3..4d46999e 100644 --- a/apps/angular/src/environments/environment.ts +++ b/apps/angular/src/environments/environment.ts @@ -21,7 +21,7 @@ export const environment = { url: 'https://localhost:44372', rootNamespace: 'EShopOnAbp', }, - CatalogService: { + Catalog: { url: 'https://localhost:44354', rootNamespace: 'EShopOnAbp.CatalogService', }, diff --git a/apps/angular/tsconfig.json b/apps/angular/tsconfig.json index c9db678c..e472f66f 100644 --- a/apps/angular/tsconfig.json +++ b/apps/angular/tsconfig.json @@ -14,15 +14,11 @@ "typeRoots": ["node_modules/@types"], "lib": ["es2018", "dom"], "paths": { - "@proxy": ["src/app/proxy/index.ts"], - "@proxy/*": [ - "src/app/proxy/*" - ], "@catalog/config": [ "projects/catalog/config/src/public-api.ts" ], - "@catalog": [ - "projects/catalog/src/public-api.ts", + "@catalog/*": [ + "projects/catalog/src/*", ], } }, diff --git a/services/catalog/src/EShopOnAbp.CatalogService.HttpApi.Host/appsettings.json b/services/catalog/src/EShopOnAbp.CatalogService.HttpApi.Host/appsettings.json index 4f253c51..ed868ed2 100644 --- a/services/catalog/src/EShopOnAbp.CatalogService.HttpApi.Host/appsettings.json +++ b/services/catalog/src/EShopOnAbp.CatalogService.HttpApi.Host/appsettings.json @@ -1,7 +1,7 @@ { "App": { "SelfUrl": "https://localhost:44354", - "CorsOrigins": "https://localhost:44372,https://localhost:44373,https://localhost:44335" + "CorsOrigins": "https://localhost:44372,https://localhost:44373,https://localhost:44335,http://localhost:4200" }, "AuthServer": { "Authority": "https://localhost:44330", @@ -41,4 +41,4 @@ "ElasticSearch": { "Url": "http://localhost:9200" } -} \ No newline at end of file +} From a5934e668d4a1c58b502de663d5003c5d5a406e4 Mon Sep 17 00:00:00 2001 From: bnymncoskuner Date: Fri, 10 Dec 2021 12:27:10 +0300 Subject: [PATCH 07/25] feat: add new tsconfig path for proxy --- .../projects/catalog/src/proxy/README.md | 17 - .../catalog/src/proxy/generate-proxy.json | 2221 ----------------- .../projects/catalog/src/proxy/index.ts | 2 - .../catalog/src/proxy/products/index.ts | 3 - .../catalog/src/proxy/products/models.ts | 24 - .../src/proxy/products/product.service.ts | 58 - .../proxy/products/public-product.service.ts | 27 - apps/angular/tsconfig.json | 3 + 8 files changed, 3 insertions(+), 2352 deletions(-) delete mode 100644 apps/angular/projects/catalog/src/proxy/README.md delete mode 100644 apps/angular/projects/catalog/src/proxy/generate-proxy.json delete mode 100644 apps/angular/projects/catalog/src/proxy/index.ts delete mode 100644 apps/angular/projects/catalog/src/proxy/products/index.ts delete mode 100644 apps/angular/projects/catalog/src/proxy/products/models.ts delete mode 100644 apps/angular/projects/catalog/src/proxy/products/product.service.ts delete mode 100644 apps/angular/projects/catalog/src/proxy/products/public-product.service.ts diff --git a/apps/angular/projects/catalog/src/proxy/README.md b/apps/angular/projects/catalog/src/proxy/README.md deleted file mode 100644 index 767dfd0f..00000000 --- a/apps/angular/projects/catalog/src/proxy/README.md +++ /dev/null @@ -1,17 +0,0 @@ -# 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/apps/angular/projects/catalog/src/proxy/generate-proxy.json b/apps/angular/projects/catalog/src/proxy/generate-proxy.json deleted file mode 100644 index 6cf150f4..00000000 --- a/apps/angular/projects/catalog/src/proxy/generate-proxy.json +++ /dev/null @@ -1,2221 +0,0 @@ -{ - "generated": [ - "catalog" - ], - "modules": { - "abp": { - "rootPath": "abp", - "remoteServiceName": "abp", - "controllers": { - "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.AbpApplicationConfigurationController": { - "controllerName": "AbpApplicationConfiguration", - "controllerGroupName": "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" - }, - "allowAnonymous": null, - "implementFrom": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.IAbpApplicationConfigurationAppService" - } - } - }, - "Volo.Abp.AspNetCore.Mvc.ApiExploring.AbpApiDefinitionController": { - "controllerName": "AbpApiDefinition", - "controllerGroupName": "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", - "jsonName": null, - "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" - }, - "allowAnonymous": null, - "implementFrom": "Volo.Abp.AspNetCore.Mvc.ApiExploring.AbpApiDefinitionController" - } - } - } - } - }, - "catalog": { - "rootPath": "catalog", - "remoteServiceName": "Catalog", - "controllers": { - "EShopOnAbp.CatalogService.Products.ProductAppService": { - "controllerName": "Product", - "controllerGroupName": "Product", - "type": "EShopOnAbp.CatalogService.Products.ProductAppService", - "interfaces": [ - { - "type": "Volo.Abp.Validation.IValidationEnabled" - }, - { - "type": "Volo.Abp.Auditing.IAuditingEnabled" - }, - { - "type": "Volo.Abp.GlobalFeatures.IGlobalFeatureCheckingEnabled" - }, - { - "type": "EShopOnAbp.CatalogService.Products.IProductAppService" - } - ], - "actions": { - "GetListPagedAsyncByInput": { - "uniqueName": "GetListPagedAsyncByInput", - "name": "GetListPagedAsync", - "httpMethod": "GET", - "url": "api/catalog/product/paged", - "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", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "ModelBinding", - "descriptorName": "input" - }, - { - "nameOnMethod": "input", - "name": "SkipCount", - "jsonName": null, - "type": "System.Int32", - "typeSimple": "number", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "ModelBinding", - "descriptorName": "input" - }, - { - "nameOnMethod": "input", - "name": "MaxResultCount", - "jsonName": null, - "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" - }, - "allowAnonymous": null, - "implementFrom": "EShopOnAbp.CatalogService.Products.IProductAppService" - }, - "GetListAsync": { - "uniqueName": "GetListAsync", - "name": "GetListAsync", - "httpMethod": "GET", - "url": "api/catalog/product", - "supportedVersions": [], - "parametersOnMethod": [], - "parameters": [], - "returnValue": { - "type": "Volo.Abp.Application.Dtos.ListResultDto", - "typeSimple": "Volo.Abp.Application.Dtos.ListResultDto" - }, - "allowAnonymous": null, - "implementFrom": "EShopOnAbp.CatalogService.Products.IProductAppService" - }, - "GetAsyncById": { - "uniqueName": "GetAsyncById", - "name": "GetAsync", - "httpMethod": "GET", - "url": "api/catalog/product/{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", - "jsonName": null, - "type": "System.Guid", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": [], - "bindingSourceId": "Path", - "descriptorName": "" - } - ], - "returnValue": { - "type": "EShopOnAbp.CatalogService.Products.ProductDto", - "typeSimple": "EShopOnAbp.CatalogService.Products.ProductDto" - }, - "allowAnonymous": null, - "implementFrom": "EShopOnAbp.CatalogService.Products.IProductAppService" - }, - "CreateAsyncByInput": { - "uniqueName": "CreateAsyncByInput", - "name": "CreateAsync", - "httpMethod": "POST", - "url": "api/catalog/product", - "supportedVersions": [], - "parametersOnMethod": [ - { - "name": "input", - "typeAsString": "EShopOnAbp.CatalogService.Products.CreateProductDto, EShopOnAbp.CatalogService.Application.Contracts", - "type": "EShopOnAbp.CatalogService.Products.CreateProductDto", - "typeSimple": "EShopOnAbp.CatalogService.Products.CreateProductDto", - "isOptional": false, - "defaultValue": null - } - ], - "parameters": [ - { - "nameOnMethod": "input", - "name": "input", - "jsonName": null, - "type": "EShopOnAbp.CatalogService.Products.CreateProductDto", - "typeSimple": "EShopOnAbp.CatalogService.Products.CreateProductDto", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "Body", - "descriptorName": "" - } - ], - "returnValue": { - "type": "EShopOnAbp.CatalogService.Products.ProductDto", - "typeSimple": "EShopOnAbp.CatalogService.Products.ProductDto" - }, - "allowAnonymous": false, - "implementFrom": "EShopOnAbp.CatalogService.Products.IProductAppService" - }, - "UpdateAsyncByIdAndInput": { - "uniqueName": "UpdateAsyncByIdAndInput", - "name": "UpdateAsync", - "httpMethod": "PUT", - "url": "api/catalog/product/{id}", - "supportedVersions": [], - "parametersOnMethod": [ - { - "name": "id", - "typeAsString": "System.Guid, System.Private.CoreLib", - "type": "System.Guid", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null - }, - { - "name": "input", - "typeAsString": "EShopOnAbp.CatalogService.Products.UpdateProductDto, EShopOnAbp.CatalogService.Application.Contracts", - "type": "EShopOnAbp.CatalogService.Products.UpdateProductDto", - "typeSimple": "EShopOnAbp.CatalogService.Products.UpdateProductDto", - "isOptional": false, - "defaultValue": null - } - ], - "parameters": [ - { - "nameOnMethod": "id", - "name": "id", - "jsonName": null, - "type": "System.Guid", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": [], - "bindingSourceId": "Path", - "descriptorName": "" - }, - { - "nameOnMethod": "input", - "name": "input", - "jsonName": null, - "type": "EShopOnAbp.CatalogService.Products.UpdateProductDto", - "typeSimple": "EShopOnAbp.CatalogService.Products.UpdateProductDto", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "Body", - "descriptorName": "" - } - ], - "returnValue": { - "type": "EShopOnAbp.CatalogService.Products.ProductDto", - "typeSimple": "EShopOnAbp.CatalogService.Products.ProductDto" - }, - "allowAnonymous": null, - "implementFrom": "EShopOnAbp.CatalogService.Products.IProductAppService" - }, - "DeleteAsyncById": { - "uniqueName": "DeleteAsyncById", - "name": "DeleteAsync", - "httpMethod": "DELETE", - "url": "api/catalog/product/{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", - "jsonName": null, - "type": "System.Guid", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": [], - "bindingSourceId": "Path", - "descriptorName": "" - } - ], - "returnValue": { - "type": "System.Void", - "typeSimple": "System.Void" - }, - "allowAnonymous": false, - "implementFrom": "EShopOnAbp.CatalogService.Products.IProductAppService" - } - } - }, - "EShopOnAbp.CatalogService.Products.PublicProductAppService": { - "controllerName": "PublicProduct", - "controllerGroupName": "PublicProduct", - "type": "EShopOnAbp.CatalogService.Products.PublicProductAppService", - "interfaces": [ - { - "type": "Volo.Abp.Validation.IValidationEnabled" - }, - { - "type": "Volo.Abp.Auditing.IAuditingEnabled" - }, - { - "type": "Volo.Abp.GlobalFeatures.IGlobalFeatureCheckingEnabled" - }, - { - "type": "EShopOnAbp.CatalogService.Products.IPublicProductAppService" - } - ], - "actions": { - "GetListAsync": { - "uniqueName": "GetListAsync", - "name": "GetListAsync", - "httpMethod": "GET", - "url": "api/catalog/public-product", - "supportedVersions": [], - "parametersOnMethod": [], - "parameters": [], - "returnValue": { - "type": "Volo.Abp.Application.Dtos.ListResultDto", - "typeSimple": "Volo.Abp.Application.Dtos.ListResultDto" - }, - "allowAnonymous": null, - "implementFrom": "EShopOnAbp.CatalogService.Products.IPublicProductAppService" - }, - "GetAsyncById": { - "uniqueName": "GetAsyncById", - "name": "GetAsync", - "httpMethod": "GET", - "url": "api/catalog/public-product/{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", - "jsonName": null, - "type": "System.Guid", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": [], - "bindingSourceId": "Path", - "descriptorName": "" - } - ], - "returnValue": { - "type": "EShopOnAbp.CatalogService.Products.ProductDto", - "typeSimple": "EShopOnAbp.CatalogService.Products.ProductDto" - }, - "allowAnonymous": null, - "implementFrom": "EShopOnAbp.CatalogService.Products.IPublicProductAppService" - } - } - } - } - } - }, - "types": { - "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationConfigurationDto": { - "baseType": null, - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ - { - "name": "Localization", - "jsonName": null, - "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationLocalizationConfigurationDto", - "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationLocalizationConfigurationDto", - "isRequired": false - }, - { - "name": "Auth", - "jsonName": null, - "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationAuthConfigurationDto", - "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationAuthConfigurationDto", - "isRequired": false - }, - { - "name": "Setting", - "jsonName": null, - "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationSettingConfigurationDto", - "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationSettingConfigurationDto", - "isRequired": false - }, - { - "name": "CurrentUser", - "jsonName": null, - "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.CurrentUserDto", - "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.CurrentUserDto", - "isRequired": false - }, - { - "name": "Features", - "jsonName": null, - "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationFeatureConfigurationDto", - "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationFeatureConfigurationDto", - "isRequired": false - }, - { - "name": "MultiTenancy", - "jsonName": null, - "type": "Volo.Abp.AspNetCore.Mvc.MultiTenancy.MultiTenancyInfoDto", - "typeSimple": "Volo.Abp.AspNetCore.Mvc.MultiTenancy.MultiTenancyInfoDto", - "isRequired": false - }, - { - "name": "CurrentTenant", - "jsonName": null, - "type": "Volo.Abp.AspNetCore.Mvc.MultiTenancy.CurrentTenantDto", - "typeSimple": "Volo.Abp.AspNetCore.Mvc.MultiTenancy.CurrentTenantDto", - "isRequired": false - }, - { - "name": "Timing", - "jsonName": null, - "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.TimingDto", - "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.TimingDto", - "isRequired": false - }, - { - "name": "Clock", - "jsonName": null, - "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ClockDto", - "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ClockDto", - "isRequired": false - }, - { - "name": "ObjectExtensions", - "jsonName": null, - "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ObjectExtensionsDto", - "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ObjectExtensionsDto", - "isRequired": false - } - ] - }, - "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationLocalizationConfigurationDto": { - "baseType": null, - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ - { - "name": "Values", - "jsonName": null, - "type": "{System.String:System.Collections.Generic.Dictionary}", - "typeSimple": "{string:System.Collections.Generic.Dictionary}", - "isRequired": false - }, - { - "name": "Languages", - "jsonName": null, - "type": "[Volo.Abp.Localization.LanguageInfo]", - "typeSimple": "[Volo.Abp.Localization.LanguageInfo]", - "isRequired": false - }, - { - "name": "CurrentCulture", - "jsonName": null, - "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.CurrentCultureDto", - "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.CurrentCultureDto", - "isRequired": false - }, - { - "name": "DefaultResourceName", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "LanguagesMap", - "jsonName": null, - "type": "{System.String:[Volo.Abp.NameValue]}", - "typeSimple": "{string:[Volo.Abp.NameValue]}", - "isRequired": false - }, - { - "name": "LanguageFilesMap", - "jsonName": null, - "type": "{System.String:[Volo.Abp.NameValue]}", - "typeSimple": "{string:[Volo.Abp.NameValue]}", - "isRequired": false - } - ] - }, - "Volo.Abp.Localization.LanguageInfo": { - "baseType": null, - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ - { - "name": "CultureName", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "UiCultureName", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "DisplayName", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "FlagIcon", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - } - ] - }, - "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.CurrentCultureDto": { - "baseType": null, - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ - { - "name": "DisplayName", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "EnglishName", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "ThreeLetterIsoLanguageName", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "TwoLetterIsoLanguageName", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "IsRightToLeft", - "jsonName": null, - "type": "System.Boolean", - "typeSimple": "boolean", - "isRequired": false - }, - { - "name": "CultureName", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "Name", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "NativeName", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "DateTimeFormat", - "jsonName": null, - "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.DateTimeFormatDto", - "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.DateTimeFormatDto", - "isRequired": false - } - ] - }, - "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.DateTimeFormatDto": { - "baseType": null, - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ - { - "name": "CalendarAlgorithmType", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "DateTimeFormatLong", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "ShortDatePattern", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "FullDateTimePattern", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "DateSeparator", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "ShortTimePattern", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "LongTimePattern", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - } - ] - }, - "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", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "Value", - "jsonName": null, - "type": "T", - "typeSimple": "T", - "isRequired": false - } - ] - }, - "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationAuthConfigurationDto": { - "baseType": null, - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ - { - "name": "Policies", - "jsonName": null, - "type": "{System.String:System.Boolean}", - "typeSimple": "{string:boolean}", - "isRequired": false - }, - { - "name": "GrantedPolicies", - "jsonName": null, - "type": "{System.String:System.Boolean}", - "typeSimple": "{string:boolean}", - "isRequired": false - } - ] - }, - "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationSettingConfigurationDto": { - "baseType": null, - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ - { - "name": "Values", - "jsonName": null, - "type": "{System.String:System.String}", - "typeSimple": "{string:string}", - "isRequired": false - } - ] - }, - "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.CurrentUserDto": { - "baseType": null, - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ - { - "name": "IsAuthenticated", - "jsonName": null, - "type": "System.Boolean", - "typeSimple": "boolean", - "isRequired": false - }, - { - "name": "Id", - "jsonName": null, - "type": "System.Guid?", - "typeSimple": "string?", - "isRequired": false - }, - { - "name": "TenantId", - "jsonName": null, - "type": "System.Guid?", - "typeSimple": "string?", - "isRequired": false - }, - { - "name": "ImpersonatorUserId", - "jsonName": null, - "type": "System.Guid?", - "typeSimple": "string?", - "isRequired": false - }, - { - "name": "ImpersonatorTenantId", - "jsonName": null, - "type": "System.Guid?", - "typeSimple": "string?", - "isRequired": false - }, - { - "name": "UserName", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "Name", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "SurName", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "Email", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "EmailVerified", - "jsonName": null, - "type": "System.Boolean", - "typeSimple": "boolean", - "isRequired": false - }, - { - "name": "PhoneNumber", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "PhoneNumberVerified", - "jsonName": null, - "type": "System.Boolean", - "typeSimple": "boolean", - "isRequired": false - }, - { - "name": "Roles", - "jsonName": null, - "type": "[System.String]", - "typeSimple": "[string]", - "isRequired": false - } - ] - }, - "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationFeatureConfigurationDto": { - "baseType": null, - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ - { - "name": "Values", - "jsonName": null, - "type": "{System.String:System.String}", - "typeSimple": "{string:string}", - "isRequired": false - } - ] - }, - "Volo.Abp.AspNetCore.Mvc.MultiTenancy.MultiTenancyInfoDto": { - "baseType": null, - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ - { - "name": "IsEnabled", - "jsonName": null, - "type": "System.Boolean", - "typeSimple": "boolean", - "isRequired": false - } - ] - }, - "Volo.Abp.AspNetCore.Mvc.MultiTenancy.CurrentTenantDto": { - "baseType": null, - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ - { - "name": "Id", - "jsonName": null, - "type": "System.Guid?", - "typeSimple": "string?", - "isRequired": false - }, - { - "name": "Name", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "IsAvailable", - "jsonName": null, - "type": "System.Boolean", - "typeSimple": "boolean", - "isRequired": false - } - ] - }, - "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.TimingDto": { - "baseType": null, - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ - { - "name": "TimeZone", - "jsonName": null, - "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.TimeZone", - "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.TimeZone", - "isRequired": false - } - ] - }, - "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.TimeZone": { - "baseType": null, - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ - { - "name": "Iana", - "jsonName": null, - "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.IanaTimeZone", - "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.IanaTimeZone", - "isRequired": false - }, - { - "name": "Windows", - "jsonName": null, - "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.WindowsTimeZone", - "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.WindowsTimeZone", - "isRequired": false - } - ] - }, - "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.IanaTimeZone": { - "baseType": null, - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ - { - "name": "TimeZoneName", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - } - ] - }, - "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.WindowsTimeZone": { - "baseType": null, - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ - { - "name": "TimeZoneId", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - } - ] - }, - "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ClockDto": { - "baseType": null, - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ - { - "name": "Kind", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - } - ] - }, - "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ObjectExtensionsDto": { - "baseType": null, - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ - { - "name": "Modules", - "jsonName": null, - "type": "{System.String:Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ModuleExtensionDto}", - "typeSimple": "{string:Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ModuleExtensionDto}", - "isRequired": false - }, - { - "name": "Enums", - "jsonName": null, - "type": "{System.String:Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionEnumDto}", - "typeSimple": "{string:Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionEnumDto}", - "isRequired": false - } - ] - }, - "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ModuleExtensionDto": { - "baseType": null, - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ - { - "name": "Entities", - "jsonName": null, - "type": "{System.String:Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.EntityExtensionDto}", - "typeSimple": "{string:Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.EntityExtensionDto}", - "isRequired": false - }, - { - "name": "Configuration", - "jsonName": null, - "type": "{System.String:System.Object}", - "typeSimple": "{string:object}", - "isRequired": false - } - ] - }, - "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.EntityExtensionDto": { - "baseType": null, - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ - { - "name": "Properties", - "jsonName": null, - "type": "{System.String:Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyDto}", - "typeSimple": "{string:Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyDto}", - "isRequired": false - }, - { - "name": "Configuration", - "jsonName": null, - "type": "{System.String:System.Object}", - "typeSimple": "{string:object}", - "isRequired": false - } - ] - }, - "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyDto": { - "baseType": null, - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ - { - "name": "Type", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "TypeSimple", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "DisplayName", - "jsonName": null, - "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.LocalizableStringDto", - "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.LocalizableStringDto", - "isRequired": false - }, - { - "name": "Api", - "jsonName": null, - "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyApiDto", - "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyApiDto", - "isRequired": false - }, - { - "name": "Ui", - "jsonName": null, - "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyUiDto", - "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyUiDto", - "isRequired": false - }, - { - "name": "Attributes", - "jsonName": null, - "type": "[Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyAttributeDto]", - "typeSimple": "[Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyAttributeDto]", - "isRequired": false - }, - { - "name": "Configuration", - "jsonName": null, - "type": "{System.String:System.Object}", - "typeSimple": "{string:object}", - "isRequired": false - }, - { - "name": "DefaultValue", - "jsonName": null, - "type": "System.Object", - "typeSimple": "object", - "isRequired": false - } - ] - }, - "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.LocalizableStringDto": { - "baseType": null, - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ - { - "name": "Name", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "Resource", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - } - ] - }, - "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyApiDto": { - "baseType": null, - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ - { - "name": "OnGet", - "jsonName": null, - "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyApiGetDto", - "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyApiGetDto", - "isRequired": false - }, - { - "name": "OnCreate", - "jsonName": null, - "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyApiCreateDto", - "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyApiCreateDto", - "isRequired": false - }, - { - "name": "OnUpdate", - "jsonName": null, - "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyApiUpdateDto", - "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyApiUpdateDto", - "isRequired": false - } - ] - }, - "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyApiGetDto": { - "baseType": null, - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ - { - "name": "IsAvailable", - "jsonName": null, - "type": "System.Boolean", - "typeSimple": "boolean", - "isRequired": false - } - ] - }, - "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyApiCreateDto": { - "baseType": null, - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ - { - "name": "IsAvailable", - "jsonName": null, - "type": "System.Boolean", - "typeSimple": "boolean", - "isRequired": false - } - ] - }, - "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyApiUpdateDto": { - "baseType": null, - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ - { - "name": "IsAvailable", - "jsonName": null, - "type": "System.Boolean", - "typeSimple": "boolean", - "isRequired": false - } - ] - }, - "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyUiDto": { - "baseType": null, - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ - { - "name": "OnTable", - "jsonName": null, - "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyUiTableDto", - "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyUiTableDto", - "isRequired": false - }, - { - "name": "OnCreateForm", - "jsonName": null, - "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyUiFormDto", - "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyUiFormDto", - "isRequired": false - }, - { - "name": "OnEditForm", - "jsonName": null, - "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyUiFormDto", - "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyUiFormDto", - "isRequired": false - }, - { - "name": "Lookup", - "jsonName": null, - "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyUiLookupDto", - "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyUiLookupDto", - "isRequired": false - } - ] - }, - "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyUiTableDto": { - "baseType": null, - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ - { - "name": "IsVisible", - "jsonName": null, - "type": "System.Boolean", - "typeSimple": "boolean", - "isRequired": false - } - ] - }, - "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyUiFormDto": { - "baseType": null, - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ - { - "name": "IsVisible", - "jsonName": null, - "type": "System.Boolean", - "typeSimple": "boolean", - "isRequired": false - } - ] - }, - "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyUiLookupDto": { - "baseType": null, - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ - { - "name": "Url", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "ResultListPropertyName", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "DisplayPropertyName", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "ValuePropertyName", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "FilterParamName", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - } - ] - }, - "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyAttributeDto": { - "baseType": null, - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ - { - "name": "TypeSimple", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "Config", - "jsonName": null, - "type": "{System.String:System.Object}", - "typeSimple": "{string:object}", - "isRequired": false - } - ] - }, - "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionEnumDto": { - "baseType": null, - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ - { - "name": "Fields", - "jsonName": null, - "type": "[Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionEnumFieldDto]", - "typeSimple": "[Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionEnumFieldDto]", - "isRequired": false - }, - { - "name": "LocalizationResource", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - } - ] - }, - "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionEnumFieldDto": { - "baseType": null, - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ - { - "name": "Name", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "Value", - "jsonName": null, - "type": "System.Object", - "typeSimple": "object", - "isRequired": false - } - ] - }, - "Volo.Abp.Http.Modeling.ApplicationApiDescriptionModelRequestDto": { - "baseType": null, - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ - { - "name": "IncludeTypes", - "jsonName": null, - "type": "System.Boolean", - "typeSimple": "boolean", - "isRequired": false - } - ] - }, - "Volo.Abp.Http.Modeling.ApplicationApiDescriptionModel": { - "baseType": null, - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ - { - "name": "Modules", - "jsonName": null, - "type": "{System.String:Volo.Abp.Http.Modeling.ModuleApiDescriptionModel}", - "typeSimple": "{string:Volo.Abp.Http.Modeling.ModuleApiDescriptionModel}", - "isRequired": false - }, - { - "name": "Types", - "jsonName": null, - "type": "{System.String:Volo.Abp.Http.Modeling.TypeApiDescriptionModel}", - "typeSimple": "{string:Volo.Abp.Http.Modeling.TypeApiDescriptionModel}", - "isRequired": false - } - ] - }, - "Volo.Abp.Http.Modeling.ModuleApiDescriptionModel": { - "baseType": null, - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ - { - "name": "RootPath", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "RemoteServiceName", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "Controllers", - "jsonName": null, - "type": "{System.String:Volo.Abp.Http.Modeling.ControllerApiDescriptionModel}", - "typeSimple": "{string:Volo.Abp.Http.Modeling.ControllerApiDescriptionModel}", - "isRequired": false - } - ] - }, - "Volo.Abp.Http.Modeling.ControllerApiDescriptionModel": { - "baseType": null, - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ - { - "name": "ControllerName", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "ControllerGroupName", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "Type", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "Interfaces", - "jsonName": null, - "type": "[Volo.Abp.Http.Modeling.ControllerInterfaceApiDescriptionModel]", - "typeSimple": "[Volo.Abp.Http.Modeling.ControllerInterfaceApiDescriptionModel]", - "isRequired": false - }, - { - "name": "Actions", - "jsonName": null, - "type": "{System.String:Volo.Abp.Http.Modeling.ActionApiDescriptionModel}", - "typeSimple": "{string:Volo.Abp.Http.Modeling.ActionApiDescriptionModel}", - "isRequired": false - } - ] - }, - "Volo.Abp.Http.Modeling.ControllerInterfaceApiDescriptionModel": { - "baseType": null, - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ - { - "name": "Type", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - } - ] - }, - "Volo.Abp.Http.Modeling.ActionApiDescriptionModel": { - "baseType": null, - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ - { - "name": "UniqueName", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "Name", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "HttpMethod", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "Url", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "SupportedVersions", - "jsonName": null, - "type": "[System.String]", - "typeSimple": "[string]", - "isRequired": false - }, - { - "name": "ParametersOnMethod", - "jsonName": null, - "type": "[Volo.Abp.Http.Modeling.MethodParameterApiDescriptionModel]", - "typeSimple": "[Volo.Abp.Http.Modeling.MethodParameterApiDescriptionModel]", - "isRequired": false - }, - { - "name": "Parameters", - "jsonName": null, - "type": "[Volo.Abp.Http.Modeling.ParameterApiDescriptionModel]", - "typeSimple": "[Volo.Abp.Http.Modeling.ParameterApiDescriptionModel]", - "isRequired": false - }, - { - "name": "ReturnValue", - "jsonName": null, - "type": "Volo.Abp.Http.Modeling.ReturnValueApiDescriptionModel", - "typeSimple": "Volo.Abp.Http.Modeling.ReturnValueApiDescriptionModel", - "isRequired": false - }, - { - "name": "AllowAnonymous", - "jsonName": null, - "type": "System.Boolean?", - "typeSimple": "boolean?", - "isRequired": false - }, - { - "name": "ImplementFrom", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - } - ] - }, - "Volo.Abp.Http.Modeling.MethodParameterApiDescriptionModel": { - "baseType": null, - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ - { - "name": "Name", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "TypeAsString", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "Type", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "TypeSimple", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "IsOptional", - "jsonName": null, - "type": "System.Boolean", - "typeSimple": "boolean", - "isRequired": false - }, - { - "name": "DefaultValue", - "jsonName": null, - "type": "System.Object", - "typeSimple": "object", - "isRequired": false - } - ] - }, - "Volo.Abp.Http.Modeling.ParameterApiDescriptionModel": { - "baseType": null, - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ - { - "name": "NameOnMethod", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "Name", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "JsonName", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "Type", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "TypeSimple", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "IsOptional", - "jsonName": null, - "type": "System.Boolean", - "typeSimple": "boolean", - "isRequired": false - }, - { - "name": "DefaultValue", - "jsonName": null, - "type": "System.Object", - "typeSimple": "object", - "isRequired": false - }, - { - "name": "ConstraintTypes", - "jsonName": null, - "type": "[System.String]", - "typeSimple": "[string]", - "isRequired": false - }, - { - "name": "BindingSourceId", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "DescriptorName", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - } - ] - }, - "Volo.Abp.Http.Modeling.ReturnValueApiDescriptionModel": { - "baseType": null, - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ - { - "name": "Type", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "TypeSimple", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - } - ] - }, - "Volo.Abp.Http.Modeling.TypeApiDescriptionModel": { - "baseType": null, - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ - { - "name": "BaseType", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "IsEnum", - "jsonName": null, - "type": "System.Boolean", - "typeSimple": "boolean", - "isRequired": false - }, - { - "name": "EnumNames", - "jsonName": null, - "type": "[System.String]", - "typeSimple": "[string]", - "isRequired": false - }, - { - "name": "EnumValues", - "jsonName": null, - "type": "[System.Object]", - "typeSimple": "[object]", - "isRequired": false - }, - { - "name": "GenericArguments", - "jsonName": null, - "type": "[System.String]", - "typeSimple": "[string]", - "isRequired": false - }, - { - "name": "Properties", - "jsonName": null, - "type": "[Volo.Abp.Http.Modeling.PropertyApiDescriptionModel]", - "typeSimple": "[Volo.Abp.Http.Modeling.PropertyApiDescriptionModel]", - "isRequired": false - } - ] - }, - "Volo.Abp.Http.Modeling.PropertyApiDescriptionModel": { - "baseType": null, - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ - { - "name": "Name", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "JsonName", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "Type", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "TypeSimple", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "IsRequired", - "jsonName": null, - "type": "System.Boolean", - "typeSimple": "boolean", - "isRequired": false - } - ] - }, - "Volo.Abp.Application.Dtos.PagedAndSortedResultRequestDto": { - "baseType": "Volo.Abp.Application.Dtos.PagedResultRequestDto", - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ - { - "name": "Sorting", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - } - ] - }, - "Volo.Abp.Application.Dtos.PagedResultRequestDto": { - "baseType": "Volo.Abp.Application.Dtos.LimitedResultRequestDto", - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ - { - "name": "SkipCount", - "jsonName": null, - "type": "System.Int32", - "typeSimple": "number", - "isRequired": false - } - ] - }, - "Volo.Abp.Application.Dtos.LimitedResultRequestDto": { - "baseType": null, - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ - { - "name": "DefaultMaxResultCount", - "jsonName": null, - "type": "System.Int32", - "typeSimple": "number", - "isRequired": false - }, - { - "name": "MaxMaxResultCount", - "jsonName": null, - "type": "System.Int32", - "typeSimple": "number", - "isRequired": false - }, - { - "name": "MaxResultCount", - "jsonName": null, - "type": "System.Int32", - "typeSimple": "number", - "isRequired": false - } - ] - }, - "Volo.Abp.Application.Dtos.PagedResultDto": { - "baseType": "Volo.Abp.Application.Dtos.ListResultDto", - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": [ - "T" - ], - "properties": [ - { - "name": "TotalCount", - "jsonName": null, - "type": "System.Int64", - "typeSimple": "number", - "isRequired": false - } - ] - }, - "Volo.Abp.Application.Dtos.ListResultDto": { - "baseType": null, - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": [ - "T" - ], - "properties": [ - { - "name": "Items", - "jsonName": null, - "type": "[T]", - "typeSimple": "[T]", - "isRequired": false - } - ] - }, - "EShopOnAbp.CatalogService.Products.ProductDto": { - "baseType": "Volo.Abp.Application.Dtos.AuditedEntityDto", - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ - { - "name": "Code", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "Name", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "ImageName", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "Price", - "jsonName": null, - "type": "System.Single", - "typeSimple": "number", - "isRequired": false - }, - { - "name": "StockCount", - "jsonName": null, - "type": "System.Int32", - "typeSimple": "number", - "isRequired": false - } - ] - }, - "Volo.Abp.Application.Dtos.AuditedEntityDto": { - "baseType": "Volo.Abp.Application.Dtos.CreationAuditedEntityDto", - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": [ - "TPrimaryKey" - ], - "properties": [ - { - "name": "LastModificationTime", - "jsonName": null, - "type": "System.DateTime?", - "typeSimple": "string?", - "isRequired": false - }, - { - "name": "LastModifierId", - "jsonName": null, - "type": "System.Guid?", - "typeSimple": "string?", - "isRequired": false - } - ] - }, - "Volo.Abp.Application.Dtos.CreationAuditedEntityDto": { - "baseType": "Volo.Abp.Application.Dtos.EntityDto", - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": [ - "TPrimaryKey" - ], - "properties": [ - { - "name": "CreationTime", - "jsonName": null, - "type": "System.DateTime", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "CreatorId", - "jsonName": null, - "type": "System.Guid?", - "typeSimple": "string?", - "isRequired": false - } - ] - }, - "Volo.Abp.Application.Dtos.EntityDto": { - "baseType": "Volo.Abp.Application.Dtos.EntityDto", - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": [ - "TKey" - ], - "properties": [ - { - "name": "Id", - "jsonName": null, - "type": "TKey", - "typeSimple": "TKey", - "isRequired": false - } - ] - }, - "Volo.Abp.Application.Dtos.EntityDto": { - "baseType": null, - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [] - }, - "EShopOnAbp.CatalogService.Products.CreateProductDto": { - "baseType": null, - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ - { - "name": "Code", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": true - }, - { - "name": "Name", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": true - }, - { - "name": "ImageName", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "Price", - "jsonName": null, - "type": "System.Single", - "typeSimple": "number", - "isRequired": false - }, - { - "name": "StockCount", - "jsonName": null, - "type": "System.Int32", - "typeSimple": "number", - "isRequired": false - } - ] - }, - "EShopOnAbp.CatalogService.Products.UpdateProductDto": { - "baseType": null, - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ - { - "name": "Name", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": true - }, - { - "name": "ImageName", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "Price", - "jsonName": null, - "type": "System.Single", - "typeSimple": "number", - "isRequired": false - }, - { - "name": "StockCount", - "jsonName": null, - "type": "System.Int32", - "typeSimple": "number", - "isRequired": false - } - ] - } - } -} \ No newline at end of file diff --git a/apps/angular/projects/catalog/src/proxy/index.ts b/apps/angular/projects/catalog/src/proxy/index.ts deleted file mode 100644 index b77fad86..00000000 --- a/apps/angular/projects/catalog/src/proxy/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -import * as Products from './products'; -export { Products }; diff --git a/apps/angular/projects/catalog/src/proxy/products/index.ts b/apps/angular/projects/catalog/src/proxy/products/index.ts deleted file mode 100644 index 2c3e05bf..00000000 --- a/apps/angular/projects/catalog/src/proxy/products/index.ts +++ /dev/null @@ -1,3 +0,0 @@ -export * from './models'; -export * from './product.service'; -export * from './public-product.service'; diff --git a/apps/angular/projects/catalog/src/proxy/products/models.ts b/apps/angular/projects/catalog/src/proxy/products/models.ts deleted file mode 100644 index 54cd9960..00000000 --- a/apps/angular/projects/catalog/src/proxy/products/models.ts +++ /dev/null @@ -1,24 +0,0 @@ -import type { AuditedEntityDto } from '@abp/ng.core'; - -export interface CreateProductDto { - code: string; - name: string; - imageName?: string; - price: number; - stockCount: number; -} - -export interface ProductDto extends AuditedEntityDto { - code?: string; - name?: string; - imageName?: string; - price: number; - stockCount: number; -} - -export interface UpdateProductDto { - name: string; - imageName?: string; - price: number; - stockCount: number; -} diff --git a/apps/angular/projects/catalog/src/proxy/products/product.service.ts b/apps/angular/projects/catalog/src/proxy/products/product.service.ts deleted file mode 100644 index 32777bd1..00000000 --- a/apps/angular/projects/catalog/src/proxy/products/product.service.ts +++ /dev/null @@ -1,58 +0,0 @@ -import type { CreateProductDto, ProductDto, UpdateProductDto } from './models'; -import { RestService } from '@abp/ng.core'; -import type { ListResultDto, PagedAndSortedResultRequestDto, PagedResultDto } from '@abp/ng.core'; -import { Injectable } from '@angular/core'; - -@Injectable({ - providedIn: 'root', -}) -export class ProductService { - apiName = 'Catalog'; - - create = (input: CreateProductDto) => - this.restService.request({ - method: 'POST', - url: '/api/catalog/product', - body: input, - }, - { apiName: this.apiName }); - - delete = (id: string) => - this.restService.request({ - method: 'DELETE', - url: `/api/catalog/product/${id}`, - }, - { apiName: this.apiName }); - - get = (id: string) => - this.restService.request({ - method: 'GET', - url: `/api/catalog/product/${id}`, - }, - { apiName: this.apiName }); - - getList = () => - this.restService.request>({ - method: 'GET', - url: '/api/catalog/product', - }, - { apiName: this.apiName }); - - getListPaged = (input: PagedAndSortedResultRequestDto) => - this.restService.request>({ - method: 'GET', - url: '/api/catalog/product/paged', - params: { sorting: input.sorting, skipCount: input.skipCount, maxResultCount: input.maxResultCount }, - }, - { apiName: this.apiName }); - - update = (id: string, input: UpdateProductDto) => - this.restService.request({ - method: 'PUT', - url: `/api/catalog/product/${id}`, - body: input, - }, - { apiName: this.apiName }); - - constructor(private restService: RestService) {} -} diff --git a/apps/angular/projects/catalog/src/proxy/products/public-product.service.ts b/apps/angular/projects/catalog/src/proxy/products/public-product.service.ts deleted file mode 100644 index 660330e5..00000000 --- a/apps/angular/projects/catalog/src/proxy/products/public-product.service.ts +++ /dev/null @@ -1,27 +0,0 @@ -import type { ProductDto } from './models'; -import { RestService } from '@abp/ng.core'; -import type { ListResultDto } from '@abp/ng.core'; -import { Injectable } from '@angular/core'; - -@Injectable({ - providedIn: 'root', -}) -export class PublicProductService { - apiName = 'Catalog'; - - get = (id: string) => - this.restService.request({ - method: 'GET', - url: `/api/catalog/public-product/${id}`, - }, - { apiName: this.apiName }); - - getList = () => - this.restService.request>({ - method: 'GET', - url: '/api/catalog/public-product', - }, - { apiName: this.apiName }); - - constructor(private restService: RestService) {} -} diff --git a/apps/angular/tsconfig.json b/apps/angular/tsconfig.json index e472f66f..5467b5b8 100644 --- a/apps/angular/tsconfig.json +++ b/apps/angular/tsconfig.json @@ -17,6 +17,9 @@ "@catalog/config": [ "projects/catalog/config/src/public-api.ts" ], + "@catalog/proxy/products": [ + "projects/catalog/src/lib/proxy/products/index.ts" + ], "@catalog/*": [ "projects/catalog/src/*", ], From 66c5d7802490fff3ecc976757ec108c2f2bdfbf3 Mon Sep 17 00:00:00 2001 From: bnymncoskuner Date: Fri, 10 Dec 2021 12:27:27 +0300 Subject: [PATCH 08/25] feat: use ngx-datatable in product page --- .../src/pages/product/product.component.html | 26 +++++++++++++++---- .../src/pages/product/product.component.ts | 23 ++++++++++++---- .../src/pages/product/product.module.ts | 17 +++++------- 3 files changed, 45 insertions(+), 21 deletions(-) diff --git a/apps/angular/projects/catalog/src/pages/product/product.component.html b/apps/angular/projects/catalog/src/pages/product/product.component.html index 7a7d2d7d..6ab694a3 100644 --- a/apps/angular/projects/catalog/src/pages/product/product.component.html +++ b/apps/angular/projects/catalog/src/pages/product/product.component.html @@ -1,5 +1,21 @@ -
    -
  • - {{ item | json }} -
  • -
+
+
+
+
+
{{ 'AbpCatalog::Products' | abpLocalization }}
+
+
+ +
+
+
+
+ + + + + + + +
+
diff --git a/apps/angular/projects/catalog/src/pages/product/product.component.ts b/apps/angular/projects/catalog/src/pages/product/product.component.ts index 669f8ded..ed8a7337 100644 --- a/apps/angular/projects/catalog/src/pages/product/product.component.ts +++ b/apps/angular/projects/catalog/src/pages/product/product.component.ts @@ -1,14 +1,27 @@ +import { ListService } from '@abp/ng.core'; import { Component, OnInit } from '@angular/core'; -import { ProductService } from '@catalog/proxy/products'; -import { map } from 'rxjs/operators'; +import { ProductDto, ProductService } from '@catalog/proxy/products'; + @Component({ selector: 'lib-product', templateUrl: './product.component.html', styleUrls: ['./product.component.css'], + providers: [ListService], }) export class ProductComponent implements OnInit { - list$ = this.productService.getList().pipe(map(res => res.items)); - constructor(public readonly productService: ProductService) {} + items: ProductDto[] = []; + count = 0; + constructor(public readonly productService: ProductService, public readonly list: ListService) { + // TODO: this is an example of paging + this.list.maxResultCount = 2; + } + + ngOnInit(): void { + const productStreamCreator = query => this.productService.getListPaged(query); - ngOnInit(): void {} + this.list.hookToQuery(productStreamCreator).subscribe(response => { + this.items = response.items; + this.count = response.totalCount; + }); + } } diff --git a/apps/angular/projects/catalog/src/pages/product/product.module.ts b/apps/angular/projects/catalog/src/pages/product/product.module.ts index 2fc892ab..af8743e5 100644 --- a/apps/angular/projects/catalog/src/pages/product/product.module.ts +++ b/apps/angular/projects/catalog/src/pages/product/product.module.ts @@ -1,17 +1,12 @@ -import { NgModule } from '@angular/core'; +import { CoreModule } from '@abp/ng.core'; +import { ThemeSharedModule } from '@abp/ng.theme.shared'; import { CommonModule } from '@angular/common'; - +import { NgModule } from '@angular/core'; import { ProductRoutingModule } from './product-routing.module'; import { ProductComponent } from './product.component'; - @NgModule({ - declarations: [ - ProductComponent - ], - imports: [ - CommonModule, - ProductRoutingModule - ] + declarations: [ProductComponent], + imports: [CommonModule, ProductRoutingModule, ThemeSharedModule, CoreModule], }) -export class ProductModule { } +export class ProductModule {} From 395d788da79a556948334be21fbd09403aaacdbe Mon Sep 17 00:00:00 2001 From: bnymncoskuner Date: Fri, 10 Dec 2021 12:37:17 +0300 Subject: [PATCH 09/25] feat: add action column in product --- .../src/pages/product/product.component.html | 22 +++++++++++++++++++ .../src/pages/product/product.component.ts | 6 +++++ .../src/pages/product/product.module.ts | 3 ++- 3 files changed, 30 insertions(+), 1 deletion(-) diff --git a/apps/angular/projects/catalog/src/pages/product/product.component.html b/apps/angular/projects/catalog/src/pages/product/product.component.html index 6ab694a3..f4e5e651 100644 --- a/apps/angular/projects/catalog/src/pages/product/product.component.html +++ b/apps/angular/projects/catalog/src/pages/product/product.component.html @@ -12,6 +12,28 @@
+ + +
+ +
+ + +
+
+
+
diff --git a/apps/angular/projects/catalog/src/pages/product/product.component.ts b/apps/angular/projects/catalog/src/pages/product/product.component.ts index ed8a7337..365d2cc7 100644 --- a/apps/angular/projects/catalog/src/pages/product/product.component.ts +++ b/apps/angular/projects/catalog/src/pages/product/product.component.ts @@ -24,4 +24,10 @@ export class ProductComponent implements OnInit { this.count = response.totalCount; }); } + + onEdit(row: ProductDto) { + // this.productService.edit(row); + } + + onDelete(row: ProductDto) {} } diff --git a/apps/angular/projects/catalog/src/pages/product/product.module.ts b/apps/angular/projects/catalog/src/pages/product/product.module.ts index af8743e5..cbbafa70 100644 --- a/apps/angular/projects/catalog/src/pages/product/product.module.ts +++ b/apps/angular/projects/catalog/src/pages/product/product.module.ts @@ -2,11 +2,12 @@ import { CoreModule } from '@abp/ng.core'; import { ThemeSharedModule } from '@abp/ng.theme.shared'; import { CommonModule } from '@angular/common'; import { NgModule } from '@angular/core'; +import { NgbDropdownModule } from '@ng-bootstrap/ng-bootstrap'; import { ProductRoutingModule } from './product-routing.module'; import { ProductComponent } from './product.component'; @NgModule({ declarations: [ProductComponent], - imports: [CommonModule, ProductRoutingModule, ThemeSharedModule, CoreModule], + imports: [CommonModule, ProductRoutingModule, ThemeSharedModule, CoreModule, NgbDropdownModule], }) export class ProductModule {} From d34a38312a6fdc105511276b9f1ecbbbd8fb77fd Mon Sep 17 00:00:00 2001 From: bnymncoskuner Date: Fri, 10 Dec 2021 13:41:02 +0300 Subject: [PATCH 10/25] fix: add catalog contracts in administration --- .../AdministrationServiceApplicationContractsModule.cs | 4 +++- ...opOnAbp.AdministrationService.Application.Contracts.csproj | 2 ++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/services/administration/src/EShopOnAbp.AdministrationService.Application.Contracts/AdministrationServiceApplicationContractsModule.cs b/services/administration/src/EShopOnAbp.AdministrationService.Application.Contracts/AdministrationServiceApplicationContractsModule.cs index 7b146ca4..1608651e 100644 --- a/services/administration/src/EShopOnAbp.AdministrationService.Application.Contracts/AdministrationServiceApplicationContractsModule.cs +++ b/services/administration/src/EShopOnAbp.AdministrationService.Application.Contracts/AdministrationServiceApplicationContractsModule.cs @@ -2,6 +2,7 @@ using Volo.Abp.Modularity; using Volo.Abp.PermissionManagement; using Volo.Abp.SettingManagement; +using EShopOnAbp.CatalogService; namespace EShopOnAbp.AdministrationService { @@ -9,7 +10,8 @@ namespace EShopOnAbp.AdministrationService typeof(AdministrationServiceDomainSharedModule), typeof(AbpPermissionManagementApplicationContractsModule), typeof(AbpFeatureManagementApplicationContractsModule), - typeof(AbpSettingManagementApplicationContractsModule) + typeof(AbpSettingManagementApplicationContractsModule), + typeof(CatalogServiceApplicationContractsModule) )] public class AdministrationServiceApplicationContractsModule : AbpModule { diff --git a/services/administration/src/EShopOnAbp.AdministrationService.Application.Contracts/EShopOnAbp.AdministrationService.Application.Contracts.csproj b/services/administration/src/EShopOnAbp.AdministrationService.Application.Contracts/EShopOnAbp.AdministrationService.Application.Contracts.csproj index ad7c19da..9a6e8024 100644 --- a/services/administration/src/EShopOnAbp.AdministrationService.Application.Contracts/EShopOnAbp.AdministrationService.Application.Contracts.csproj +++ b/services/administration/src/EShopOnAbp.AdministrationService.Application.Contracts/EShopOnAbp.AdministrationService.Application.Contracts.csproj @@ -7,12 +7,14 @@ + + From 0aec89e0aba8be5ac4a9f3c56a24172b4c4c1e77 Mon Sep 17 00:00:00 2001 From: bnymncoskuner Date: Fri, 10 Dec 2021 13:41:15 +0300 Subject: [PATCH 11/25] feat: open modals on edit, delete --- .../src/pages/product/product.component.html | 54 ++++++++++++++++++- .../src/pages/product/product.component.ts | 39 ++++++++++++-- 2 files changed, 88 insertions(+), 5 deletions(-) diff --git a/apps/angular/projects/catalog/src/pages/product/product.component.html b/apps/angular/projects/catalog/src/pages/product/product.component.html index f4e5e651..0cc424c2 100644 --- a/apps/angular/projects/catalog/src/pages/product/product.component.html +++ b/apps/angular/projects/catalog/src/pages/product/product.component.html @@ -5,7 +5,9 @@
{{ 'AbpCatalog::Products' | abpLocalization }}
- +
@@ -41,3 +43,53 @@ + + + +

{{ (selected?.id ? 'AbpCatalog::Edit' : 'AbpCatalog::NewProduct') | abpLocalization }}

+
+ + +
+ + +
+ + + + {{ 'AbpIdentity::Save' | abpLocalization }} + +
diff --git a/apps/angular/projects/catalog/src/pages/product/product.component.ts b/apps/angular/projects/catalog/src/pages/product/product.component.ts index 365d2cc7..a29d12cc 100644 --- a/apps/angular/projects/catalog/src/pages/product/product.component.ts +++ b/apps/angular/projects/catalog/src/pages/product/product.component.ts @@ -1,4 +1,5 @@ import { ListService } from '@abp/ng.core'; +import { Confirmation, ConfirmationService } from '@abp/ng.theme.shared'; import { Component, OnInit } from '@angular/core'; import { ProductDto, ProductService } from '@catalog/proxy/products'; @@ -11,7 +12,17 @@ import { ProductDto, ProductService } from '@catalog/proxy/products'; export class ProductComponent implements OnInit { items: ProductDto[] = []; count = 0; - constructor(public readonly productService: ProductService, public readonly list: ListService) { + + selected: ProductDto; + + isModalVisible: boolean; + + modalBusy = false; + constructor( + public readonly productService: ProductService, + public readonly list: ListService, + private confirmationService: ConfirmationService + ) { // TODO: this is an example of paging this.list.maxResultCount = 2; } @@ -25,9 +36,29 @@ export class ProductComponent implements OnInit { }); } - onEdit(row: ProductDto) { - // this.productService.edit(row); + onEdit(product: ProductDto) { + this.selected = product; + this.openModal(); + } + + onCreate() { + this.selected = {} as ProductDto; + this.openModal(); + } + + openModal() { + this.isModalVisible = true; } - onDelete(row: ProductDto) {} + onDelete(product: ProductDto) { + this.confirmationService + .warn('AbpCatalog::ProductDeletionConfirmationMessage', 'AbpCatalog::AreYouSure', { + messageLocalizationParams: [product.name], + }) + .subscribe((status: Confirmation.Status) => { + if (status === Confirmation.Status.confirm) { + this.productService.delete(product.id).subscribe(() => this.list.get()); + } + }); + } } From 4c576f3d05a4ee6baacb937f2e564fea6b8703ea Mon Sep 17 00:00:00 2001 From: bnymncoskuner Date: Fri, 10 Dec 2021 13:56:49 +0300 Subject: [PATCH 12/25] feat: bind product permissions --- .../catalog/config/src/enums/policy-names.ts | 8 ++++++-- .../config/src/providers/route.provider.ts | 7 +++---- .../src/pages/product/product.component.html | 20 +++++++++++++++---- .../src/pages/product/product.component.ts | 7 +++++++ 4 files changed, 32 insertions(+), 10 deletions(-) diff --git a/apps/angular/projects/catalog/config/src/enums/policy-names.ts b/apps/angular/projects/catalog/config/src/enums/policy-names.ts index 86928cfb..95678623 100644 --- a/apps/angular/projects/catalog/config/src/enums/policy-names.ts +++ b/apps/angular/projects/catalog/config/src/enums/policy-names.ts @@ -1,4 +1,8 @@ export const enum eCatalogPolicyNames { - Catalog = 'AbpCatalog.ProductManagement', - ProductManagement = 'AbpCatalog.ProductManagement', + Catalog = 'CatalogService.Products', + ProductManagement = 'CatalogService.Products', + + ProductManagementCreate = 'CatalogService.Products.Create', + ProductManagementUpdate = 'CatalogService.Products.Update', + ProductManagementDelete = 'CatalogService.Products.Delete', } diff --git a/apps/angular/projects/catalog/config/src/providers/route.provider.ts b/apps/angular/projects/catalog/config/src/providers/route.provider.ts index c62247ab..e61b77be 100644 --- a/apps/angular/projects/catalog/config/src/providers/route.provider.ts +++ b/apps/angular/projects/catalog/config/src/providers/route.provider.ts @@ -1,5 +1,6 @@ import { eLayoutType, RoutesService } from '@abp/ng.core'; import { APP_INITIALIZER } from '@angular/core'; +import { eCatalogPolicyNames } from '../enums/policy-names'; import { eCatalogRouteNames } from '../enums/route-names'; export const CATALOG_ROUTE_PROVIDERS = [ @@ -15,16 +16,14 @@ export function configureRoutes(routesService: RoutesService) { layout: eLayoutType.application, // TODO: find icon iconClass: 'fa fa-users', - // TODO: add this policy - // requiredPolicy: eCatalogPolicyNames.Catalog, + requiredPolicy: eCatalogPolicyNames.Catalog, }, { path: '/catalog/products', name: eCatalogRouteNames.ProductManagement, parentName: eCatalogRouteNames.Catalog, order: 1, - // TODO: add this policy - // requiredPolicy: eCatalogPolicyNames.ProductManagement, + requiredPolicy: eCatalogPolicyNames.ProductManagement, }, ]); }; diff --git a/apps/angular/projects/catalog/src/pages/product/product.component.html b/apps/angular/projects/catalog/src/pages/product/product.component.html index 0cc424c2..fd94344a 100644 --- a/apps/angular/projects/catalog/src/pages/product/product.component.html +++ b/apps/angular/projects/catalog/src/pages/product/product.component.html @@ -5,7 +5,7 @@
{{ 'AbpCatalog::Products' | abpLocalization }}
-
@@ -14,7 +14,11 @@
- +
- -
diff --git a/apps/angular/projects/catalog/src/pages/product/product.component.ts b/apps/angular/projects/catalog/src/pages/product/product.component.ts index a29d12cc..c06cabe2 100644 --- a/apps/angular/projects/catalog/src/pages/product/product.component.ts +++ b/apps/angular/projects/catalog/src/pages/product/product.component.ts @@ -1,6 +1,7 @@ import { ListService } from '@abp/ng.core'; import { Confirmation, ConfirmationService } from '@abp/ng.theme.shared'; import { Component, OnInit } from '@angular/core'; +import { eCatalogPolicyNames } from '@catalog/config'; import { ProductDto, ProductService } from '@catalog/proxy/products'; @Component({ @@ -10,6 +11,12 @@ import { ProductDto, ProductService } from '@catalog/proxy/products'; providers: [ListService], }) export class ProductComponent implements OnInit { + permissions = { + create: eCatalogPolicyNames.ProductManagementCreate, + update: eCatalogPolicyNames.ProductManagementUpdate, + delete: eCatalogPolicyNames.ProductManagementDelete, + }; + items: ProductDto[] = []; count = 0; From 9c89d6b00602a4d74b0f95a9f3f45cef3f535625 Mon Sep 17 00:00:00 2001 From: bnymncoskuner Date: Fri, 10 Dec 2021 14:20:00 +0300 Subject: [PATCH 13/25] feat: localize product for en and tr langs --- .../src/pages/product/product.component.html | 32 +++++++++++++------ .../Localization/CatalogService/en.json | 10 +++++- .../Localization/CatalogService/tr.json | 17 ++++++++-- 3 files changed, 47 insertions(+), 12 deletions(-) diff --git a/apps/angular/projects/catalog/src/pages/product/product.component.html b/apps/angular/projects/catalog/src/pages/product/product.component.html index fd94344a..bbabdb07 100644 --- a/apps/angular/projects/catalog/src/pages/product/product.component.html +++ b/apps/angular/projects/catalog/src/pages/product/product.component.html @@ -2,11 +2,11 @@
-
{{ 'AbpCatalog::Products' | abpLocalization }}
+
{{ 'CatalogService::Products' | abpLocalization }}
@@ -48,17 +48,31 @@
- - - - + + + +
-

{{ (selected?.id ? 'AbpCatalog::Edit' : 'AbpCatalog::NewProduct') | abpLocalization }}

+

+ {{ (selected?.id ? 'AbpUi::Edit' : 'CatalogService::NewProduct') | abpLocalization }} +

@@ -100,8 +114,8 @@ - {{ 'AbpIdentity::Save' | abpLocalization }} + {{ 'AbpUi::Save' | abpLocalization }}
diff --git a/services/catalog/src/EShopOnAbp.CatalogService.Domain.Shared/Localization/CatalogService/en.json b/services/catalog/src/EShopOnAbp.CatalogService.Domain.Shared/Localization/CatalogService/en.json index cf3e6687..fa1417b0 100644 --- a/services/catalog/src/EShopOnAbp.CatalogService.Domain.Shared/Localization/CatalogService/en.json +++ b/services/catalog/src/EShopOnAbp.CatalogService.Domain.Shared/Localization/CatalogService/en.json @@ -6,6 +6,14 @@ "Permission:Products": "Products", "Permission:Products.Edit": "Edit", "Permission:Products.Delete": "Delete", - "Permission:Products.Create": "Create" + "Permission:Products.Create": "Create", + "Menu:CatalogManagement": "Catalog Management", + "Menu:Products": "Products", + "NewProduct": "New Product", + "Products": "Products", + "DisplayName:Name": "Name", + "DisplayName:Code": "Code", + "DisplayName:Price": "Price", + "DisplayName:StockCount": "StockCount" } } diff --git a/services/catalog/src/EShopOnAbp.CatalogService.Domain.Shared/Localization/CatalogService/tr.json b/services/catalog/src/EShopOnAbp.CatalogService.Domain.Shared/Localization/CatalogService/tr.json index ecc0d305..f12fb72c 100644 --- a/services/catalog/src/EShopOnAbp.CatalogService.Domain.Shared/Localization/CatalogService/tr.json +++ b/services/catalog/src/EShopOnAbp.CatalogService.Domain.Shared/Localization/CatalogService/tr.json @@ -1,6 +1,19 @@ { "culture": "tr", "texts": { - "CatalogService:000001": "{productCode} kodlu bir ürün zaten var!" + "CatalogService:000001": "{productCode} kodlu bir ürün zaten var!", + "Permission:GroupName": "Katalog", + "Permission:Products": "Ürünler", + "Permission:Products.Edit": "Düzenleme", + "Permission:Products.Delete": "Silme", + "Permission:Products.Create": "Oluşturma", + "Menu:CatalogManagement": "Katalog Yönetimi", + "Menu:Products": "Ürünler", + "NewProduct": "Yeni Ürün", + "Products": "Ürünler", + "DisplayName:Name": "İsim", + "DisplayName:Code": "Kod", + "DisplayName:Price": "Fiyat", + "DisplayName:StockCount": "Stok Adedi" } -} \ No newline at end of file +} From 447dc967d85c57084561ddef40b19fdcda8d7b06 Mon Sep 17 00:00:00 2001 From: bnymncoskuner Date: Fri, 10 Dec 2021 14:20:23 +0300 Subject: [PATCH 14/25] fix: permissions in product --- .../catalog/config/src/enums/route-names.ts | 4 ++-- .../config/src/providers/route.provider.ts | 3 ++- .../src/pages/product/product-routing.module.ts | 17 ++++++++++++++--- 3 files changed, 18 insertions(+), 6 deletions(-) diff --git a/apps/angular/projects/catalog/config/src/enums/route-names.ts b/apps/angular/projects/catalog/config/src/enums/route-names.ts index f2f86f69..86a362c4 100644 --- a/apps/angular/projects/catalog/config/src/enums/route-names.ts +++ b/apps/angular/projects/catalog/config/src/enums/route-names.ts @@ -1,4 +1,4 @@ export const enum eCatalogRouteNames { - Catalog = 'AbpCatalog::Menu::Catalog', - ProductManagement = 'AbpCatalog::Menu:ProductManagement', + Catalog = 'CatalogService::Menu:CatalogManagement', + Products = 'CatalogService::Menu:Products', } diff --git a/apps/angular/projects/catalog/config/src/providers/route.provider.ts b/apps/angular/projects/catalog/config/src/providers/route.provider.ts index e61b77be..f55f6461 100644 --- a/apps/angular/projects/catalog/config/src/providers/route.provider.ts +++ b/apps/angular/projects/catalog/config/src/providers/route.provider.ts @@ -14,13 +14,14 @@ export function configureRoutes(routesService: RoutesService) { path: '/catalog', name: eCatalogRouteNames.Catalog, layout: eLayoutType.application, + parentName: null, // TODO: find icon iconClass: 'fa fa-users', requiredPolicy: eCatalogPolicyNames.Catalog, }, { path: '/catalog/products', - name: eCatalogRouteNames.ProductManagement, + name: eCatalogRouteNames.Products, parentName: eCatalogRouteNames.Catalog, order: 1, requiredPolicy: eCatalogPolicyNames.ProductManagement, diff --git a/apps/angular/projects/catalog/src/pages/product/product-routing.module.ts b/apps/angular/projects/catalog/src/pages/product/product-routing.module.ts index 68bbc749..54eb7690 100644 --- a/apps/angular/projects/catalog/src/pages/product/product-routing.module.ts +++ b/apps/angular/projects/catalog/src/pages/product/product-routing.module.ts @@ -1,11 +1,22 @@ +import { AuthGuard, PermissionGuard } from '@abp/ng.core'; import { NgModule } from '@angular/core'; import { RouterModule, Routes } from '@angular/router'; +import { eCatalogPolicyNames } from '@catalog/config'; import { ProductComponent } from './product.component'; -const routes: Routes = [{ path: '', component: ProductComponent }]; +const routes: Routes = [ + { + path: '', + component: ProductComponent, + canActivate: [AuthGuard, PermissionGuard], + data: { + requiredPolicy: eCatalogPolicyNames.ProductManagement, + }, + }, +]; @NgModule({ imports: [RouterModule.forChild(routes)], - exports: [RouterModule] + exports: [RouterModule], }) -export class ProductRoutingModule { } +export class ProductRoutingModule {} From e582280e56a8cc422fe917226903423f1be9fb40 Mon Sep 17 00:00:00 2001 From: bnymncoskuner Date: Fri, 10 Dec 2021 14:28:00 +0300 Subject: [PATCH 15/25] feat: add form in product component --- .../src/pages/product/product.component.html | 83 ++++++++++++------- .../src/pages/product/product.component.ts | 18 +++- 2 files changed, 72 insertions(+), 29 deletions(-) diff --git a/apps/angular/projects/catalog/src/pages/product/product.component.html b/apps/angular/projects/catalog/src/pages/product/product.component.html index bbabdb07..9ea1c5eb 100644 --- a/apps/angular/projects/catalog/src/pages/product/product.component.html +++ b/apps/angular/projects/catalog/src/pages/product/product.component.html @@ -80,36 +80,63 @@ >
- +
+ + +
+ + +
diff --git a/apps/angular/projects/catalog/src/pages/product/product.component.ts b/apps/angular/projects/catalog/src/pages/product/product.component.ts index c06cabe2..5095f405 100644 --- a/apps/angular/projects/catalog/src/pages/product/product.component.ts +++ b/apps/angular/projects/catalog/src/pages/product/product.component.ts @@ -1,6 +1,7 @@ import { ListService } from '@abp/ng.core'; import { Confirmation, ConfirmationService } from '@abp/ng.theme.shared'; import { Component, OnInit } from '@angular/core'; +import { FormBuilder, FormGroup } from '@angular/forms'; import { eCatalogPolicyNames } from '@catalog/config'; import { ProductDto, ProductService } from '@catalog/proxy/products'; @@ -25,10 +26,13 @@ export class ProductComponent implements OnInit { isModalVisible: boolean; modalBusy = false; + + form: FormGroup; constructor( public readonly productService: ProductService, public readonly list: ListService, - private confirmationService: ConfirmationService + private confirmationService: ConfirmationService, + private fb: FormBuilder ) { // TODO: this is an example of paging this.list.maxResultCount = 2; @@ -43,6 +47,15 @@ export class ProductComponent implements OnInit { }); } + buildForm() { + this.form = this.fb.group({ + name: [this.selected.name], + code: [this.selected.code], + price: [this.selected.price], + stockCount: [this.selected.stockCount], + }); + } + onEdit(product: ProductDto) { this.selected = product; this.openModal(); @@ -55,6 +68,7 @@ export class ProductComponent implements OnInit { openModal() { this.isModalVisible = true; + this.buildForm(); } onDelete(product: ProductDto) { @@ -68,4 +82,6 @@ export class ProductComponent implements OnInit { } }); } + + save() {} } From c5ac016b2f73b1dff529eb5b5b07e203159f01e3 Mon Sep 17 00:00:00 2001 From: bnymncoskuner Date: Fri, 10 Dec 2021 14:35:31 +0300 Subject: [PATCH 16/25] feat: implement edit and create forms in product --- .../src/pages/product/product.component.html | 4 ++- .../src/pages/product/product.component.ts | 29 +++++++++++++++---- 2 files changed, 26 insertions(+), 7 deletions(-) diff --git a/apps/angular/projects/catalog/src/pages/product/product.component.html b/apps/angular/projects/catalog/src/pages/product/product.component.html index 9ea1c5eb..c311ce0d 100644 --- a/apps/angular/projects/catalog/src/pages/product/product.component.html +++ b/apps/angular/projects/catalog/src/pages/product/product.component.html @@ -143,6 +143,8 @@ - {{ 'AbpUi::Save' | abpLocalization }} + {{ + 'AbpUi::Save' | abpLocalization + }} diff --git a/apps/angular/projects/catalog/src/pages/product/product.component.ts b/apps/angular/projects/catalog/src/pages/product/product.component.ts index 5095f405..f41b5289 100644 --- a/apps/angular/projects/catalog/src/pages/product/product.component.ts +++ b/apps/angular/projects/catalog/src/pages/product/product.component.ts @@ -4,7 +4,7 @@ import { Component, OnInit } from '@angular/core'; import { FormBuilder, FormGroup } from '@angular/forms'; import { eCatalogPolicyNames } from '@catalog/config'; import { ProductDto, ProductService } from '@catalog/proxy/products'; - +import { finalize } from 'rxjs/operators'; @Component({ selector: 'lib-product', templateUrl: './product.component.html', @@ -29,17 +29,17 @@ export class ProductComponent implements OnInit { form: FormGroup; constructor( - public readonly productService: ProductService, public readonly list: ListService, + private readonly service: ProductService, private confirmationService: ConfirmationService, private fb: FormBuilder ) { // TODO: this is an example of paging - this.list.maxResultCount = 2; + this.list.maxResultCount = 20; } ngOnInit(): void { - const productStreamCreator = query => this.productService.getListPaged(query); + const productStreamCreator = query => this.service.getListPaged(query); this.list.hookToQuery(productStreamCreator).subscribe(response => { this.items = response.items; @@ -78,10 +78,27 @@ export class ProductComponent implements OnInit { }) .subscribe((status: Confirmation.Status) => { if (status === Confirmation.Status.confirm) { - this.productService.delete(product.id).subscribe(() => this.list.get()); + this.service.delete(product.id).subscribe(() => this.list.get()); } }); } - save() {} + save() { + if (!this.form.valid || this.modalBusy) return; + this.modalBusy = true; + + const { id } = this.selected; + (id + ? this.service.update(id, { + ...this.selected, + ...this.form.value, + }) + : this.service.create({ ...this.form.value }) + ) + .pipe(finalize(() => (this.modalBusy = false))) + .subscribe(() => { + this.isModalVisible = false; + this.list.get(); + }); + } } From 5583f2462c05209653f154a7b63832895426c002 Mon Sep 17 00:00:00 2001 From: bnymncoskuner Date: Fri, 10 Dec 2021 14:39:32 +0300 Subject: [PATCH 17/25] feat: add translation on delete warning dialog --- .../projects/catalog/src/pages/product/product.component.ts | 2 +- .../Localization/CatalogService/en.json | 3 ++- .../Localization/CatalogService/tr.json | 3 ++- 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/apps/angular/projects/catalog/src/pages/product/product.component.ts b/apps/angular/projects/catalog/src/pages/product/product.component.ts index f41b5289..d36e043b 100644 --- a/apps/angular/projects/catalog/src/pages/product/product.component.ts +++ b/apps/angular/projects/catalog/src/pages/product/product.component.ts @@ -73,7 +73,7 @@ export class ProductComponent implements OnInit { onDelete(product: ProductDto) { this.confirmationService - .warn('AbpCatalog::ProductDeletionConfirmationMessage', 'AbpCatalog::AreYouSure', { + .warn('CatalogService::ProductDeletionConfirmationMessage', 'AbpUi::AreYouSure', { messageLocalizationParams: [product.name], }) .subscribe((status: Confirmation.Status) => { diff --git a/services/catalog/src/EShopOnAbp.CatalogService.Domain.Shared/Localization/CatalogService/en.json b/services/catalog/src/EShopOnAbp.CatalogService.Domain.Shared/Localization/CatalogService/en.json index fa1417b0..95aa40f1 100644 --- a/services/catalog/src/EShopOnAbp.CatalogService.Domain.Shared/Localization/CatalogService/en.json +++ b/services/catalog/src/EShopOnAbp.CatalogService.Domain.Shared/Localization/CatalogService/en.json @@ -14,6 +14,7 @@ "DisplayName:Name": "Name", "DisplayName:Code": "Code", "DisplayName:Price": "Price", - "DisplayName:StockCount": "StockCount" + "DisplayName:StockCount": "StockCount", + "ProductDeletionConfirmationMessage": "Are you sure you want to delete this {0} product?" } } diff --git a/services/catalog/src/EShopOnAbp.CatalogService.Domain.Shared/Localization/CatalogService/tr.json b/services/catalog/src/EShopOnAbp.CatalogService.Domain.Shared/Localization/CatalogService/tr.json index f12fb72c..dc61da7c 100644 --- a/services/catalog/src/EShopOnAbp.CatalogService.Domain.Shared/Localization/CatalogService/tr.json +++ b/services/catalog/src/EShopOnAbp.CatalogService.Domain.Shared/Localization/CatalogService/tr.json @@ -14,6 +14,7 @@ "DisplayName:Name": "İsim", "DisplayName:Code": "Kod", "DisplayName:Price": "Fiyat", - "DisplayName:StockCount": "Stok Adedi" + "DisplayName:StockCount": "Stok Adedi", + "ProductDeletionConfirmationMessage": "{0} ürününü silmek istediğinizden emin misiniz?" } } From d2214d1226e2a95de2435b9b1d8592fb7d5c1b16 Mon Sep 17 00:00:00 2001 From: bnymncoskuner Date: Fri, 10 Dec 2021 15:03:00 +0300 Subject: [PATCH 18/25] feat: add validation in the forms of the product page --- .../src/pages/product/product.component.html | 18 +++++++++--------- .../src/pages/product/product.component.ts | 10 +++++----- .../src/pages/product/product.module.ts | 10 +++++++++- 3 files changed, 23 insertions(+), 15 deletions(-) diff --git a/apps/angular/projects/catalog/src/pages/product/product.component.html b/apps/angular/projects/catalog/src/pages/product/product.component.html index c311ce0d..8a637087 100644 --- a/apps/angular/projects/catalog/src/pages/product/product.component.html +++ b/apps/angular/projects/catalog/src/pages/product/product.component.html @@ -13,7 +13,6 @@
-
diff --git a/apps/angular/projects/catalog/src/pages/product/product.component.ts b/apps/angular/projects/catalog/src/pages/product/product.component.ts index d36e043b..a7562336 100644 --- a/apps/angular/projects/catalog/src/pages/product/product.component.ts +++ b/apps/angular/projects/catalog/src/pages/product/product.component.ts @@ -1,7 +1,7 @@ import { ListService } from '@abp/ng.core'; import { Confirmation, ConfirmationService } from '@abp/ng.theme.shared'; import { Component, OnInit } from '@angular/core'; -import { FormBuilder, FormGroup } from '@angular/forms'; +import { FormBuilder, FormGroup, Validators } from '@angular/forms'; import { eCatalogPolicyNames } from '@catalog/config'; import { ProductDto, ProductService } from '@catalog/proxy/products'; import { finalize } from 'rxjs/operators'; @@ -49,10 +49,10 @@ export class ProductComponent implements OnInit { buildForm() { this.form = this.fb.group({ - name: [this.selected.name], - code: [this.selected.code], - price: [this.selected.price], - stockCount: [this.selected.stockCount], + name: [this.selected.name, { validators: [Validators.required] }], + code: [this.selected.code, { validators: [Validators.required] }], + price: [this.selected.price, { validators: [Validators.required] }], + stockCount: [this.selected.stockCount, { validators: [Validators.required] }], }); } diff --git a/apps/angular/projects/catalog/src/pages/product/product.module.ts b/apps/angular/projects/catalog/src/pages/product/product.module.ts index cbbafa70..ce40aa01 100644 --- a/apps/angular/projects/catalog/src/pages/product/product.module.ts +++ b/apps/angular/projects/catalog/src/pages/product/product.module.ts @@ -3,11 +3,19 @@ import { ThemeSharedModule } from '@abp/ng.theme.shared'; import { CommonModule } from '@angular/common'; import { NgModule } from '@angular/core'; import { NgbDropdownModule } from '@ng-bootstrap/ng-bootstrap'; +import { NgxValidateCoreModule } from '@ngx-validate/core'; import { ProductRoutingModule } from './product-routing.module'; import { ProductComponent } from './product.component'; @NgModule({ declarations: [ProductComponent], - imports: [CommonModule, ProductRoutingModule, ThemeSharedModule, CoreModule, NgbDropdownModule], + imports: [ + CommonModule, + ProductRoutingModule, + ThemeSharedModule, + CoreModule, + NgbDropdownModule, + NgxValidateCoreModule, + ], }) export class ProductModule {} From 7cfb29e45a24ee6deea251974936c10201916b2d Mon Sep 17 00:00:00 2001 From: bnymncoskuner Date: Fri, 10 Dec 2021 15:24:13 +0300 Subject: [PATCH 19/25] feat: make catalog package publishable --- .../projects/catalog/config/ng-package.json | 7 +++++++ apps/angular/projects/catalog/package.json | 9 ++++++--- .../src/pages/product/product-routing.module.ts | 2 +- .../src/pages/product/product.component.html | 17 +++++++++++++++++ .../src/pages/product/product.component.ts | 9 ++++++--- apps/angular/projects/catalog/src/public-api.ts | 4 ++++ apps/angular/src/app/app-routing.module.ts | 2 +- apps/angular/src/app/app.module.ts | 2 +- apps/angular/tsconfig.json | 11 +++++------ .../Localization/CatalogService/en.json | 1 + .../Localization/CatalogService/tr.json | 1 + 11 files changed, 50 insertions(+), 15 deletions(-) create mode 100644 apps/angular/projects/catalog/config/ng-package.json create mode 100644 apps/angular/projects/catalog/src/public-api.ts diff --git a/apps/angular/projects/catalog/config/ng-package.json b/apps/angular/projects/catalog/config/ng-package.json new file mode 100644 index 00000000..2f592534 --- /dev/null +++ b/apps/angular/projects/catalog/config/ng-package.json @@ -0,0 +1,7 @@ +{ + "$schema": "../../../node_modules/ng-packagr/ng-package.schema.json", + "dest": "../../dist/catalog/config", + "lib": { + "entryFile": "src/public-api.ts" + } +} diff --git a/apps/angular/projects/catalog/package.json b/apps/angular/projects/catalog/package.json index f6cdbadd..d006325f 100644 --- a/apps/angular/projects/catalog/package.json +++ b/apps/angular/projects/catalog/package.json @@ -1,11 +1,14 @@ { - "name": "catalog", + "name": "@eshoponabp/catalog", "version": "0.0.1", "peerDependencies": { "@angular/common": "^12.2.0", - "@angular/core": "^12.2.0" + "@angular/core": "^12.2.0", + "@abp/ng.theme.shared": "~5.0.0-rc.1", + "@abp/ng.core": "~5.0.0-rc.1", + "@ngx-validate/core": "~0.1.1" }, "dependencies": { "tslib": "^2.3.0" } -} \ No newline at end of file +} diff --git a/apps/angular/projects/catalog/src/pages/product/product-routing.module.ts b/apps/angular/projects/catalog/src/pages/product/product-routing.module.ts index 54eb7690..9c36cee6 100644 --- a/apps/angular/projects/catalog/src/pages/product/product-routing.module.ts +++ b/apps/angular/projects/catalog/src/pages/product/product-routing.module.ts @@ -1,7 +1,7 @@ import { AuthGuard, PermissionGuard } from '@abp/ng.core'; import { NgModule } from '@angular/core'; import { RouterModule, Routes } from '@angular/router'; -import { eCatalogPolicyNames } from '@catalog/config'; +import { eCatalogPolicyNames } from '@eshoponabp/catalog/config'; import { ProductComponent } from './product.component'; const routes: Routes = [ diff --git a/apps/angular/projects/catalog/src/pages/product/product.component.html b/apps/angular/projects/catalog/src/pages/product/product.component.html index 8a637087..898b4918 100644 --- a/apps/angular/projects/catalog/src/pages/product/product.component.html +++ b/apps/angular/projects/catalog/src/pages/product/product.component.html @@ -55,6 +55,10 @@ [name]="'CatalogService::DisplayName:Name' | abpLocalization" prop="name" >
+
+
+ + +
+