refactor: implement new tenant-management proxies

pull/5391/head
mehmet-erim 5 years ago
parent bea353278d
commit a195f0e3d3

@ -1,9 +1,12 @@
import { TenantManagement } from '../models/tenant-management';
import { ABP } from '@abp/ng.core';
import {
GetTenantsInput,
TenantCreateDto,
TenantUpdateDto,
} from '../proxy/tenant-management/models';
export class GetTenants {
static readonly type = '[TenantManagement] Get Tenant';
constructor(public payload?: ABP.PageQueryParams) {}
constructor(public payload?: GetTenantsInput) {}
}
export class GetTenantById {
@ -13,12 +16,12 @@ export class GetTenantById {
export class CreateTenant {
static readonly type = '[TenantManagement] Create Tenant';
constructor(public payload: TenantManagement.AddRequest) {}
constructor(public payload: TenantCreateDto) {}
}
export class UpdateTenant {
static readonly type = '[TenantManagement] Update Tenant';
constructor(public payload: TenantManagement.UpdateRequest) {}
constructor(public payload: TenantUpdateDto & { id: string }) {}
}
export class DeleteTenant {

@ -1,4 +1,4 @@
import { ABP, ListService } from '@abp/ng.core';
import { ABP, ListService, PagedResultDto } from '@abp/ng.core';
import { eFeatureManagementComponents } from '@abp/ng.feature-management';
import { Confirmation, ConfirmationService, getPasswordValidators } from '@abp/ng.theme.shared';
import { Component, OnInit, TemplateRef, ViewChild } from '@angular/core';
@ -13,6 +13,7 @@ import {
GetTenants,
UpdateTenant,
} from '../../actions/tenant-management.actions';
import { GetTenantsInput, TenantDto } from '../../proxy/tenant-management/models';
import { TenantManagementService } from '../../services/tenant-management.service';
import { TenantManagementState } from '../../states/tenant-management.state';
@ -29,12 +30,12 @@ interface SelectedModalContent {
})
export class TenantsComponent implements OnInit {
@Select(TenantManagementState.get)
data$: Observable<ABP.BasicItem[]>;
data$: Observable<PagedResultDto<TenantDto>>;
@Select(TenantManagementState.getTenantsTotalCount)
totalCount$: Observable<number>;
selected: ABP.BasicItem;
selected: TenantDto;
tenantForm: FormGroup;
@ -99,7 +100,7 @@ export class TenantsComponent implements OnInit {
};
constructor(
public readonly list: ListService,
public readonly list: ListService<GetTenantsInput>,
private confirmationService: ConfirmationService,
private tenantService: TenantManagementService,
private fb: FormBuilder,
@ -165,7 +166,7 @@ export class TenantsComponent implements OnInit {
}
addTenant() {
this.selected = {} as ABP.BasicItem;
this.selected = {} as TenantDto;
this.createTenantForm();
this.openModal('AbpTenantManagement::NewTenant', this.tenantModalTemplate, 'saveTenant');
}

@ -1,29 +1,45 @@
import { ABP } from '@abp/ng.core';
import { ABP, PagedResultDto } from '@abp/ng.core';
import { TenantDto } from '../proxy/tenant-management/models';
export namespace TenantManagement {
export interface State {
result: Response;
selectedItem: Item;
result: PagedResultDto<TenantDto>;
selectedItem: TenantDto;
}
/**
* @deprecated To be deleted in v4.0
*/
export type Response = ABP.PagedResponse<Item>;
/**
* @deprecated To be deleted in v4.0
*/
export interface Item {
id: string;
name: string;
}
/**
* @deprecated To be deleted in v4.0
*/
export interface AddRequest {
adminEmailAddress: string;
adminPassword: string;
name: string;
}
/**
* @deprecated To be deleted in v4.0
*/
export interface UpdateRequest {
id: string;
name: string;
}
/**
* @deprecated To be deleted in v4.0
*/
export interface DefaultConnectionStringRequest {
id: string;
defaultConnectionString: string;

@ -6,6 +6,9 @@ import { TenantManagement } from '../models/tenant-management';
@Injectable({
providedIn: 'root',
})
/**
* @deprecated Use TenantService instead. To be deleted in v4.0.
*/
export class TenantManagementService {
apiName = 'AbpTenantManagement';

@ -1,4 +1,4 @@
import { ABP } from '@abp/ng.core';
import { ABP, PagedResultDto } from '@abp/ng.core';
import { Action, Selector, State, StateContext } from '@ngxs/store';
import { tap } from 'rxjs/operators';
import {
@ -9,8 +9,9 @@ import {
UpdateTenant,
} from '../actions/tenant-management.actions';
import { TenantManagement } from '../models/tenant-management';
import { TenantManagementService } from '../services/tenant-management.service';
import { Injectable } from '@angular/core';
import { TenantService } from '../proxy/tenant-management/tenant.service';
import { TenantDto } from '../proxy/tenant-management/models';
@State<TenantManagement.State>({
name: 'TenantManagementState',
@ -19,7 +20,7 @@ import { Injectable } from '@angular/core';
@Injectable()
export class TenantManagementState {
@Selector()
static get({ result }: TenantManagement.State): ABP.BasicItem[] {
static get({ result }: TenantManagement.State): TenantDto[] {
return result.items || [];
}
@ -28,11 +29,11 @@ export class TenantManagementState {
return result.totalCount;
}
constructor(private tenantManagementService: TenantManagementService) {}
constructor(private service: TenantService) {}
@Action(GetTenants)
get({ patchState }: StateContext<TenantManagement.State>, { payload }: GetTenants) {
return this.tenantManagementService.getTenant(payload).pipe(
return this.service.getList(payload).pipe(
tap(result =>
patchState({
result,
@ -43,7 +44,7 @@ export class TenantManagementState {
@Action(GetTenantById)
getById({ patchState }: StateContext<TenantManagement.State>, { payload }: GetTenantById) {
return this.tenantManagementService.getTenantById(payload).pipe(
return this.service.get(payload).pipe(
tap(selectedItem =>
patchState({
selectedItem,
@ -54,16 +55,16 @@ export class TenantManagementState {
@Action(DeleteTenant)
delete(_, { payload }: DeleteTenant) {
return this.tenantManagementService.deleteTenant(payload);
return this.service.delete(payload);
}
@Action(CreateTenant)
add(_, { payload }: CreateTenant) {
return this.tenantManagementService.createTenant(payload);
return this.service.create(payload);
}
@Action(UpdateTenant)
update({ getState }: StateContext<TenantManagement.State>, { payload }: UpdateTenant) {
return this.tenantManagementService.updateTenant({ ...getState().selectedItem, ...payload });
return this.service.update(payload.id, { ...getState().selectedItem, ...payload });
}
}

Loading…
Cancel
Save