@hso/d365-cli
Version:
Dynamics 365 Command Line Interface for TypeScript projects for Dataverse
40 lines (30 loc) • 1.76 kB
text/typescript
import {WebApi} from '../WebApi/WebApi';
import {Service} from '../WebApi/Service';
export class EntityService {
public static logicalName = 'EntityLogicalName';
public static async retrieveMultipleRecords(multipleSystemQueryOptions: MultipleSystemQueryOptions): Promise<EntityModel[]> {
return WebApi.retrieveMultipleRecords(EntityService.logicalName, multipleSystemQueryOptions);
}
public static async retrieveRecord(id: string, systemQueryOptions: SystemQueryOptions): Promise<EntityModel> {
return WebApi.retrieveRecord(EntityService.logicalName, id, systemQueryOptions);
}
public static async updateRecord(id: string, entityModel: EntityModel): Promise<EntityModel> {
return WebApi.updateRecord(EntityService.logicalName, id, entityModel);
}
public static async createRecord(entityModel: EntityModel): Promise<EntityModel> {
return WebApi.createRecord(EntityService.logicalName, entityModel);
}
public static async upsertRecord(entityModel: EntityModel): Promise<EntityModel> {
return WebApi.upsertRecord(EntityService.logicalName, entityModel);
}
public static async count(filters?: Filter[]): Promise<number> {
return WebApi.count(EntityService.logicalName, filters);
}
public static async retrieveClone(id: string): Promise<EntityModel> {
const origRecord = await Xrm.WebApi.retrieveRecord(EntityService.logicalName, id);
return Service.parseCreateModel(EntityService.logicalName, origRecord);
}
public static async validateRecord(entityModel: EntityModel): Promise<ModelValidation> {
return Service.validateRecord(EntityService.logicalName, entityModel);
}
}