using UserManagement.Common.UnitOfWork; using UserManagement.Domain; using UserManagement.Helper; using UserManagement.MediatR.Commands; using UserManagement.Repository; using MediatR; using System.Threading; using System.Threading.Tasks; namespace UserManagement.MediatR.Handlers { public class DeletePageHelperCommandHandler : IRequestHandler> { private readonly IPageHelperRepository _pageHelperRepository; private readonly IUnitOfWork _uow; public DeletePageHelperCommandHandler( IPageHelperRepository pageHelperRepository, IUnitOfWork uow) { _pageHelperRepository = pageHelperRepository; _uow = uow; } public async Task> Handle(DeletePageHelperCommand request, CancellationToken cancellationToken) { var entityExist = await _pageHelperRepository.FindAsync(request.Id); if (entityExist == null) { return ServiceResponse.Return404(); } _pageHelperRepository.Delete(request.Id); if (await _uow.SaveAsync() <= 0) { return ServiceResponse.Return500(); } return ServiceResponse.ReturnSuccess(); } } }