Handler.cs 707 B

123456789101112131415161718192021222324
  1. using Application.Abstractions.Data;
  2. using Application.Abstractions.Messaging;
  3. using Microsoft.EntityFrameworkCore;
  4. namespace Application.Features.Api.Crew.GenerateInviteCode;
  5. internal sealed class Handler(IAppDbContext db) : ICommandHandler<Command, Response>
  6. {
  7. public async Task<Response> Handle(Command request, CancellationToken ct)
  8. {
  9. var crew = await db.Crew
  10. .FirstOrDefaultAsync(c => c.ID == request.CrewID, ct);
  11. if (crew is null)
  12. {
  13. throw new KeyNotFoundException("크루를 찾을 수 없습니다.");
  14. }
  15. var code = crew.GenerateInviteCode();
  16. await db.SaveChangesAsync(ct);
  17. return new Response(code);
  18. }
  19. }