using MediatR; using mws.backend.dotnet.application.Audit; using mws.backend.dotnet.application.Common; namespace mws.backend.dotnet.application.Tasks; public record DeleteTaskCommand(Guid UserId, Guid TaskId) : IRequest, IAuditableRequest { public string Action => "Task.Delete"; public string EntityType => "Task"; public Guid? EntityId => TaskId; } public class DeleteTaskHandler(IUnitOfWork uow, IAuditContext auditContext) : IRequestHandler { public async Task Handle(DeleteTaskCommand command, CancellationToken ct) { var task = await TaskAccess.GetTaskForUserAsync(uow, command.UserId, command.TaskId, ct); uow.Tasks.Remove(task); await uow.SaveChangesAsync(ct); auditContext.EntityName = task.Title; } }