コード例 #1
0
        public TYGraphqlQuery(IProductControllerHandler productControllerHandler,
                              IOrderControllerHandler orderControllerHandler)
        {
            Field <ProductType>(
                "getProductById",
                arguments: new QueryArguments(new QueryArgument <NonNullGraphType <StringGraphType> >
            {
                Name        = "id",
                Description = "Product id"
            }
                                              ),
                resolve: context => productControllerHandler.GetProductByIdAsync(context.GetArgument <Guid>("id")).Result
                );

            Field <OrderType>(
                "getOrderById",
                arguments: new QueryArguments(new QueryArgument <NonNullGraphType <StringGraphType> >
            {
                Name        = "id",
                Description = "Order id"
            }
                                              ),
                resolve: context => orderControllerHandler.GetOrderById(context.GetArgument <Guid>("id")).Result
                );


            Field <ListGraphType <ProductType> >(
                "getPaginatedProducts",
                resolve: context =>
            {
                var products = productControllerHandler.GetAll().Result;
                return(PaginatedList <Product> .CreateAsync(products, 1, 10));
            });
        }
コード例 #2
0
        public TYGraphqlMutation(IProductControllerHandler productControllerHandler, IVariantControllerHandler variantControllerHandler, IOrderControllerHandler orderController)
        {
            Field <ProductType>(
                "createProduct",
                arguments: new QueryArguments(
                    new QueryArgument <NonNullGraphType <ProductInputType> > {
                Name = "product"
            }
                    ),
                resolve: context =>
            {
                var product = context.GetArgument <ProductViewModel>("product");
                return(productControllerHandler.CreateProductAsync(product).Result);
            });

            Field <VariantType>(
                "createVariant",
                arguments: new QueryArguments(
                    new QueryArgument <NonNullGraphType <VariantInputType> > {
                Name = "variant"
            }
                    ),
                resolve: context =>
            {
                var variant = context.GetArgument <VariantViewModel>("variant");
                return(variantControllerHandler.CreateVariantAsync(variant).Result);
            });

            Field <OrderType>(
                "createOrder",
                arguments: new QueryArguments(
                    new QueryArgument <NonNullGraphType <OrderInputType> > {
                Name = "order"
            }
                    ),
                resolve: context =>
            {
                var order = context.GetArgument <OrderViewModel>("order");
                return(orderController.CreateOrderAsync(order).Result);
            });
        }