Files
silver-octo-spoon/wolverine/a-frame-architecture/FinancialApi/ApplyFeeHandler.cs
T
brianj bf16b7b807 Added all projects
We are almost working.
2026-07-13 17:29:43 +02:00

25 lines
778 B
C#

using FinancialApi.Application;
using FinancialApi.Infrastructure;
using Microsoft.EntityFrameworkCore;
namespace FinancialApi;
public static class ApplyFeeHandler
{
public static Task<Account?> LoadAsync(ApplyFeeCommand cmd, AccountDbContext db)
=> db.Set<Account>().AsNoTracking()
.FirstOrDefaultAsync(x => x.Id == cmd.AccountId);
public static (Account UpdatedAccount, FeeAppliedEvent Event) Handle(ApplyFeeCommand cmd, Account account)
{
var updatedAccount = account.ApplyFee(cmd.Amount);
var @event = new FeeAppliedEvent(account.Id, cmd.Amount);
return (updatedAccount, @event);
}
}
public record ApplyFeeCommand(int AccountId, decimal Amount);
public record FeeAppliedEvent(int AccountId, decimal Amount);