using MediatR; using mws.backend.dotnet.application.Audit; using mws.backend.dotnet.application.Common; namespace mws.backend.dotnet.application.MasterData; public record DeleteMasterDataCommand(Guid Id) : IRequest, IAuditableRequest { public string Action => "MasterData.Delete"; public string EntityType => "MasterData"; public Guid? EntityId => Id; } public class DeleteMasterDataHandler(IUnitOfWork uow, IAuditContext auditContext) : IRequestHandler { public async Task Handle(DeleteMasterDataCommand command, CancellationToken ct) { var entry = await uow.MasterData.GetByIdAsync(command.Id, ct) ?? throw new NotFoundException("Master data entry not found"); uow.MasterData.Remove(entry); await uow.SaveChangesAsync(ct); auditContext.EntityName = entry.Label; } }