public MaterialInformationQuery(IMaterialInformationRepository repository) { FieldAsync <ListMaterialInformationQueryModelType>( "search", arguments: new QueryArguments( new QueryArgument <NonNullGraphType <PagedRequestType> > { Name = "pagination" }, new QueryArgument <NonNullGraphType <OrderedRequestType> > { Name = "ordering" }, new QueryArgument <MaterialInformationFilterRequestType> { Name = "filter", DefaultValue = new MaterialFilter() } ), resolve: async context => { var filtering = context.GetArgument <MaterialInformationFilter>("filter"); var pagination = context.GetArgument <PagedRequest>("pagination"); var ordering = context.GetArgument <OrderedRequest>("ordering"); var(count, info) = await repository.SearchAsync(filtering, pagination, ordering); return(new ListResult <MaterialInformation> { TotalCount = count, Items = info }); } ); }
public MaterialInformationMutation(IMaterialInformationRepository repository) { FieldAsync <MaterialInformationQueryType>( "addMaterialInfo", arguments: new QueryArguments(new QueryArgument <NonNullGraphType <MaterialInformationCreateViewModel> > { Name = "materialInfo" }), resolve: async context => { var material = context.GetArgument <MaterialInformation>("materialInfo"); return(await context.TryAsyncResolve(async _ => await repository.AddMaterialInfo(material))); } ); }