using MediatR; using System.Threading; using System.Threading.Tasks; using UserManagement.Common.UnitOfWork; using UserManagement.Domain; using UserManagement.Helper; using UserManagement.MediatR.CommandAndQuery; using UserManagement.Repository; namespace UserManagement.MediatR.Handlers { public class DeleteReminderCommandHandler : IRequestHandler> { private readonly IReminderRepository _reminderRepository; private readonly IUnitOfWork _uow; public DeleteReminderCommandHandler(IReminderRepository reminderRepository, IUnitOfWork uow) { _reminderRepository = reminderRepository; _uow = uow; } public async Task> Handle(DeleteReminderCommand request, CancellationToken cancellationToken) { var reminder = await _reminderRepository.FindAsync(request.Id); if (reminder == null) { return ServiceResponse.Return404(); } reminder.IsDeleted = true; _reminderRepository.Update(reminder); if (await _uow.SaveAsync() <= -1) { return ServiceResponse.Return500(); } return ServiceResponse.ReturnSuccess(); } } }