using Diligent.WebAPI.Business.Services; using Diligent.WebAPI.Host.Exceptions; using Diligent.WebAPI.Host.Mediator.Request.Commands; using MediatR; namespace Diligent.WebAPI.Host.Mediator.Request.Handlers { public class AcceptCustomerRequestHandler : IRequestHandler { private readonly RequestService _requestService; private readonly RoomService _roomService; public AcceptCustomerRequestHandler(RequestService requestService,RoomService roomService) { _requestService = requestService; _roomService = roomService; } public async Task Handle(AcceptCustomerRequestCommand request, CancellationToken cancellationToken) { var result1 = await _roomService.AddCustomerToRoom(request.CustomerId, request.RoomId); if (!result1) throw new NotFoundException($"Room with id={request.RoomId} doesn't exist"); var result2 = await _requestService.RemoveRequestAsync(request.CustomerId, request.RoomId); if (!result2.IsSuccess) throw new BadHttpRequestException("customerId or roomId is invalid"); return result2.Id; } } }