public RoomJobQueries(IRoomJobRepository repository) { FieldAsync <ListRoomJobQueryModelType>( "search", arguments: new QueryArguments( new QueryArgument <NonNullGraphType <PagedRequestType> > { Name = "pagination" }, new QueryArgument <NonNullGraphType <OrderedRequestType> > { Name = "ordering" }, new QueryArgument <RoomJobFilteredRequestType> { Name = "filter", DefaultValue = new RoomJobFilter() } ), resolve: async context => { var filtering = context.GetArgument <RoomJobFilter>("filter"); var pagination = context.GetArgument <PagedRequest>("pagination"); var ordering = context.GetArgument <OrderedRequest>("ordering"); var(count, roomsJobs) = await repository.SearchAsync(filtering, pagination, ordering); return(new ListResult <RoomJob> { TotalCount = count, Items = roomsJobs }); } ); }
public RoomJobMutation(IRoomJobRepository repository) { FieldAsync <RoomJobQueryType>( "addJob", arguments: new QueryArguments(new QueryArgument <NonNullGraphType <RoomJobCreateViewModel> > { Name = "job" }), resolve: async context => { var job = context.GetArgument <RoomJob>("job"); return(await context.TryAsyncResolve(async _ => await repository.AddJob(job))); } ); }