leds-spark-lib
Version:
Biblioteca de geração de código
45 lines (40 loc) • 1.33 kB
JavaScript
import path from "path";
import fs from "fs";
import { expandToStringWithNL } from "../../../../models/model.js";
export function generate(model, target_folder) {
fs.writeFileSync(path.join(target_folder, `BaseEntity.cs`), generateBaseEntity(model));
}
function generateBaseEntity(model) {
return expandToStringWithNL `
using System.Reflection;
namespace ${model.configuration?.name}.Domain.Common
{
public class BaseEntity
{
public Guid Id { get; set; }
public DateTimeOffset DateCreated { get; set; }
public DateTimeOffset? DateUpdated { get; set; }
public DateTimeOffset? DateDeleted { get; set; }
public void Create()
{
this.DateCreated = DateTime.Now;
}
public void Update(BaseEntity entity)
{
foreach (PropertyInfo property in entity.GetType().GetProperties())
{
if (property.CanWrite && property.Name != nameof(Id) && property.Name != nameof(DateCreated))
{
property.SetValue(this, property.GetValue(entity));
}
}
this.DateUpdated = DateTime.Now;
}
public void Delete()
{
this.DateDeleted = DateTime.Now;
}
}
}`;
}
//# sourceMappingURL=generate.js.map