public HotelMutation(HotelReviewRepository hotelReviewRepository)
        {
            FieldAsync <HotelReviewType>(
                "addReview",
                arguments: new QueryArguments(new QueryArgument <NonNullGraphType <HotelReviewInputType> > {
                Name = "Review"
            }),
                resolve: async context => {
                var review = context.GetArgument <HotelReview>("review");

                return(await context.TryAsyncResolve(async c => await hotelReviewRepository.AddAsync(review)));
            });
        }
예제 #2
0
        public FancyHotelType(HotelReviewRepository hotelReviewRepository, IDataLoaderContextAccessor dataLoaderContextAccessor)
        {
            Name = "FancyHotel";

            Field(entity => entity.Id);
            Field(entity => entity.Name);
            Field(entity => entity.Description);
            Field <HotelTypeEnum>("HotelType", "The type of hotel");
            //Field<ListGraphType<HotelReviewType>>("HotelReviews", resolve: context => hotelReviewRepository.GetForHotel(context.Source.Id));

            Field <ListGraphType <HotelReviewType> >(
                "HotelReviews",
                resolve: context =>
            {
                // TODO
                var user = context.UserContext as ClaimsPrincipal;

                var loader = dataLoaderContextAccessor.Context.GetOrAddCollectionBatchLoader <int, HotelReview>("GetReviewsByHotelId", hotelReviewRepository.GetForHotelsAsync);

                return(loader.LoadAsync(context.Source.Id));
            });

            Interface <HotelInterface>();
        }