using ChapterX.Domain.Repositories; using MediatR; using Microsoft.Extensions.Logging; namespace ChapterX.Application.Notification.Commands { public class UpdateHandler : IRequestHandler { private readonly INotificationRepository _notificationRepository; private readonly ILogger _logger; public UpdateHandler(INotificationRepository notificationRepository, ILogger logger) { _notificationRepository = notificationRepository; _logger = logger; } public async Task Handle(UpdateRequest request, CancellationToken cancellationToken) { var notification = await _notificationRepository.GetByIdAsync(request.Id, cancellationToken); if (notification is null) return new UpdateResponse(false); notification.Content = request.Content; notification.IsRead = request.IsRead; await _notificationRepository.UpdateAsync(notification, cancellationToken); return new UpdateResponse(true); } } }