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

GetRoomsForWhichRequestExistHandler.cs 1.6KB

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