Beispiel #1
0
        public override async Task <IEnumerable <AccommodationPhoto> > HandleAsync(GetPhotosByAccommodationId query,
                                                                                   CancellationToken cancellationToken)
        {
            var projection = ProjectToQueryableOfAccommodationPhoto(Source, query);

            return(await projection.ToArrayAsync(cancellationToken));
        }
        public void HandleAsync()
        {
            //Arrange
            var handler    = Handler();
            var dispatcher = new Mock <IProvider>();
            var query      = new GetPhotosByAccommodationId(dispatcher.Object);

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

            //Assert
            Assert.IsInstanceOf <Task <IEnumerable <AccommodationPhoto> > >(result);
        }
Beispiel #3
0
        private IQueryable <AccommodationPhoto> ProjectToQueryableOfAccommodationPhoto(
            IQueryable <PhotoOfAccommodation> source, GetPhotosByAccommodationId query)
        {
            var photosOfRooms = Source.SelectMany(p => p.ToTypesOfRooms).Select(p => p.Id);

            var photoOfAccommodations = source
                                        .Include(p => p.PathToPhoto)
                                        .Include(p => p.FileExtension)
                                        .Where(p => p.AccommodationId == query.AccommodationId)
                                        .Where(p => !photosOfRooms.Contains(p.Id))
                                        .OrderBy(p => p.IsDefault);

            return(ProjectTo <AccommodationPhoto>(photoOfAccommodations));
        }