.NET Plugin Events
Create Entity Extensions
Get Started
Lifecycle & Coding Details
Developing a Plugin
Guides & Tutorials
Blueprint Plugin Events
Node.js Plugin Events
- Create Server
- Create Server Docker Compose
- Create Server Docker Compose Dev
- Create Server Dot Env
- Create Server Auth
- Create Package Json
- Create Entity Service
- Create Entity Service Base
- Create Entity Controller
- Create Entity Controller Base
- Create Entity Resolver
- Create Entity Resolver Base
- Create Message Broker Service
- Create Message Broker Service Base
- Create Message Broker NestJS Module
- Create Message Broker Client Options Factory
- Create Message Broker Topics Enum
- Create Prisma Schema
.NET Plugin Events
- Create Server
- Create Server Appsettings
- Create Server Auth
- Create Program File
- Create Server Csproj
- Create Server Docker Compose
- Create Server Git Ignore
- Create Entity Model
- Create Resource Db Context File
- Create Message Broker
- Create Message Broker Client Options Factory
- Create Message Broker Service
- Create Entity Controller
- Create Entity Controller Base
- Create DTOs
- Create Entity Extensions
- Create Entity Interface
- Create Entity Service
- Create Entity Service Base
- Create Seed Development Data File
- Load Static Files
.NET Plugin Events
Create Entity Extensions
Creates extension methods for entities in the .NET application.
afterCreateEntityExtensions(
context: dotnetTypes.DsgContext,
eventParams: dotnet.CreateEntityExtensionsParams,
files: FileMap<Class>
): Promise<FileMap<Class>> {
const { entity, resourceName, apisDir } = eventParams;
const extensionsPath = `${apisDir}/${entity.name}/${pascalCase(entity.name)}Extensions.cs`;
const extensionsFile = files.get(extensionsPath);
if (extensionsFile) {
// Add a custom extension method
extensionsFile.code.addMethod(
CsharpSupport.method({
name: "ToAuditString",
isStatic: true,
returnType: CsharpSupport.Types.string(),
parameters: [
CsharpSupport.parameter({
name: "this",
type: CsharpSupport.Types.reference(entity.name),
isThis: true,
}),
],
body: `
return "${entity.Id}|${entity.CreatedAt}|${entity.UpdatedAt}";
`,
})
);
// Add a custom mapper extension
extensionsFile.code.addMethod(
CsharpSupport.method({
name: "ToDto",
isStatic: true,
returnType: CsharpSupport.Types.reference(`${entity.name}Dto`),
parameters: [
CsharpSupport.parameter({
name: "this",
type: CsharpSupport.Types.reference(entity.name),
isThis: true,
}),
],
body: `
return new ${entity.name}Dto
{
Id = entity.Id,
// Map other properties here
AuditString = entity.ToAuditString()
};
`,
})
);
}
return files;
}
Event Name
CreateEntityExtensions
Event Parameters
The entity object for which extension methods are being created.
The name of the resource (typically the entity name).
The directory where the API related files are being generated.
afterCreateEntityExtensions(
context: dotnetTypes.DsgContext,
eventParams: dotnet.CreateEntityExtensionsParams,
files: FileMap<Class>
): Promise<FileMap<Class>> {
const { entity, resourceName, apisDir } = eventParams;
const extensionsPath = `${apisDir}/${entity.name}/${pascalCase(entity.name)}Extensions.cs`;
const extensionsFile = files.get(extensionsPath);
if (extensionsFile) {
// Add a custom extension method
extensionsFile.code.addMethod(
CsharpSupport.method({
name: "ToAuditString",
isStatic: true,
returnType: CsharpSupport.Types.string(),
parameters: [
CsharpSupport.parameter({
name: "this",
type: CsharpSupport.Types.reference(entity.name),
isThis: true,
}),
],
body: `
return "${entity.Id}|${entity.CreatedAt}|${entity.UpdatedAt}";
`,
})
);
// Add a custom mapper extension
extensionsFile.code.addMethod(
CsharpSupport.method({
name: "ToDto",
isStatic: true,
returnType: CsharpSupport.Types.reference(`${entity.name}Dto`),
parameters: [
CsharpSupport.parameter({
name: "this",
type: CsharpSupport.Types.reference(entity.name),
isThis: true,
}),
],
body: `
return new ${entity.name}Dto
{
Id = entity.Id,
// Map other properties here
AuditString = entity.ToAuditString()
};
`,
})
);
}
return files;
}
Was this page helpful?
afterCreateEntityExtensions(
context: dotnetTypes.DsgContext,
eventParams: dotnet.CreateEntityExtensionsParams,
files: FileMap<Class>
): Promise<FileMap<Class>> {
const { entity, resourceName, apisDir } = eventParams;
const extensionsPath = `${apisDir}/${entity.name}/${pascalCase(entity.name)}Extensions.cs`;
const extensionsFile = files.get(extensionsPath);
if (extensionsFile) {
// Add a custom extension method
extensionsFile.code.addMethod(
CsharpSupport.method({
name: "ToAuditString",
isStatic: true,
returnType: CsharpSupport.Types.string(),
parameters: [
CsharpSupport.parameter({
name: "this",
type: CsharpSupport.Types.reference(entity.name),
isThis: true,
}),
],
body: `
return "${entity.Id}|${entity.CreatedAt}|${entity.UpdatedAt}";
`,
})
);
// Add a custom mapper extension
extensionsFile.code.addMethod(
CsharpSupport.method({
name: "ToDto",
isStatic: true,
returnType: CsharpSupport.Types.reference(`${entity.name}Dto`),
parameters: [
CsharpSupport.parameter({
name: "this",
type: CsharpSupport.Types.reference(entity.name),
isThis: true,
}),
],
body: `
return new ${entity.name}Dto
{
Id = entity.Id,
// Map other properties here
AuditString = entity.ToAuditString()
};
`,
})
);
}
return files;
}