public void HandleAsync_Return_Task_Of_IEnumerable_Of_AccommodationPhoto()
        {
            //Arrange
            var type         = typeof(Task <IEnumerable <AccommodationPhoto> >);
            var handler      = Handler();
            var providerMock = new Mock <IQueryDispatcher>();
            var query        = new PhotosOfAccommodationsByAccommodationIdsQuery(providerMock.Object);

            //Act
            var result = handler.HandleAsync(query);

            //Assert
            Assert.IsInstanceOf(type, result);
        }
        private IQueryable <AccommodationPhoto> ProjectToQueryableOfAccommodationPhoto(IQueryable <Photo> source, PhotosOfAccommodationsByAccommodationIdsQuery query)
        {
            var photoOfAccommodations = from p in source
                                        where query.AccommodationIds.Contains(p.RealEstateId)
                                        select p;

            if (query.OnlyDefaultPhotos)
            {
                photoOfAccommodations = photoOfAccommodations.Where(p => p.IsDefault);
            }

            return(ProjectTo <AccommodationPhoto>(photoOfAccommodations));
        }
        public override async Task <IEnumerable <AccommodationPhoto> > HandleAsync(PhotosOfAccommodationsByAccommodationIdsQuery query, CancellationToken cancellationToken)
        {
            var projection = ProjectToQueryableOfAccommodationPhoto(Source, query);

            return(await projection.ToArrayAsync(cancellationToken));
        }