protected IQueryable <Room> ProjectionToRooms(GetRooms query, IQueryable <TypeOfRoom> typeOfRooms, IProjection projector) { var localizedTypesOfRooms = Source.SelectMany(p => p.LocalizedTypesOfRooms) .Where(p => p.LanguageId == query.LanguageId); localizedTypesOfRooms = localizedTypesOfRooms.Include(p => p.TypeOfRoom) .Where(p => p.TypeOfRoom.AccommodationId == query.AccommodationId); return(projector.ProjectTo <Room>(localizedTypesOfRooms)); }
protected IQueryable <RoomPhoto> ProjectionToRoomPhotos(IQueryable <PhotoOfAccommodation> photosOfAccommodations, GetRoomPhotosByAccommodationId query, IProjection projector) { var photosOfRooms = Source.SelectMany(p => p.ToTypesOfRooms).Select(p => p.Id); photosOfAccommodations = photosOfAccommodations .Include(p => p.ToTypesOfRooms) .Where(p => p.AccommodationId == query.AccommodationId) .Where(p => photosOfRooms.Contains(p.Id)); return(projector.ProjectTo <RoomPhoto>(photosOfAccommodations)); }
protected IQueryable <Attribute> ProjectionToAttribute(IQueryable <AccommodationToAttribute> accommodationsToAttributes, GetAttributesByAccommodationIdAndLanguageId query, IProjection projector) { accommodationsToAttributes = accommodationsToAttributes .Include(p => p.Attribute) .Include(p => p.Attribute.LocalizedAttributes) .Where(p => p.AccommodationId == query.AccommodationId) .Where(p => p.LanguageId == query.LanguageId) .OrderBy(p => p.Attribute.Ban) ; return(projector.ProjectTo <Attribute>(accommodationsToAttributes)); }