コード例 #1
0
        public override async Task <IEnumerable <AccommodationPhoto> > HandleAsync(PhotosByAccommodationIdQuery query,
                                                                                   CancellationToken cancellationToken)
        {
            var projection = ProjectToQueryableOfAccommodationPhoto(Source, query);

            return(await projection.ToArrayAsync(cancellationToken));
        }
コード例 #2
0
        private IQueryable <AccommodationPhoto> ProjectToQueryableOfAccommodationPhoto(
            IQueryable <Photo> source, PhotosByAccommodationIdQuery query)
        {
            var photosOfRooms = Source.SelectMany(p => p.ToTypesOfRooms).Select(p => p.Id);

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

            return(ProjectTo <AccommodationPhoto>(photoOfAccommodations));
        }
コード例 #3
0
        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 PhotosByAccommodationIdQuery(providerMock.Object);

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

            //Assert
            Assert.IsInstanceOf(type, result);
        }