Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.

GetRoomsForWhichRequestExistHandler.cs 1.6KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. using AutoMapper;
  2. using Diligent.WebAPI.Business.Services;
  3. using Diligent.WebAPI.Data.Entities;
  4. using Diligent.WebAPI.Host.DTOs.Request;
  5. using Diligent.WebAPI.Host.Mediator.Request.Queries;
  6. using MediatR;
  7. namespace Diligent.WebAPI.Host.Mediator.Request.Handlers
  8. {
  9. public class GetRoomsForWhichRequestExistHandler : IRequestHandler<GetRoomsForWhichRequestExistQuery, List<RequestRoomReadDTO>>
  10. {
  11. private readonly RequestService _requestService;
  12. private readonly RoomService _roomService;
  13. private readonly IMapper _mapper;
  14. public GetRoomsForWhichRequestExistHandler(RequestService requestService,RoomService roomService,IMapper mapper)
  15. {
  16. _requestService = requestService;
  17. _roomService = roomService;
  18. _mapper = mapper;
  19. }
  20. public async Task<List<RequestRoomReadDTO>> Handle(GetRoomsForWhichRequestExistQuery request, CancellationToken cancellationToken)
  21. {
  22. var requests = await _requestService.GetRequestsAsync();
  23. var rooms = await _roomService.GetRoomsAsync();
  24. List<Room> temp = new();
  25. foreach (var req in requests)
  26. {
  27. foreach (var room in rooms)
  28. {
  29. if (req.RoomId == room.Id)
  30. {
  31. if (!temp.Contains(room))
  32. {
  33. temp.Add(room);
  34. }
  35. }
  36. }
  37. }
  38. return _mapper.Map<List<RequestRoomReadDTO>>(temp);
  39. }
  40. }
  41. }