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)); }); }
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); }); }