afterCreateEntityController(
context: dotnetTypes.DsgContext,
eventParams: dotnet.CreateEntityControllerParams,
files: FileMap<Class>
): Promise<FileMap<Class>> {
const { entity, resourceName, apisDir } = eventParams;
const controllerPath = `${apisDir}/${entity.name}/${pascalCase(entity.name)}Controller.cs`;
const controllerFile = files.get(controllerPath);
if (controllerFile) {
// Add a custom action to the controller
controllerFile.code.addMethod(
CsharpSupport.method({
name: "ExportToCsv",
access: "public",
isAsync: true,
returnType: CsharpSupport.Types.task(CsharpSupport.Types.reference("IActionResult")),
decorators: [
CsharpSupport.decorator({
name: "HttpGet",
arguments: ["export-csv"],
}),
],
body: `
var allItems = await _service.List();
var csv = ConvertToCsv(allItems);
return File(Encoding.UTF8.GetBytes(csv), "text/csv", "${entity.name}Export.csv");
`,
})
);
// Add necessary imports
controllerFile.code.addImport("System.Text");
controllerFile.code.addImport("Microsoft.AspNetCore.Mvc");
}
return files;
}
Creates a controller for a specific entity in the .NET application.
afterCreateEntityController(
context: dotnetTypes.DsgContext,
eventParams: dotnet.CreateEntityControllerParams,
files: FileMap<Class>
): Promise<FileMap<Class>> {
const { entity, resourceName, apisDir } = eventParams;
const controllerPath = `${apisDir}/${entity.name}/${pascalCase(entity.name)}Controller.cs`;
const controllerFile = files.get(controllerPath);
if (controllerFile) {
// Add a custom action to the controller
controllerFile.code.addMethod(
CsharpSupport.method({
name: "ExportToCsv",
access: "public",
isAsync: true,
returnType: CsharpSupport.Types.task(CsharpSupport.Types.reference("IActionResult")),
decorators: [
CsharpSupport.decorator({
name: "HttpGet",
arguments: ["export-csv"],
}),
],
body: `
var allItems = await _service.List();
var csv = ConvertToCsv(allItems);
return File(Encoding.UTF8.GetBytes(csv), "text/csv", "${entity.name}Export.csv");
`,
})
);
// Add necessary imports
controllerFile.code.addImport("System.Text");
controllerFile.code.addImport("Microsoft.AspNetCore.Mvc");
}
return files;
}
CreateEntityController
afterCreateEntityController(
context: dotnetTypes.DsgContext,
eventParams: dotnet.CreateEntityControllerParams,
files: FileMap<Class>
): Promise<FileMap<Class>> {
const { entity, resourceName, apisDir } = eventParams;
const controllerPath = `${apisDir}/${entity.name}/${pascalCase(entity.name)}Controller.cs`;
const controllerFile = files.get(controllerPath);
if (controllerFile) {
// Add a custom action to the controller
controllerFile.code.addMethod(
CsharpSupport.method({
name: "ExportToCsv",
access: "public",
isAsync: true,
returnType: CsharpSupport.Types.task(CsharpSupport.Types.reference("IActionResult")),
decorators: [
CsharpSupport.decorator({
name: "HttpGet",
arguments: ["export-csv"],
}),
],
body: `
var allItems = await _service.List();
var csv = ConvertToCsv(allItems);
return File(Encoding.UTF8.GetBytes(csv), "text/csv", "${entity.name}Export.csv");
`,
})
);
// Add necessary imports
controllerFile.code.addImport("System.Text");
controllerFile.code.addImport("Microsoft.AspNetCore.Mvc");
}
return files;
}
Was this page helpful?