Handler.cs 987 B

12345678910111213141516171819202122232425262728293031
  1. using SharedKernel.Storage;
  2. using Application.Abstractions.Data;
  3. using MediatR;
  4. using Microsoft.EntityFrameworkCore;
  5. namespace Application.Features.Faq.Item.Update
  6. {
  7. public sealed class Handler(IAppDbContext db, IEditorImageService editorImage) : IRequestHandler<Command>
  8. {
  9. public async Task Handle(Command request, CancellationToken ct)
  10. {
  11. var item = await db.FaqItem.FirstOrDefaultAsync(c => c.ID == request.ID, ct);
  12. if (item is null)
  13. {
  14. throw new Exception("ÇØ´ç FAQ¸¦ ãÀ» ¼ö ¾ø½À´Ï´Ù.");
  15. }
  16. var path = new FileStoragePath(UploadTarget.Editor, UploadFolder.Faq, request.ID);
  17. item.Update(
  18. request.CategoryID,
  19. request.Question,
  20. await editorImage.UploadAsync(request.Answer, path, ct),
  21. request.Order,
  22. request.IsActive
  23. );
  24. await db.SaveChangesAsync(ct);
  25. }
  26. }
  27. }