public PizzaOrderMutation(IPizzaDetailsService pizzaDetailsService, IOrderDetailsService orderDetailsService) { Name = nameof(PizzaOrderMutation); FieldAsync <OrderDetailsType>( name: "createOrder", arguments: new QueryArguments(new QueryArgument <NonNullGraphType <OrderDetailsInputType> > { Name = "orderDetails" }), resolve: async context => { var order = context.GetArgument <OrderDetailsModel>("orderDetails"); var orderDetails = new OrderDetails(order.AddressLine1, order.AddressLine2, order.MobileNo, order.Amount); orderDetails = await orderDetailsService.CreateAsync(orderDetails); var pizzaDetails = order.PizzaDetails.Select(x => new PizzaDetails(x.Name, x.Toppings, x.Price, x.Size, orderDetails.Id)); pizzaDetails = await pizzaDetailsService.CreateBulkAsync(pizzaDetails, orderDetails.Id); orderDetails.PizzaDetails = pizzaDetails.ToList(); return(orderDetails); }); FieldAsync <OrderDetailsType>( name: "updateStatus", arguments: new QueryArguments( new QueryArgument <NonNullGraphType <IntGraphType> > { Name = "id" }, new QueryArgument <NonNullGraphType <OrderStatusEnumType> > { Name = "status" }), resolve: async context => { int orderId = context.GetArgument <int>("id"); OrderStatus orderStatus = context.GetArgument <OrderStatus>("status"); return(await orderDetailsService.UpdateStatusAsync(orderId, orderStatus)); }); FieldAsync <OrderDetailsType>( name: "deletePizzaDetails", arguments: new QueryArguments(new QueryArgument <NonNullGraphType <IntGraphType> > { Name = "pizzaDetailsId" }), resolve: async context => { int pizzaDetailsId = context.GetArgument <int>("pizzaDetailsId"); int orderId = await pizzaDetailsService.DeletePizzaDetailsAsync(pizzaDetailsId); return(await orderDetailsService.GetOrderDetailsAsync(orderId)); }); }