public Pagination <Project> PageProjects(TestDataContext db, dynamic arg) { Console.WriteLine("called"); int page = (int)arg.page; int pagesize = (int)arg.pagesize; //Pagination int total = db.Projects.Count(); int pagecount = total + pagesize / pagesize; int skipTo = (page * pagesize) - pagesize; //Data var projects = db.Projects .Skip(skipTo) .Take(pagesize); return(new Pagination <Project> { Total = total, PageCount = pagecount, Items = projects }); }
public void TestServicesReconnectToSchemaContext() { var schema = SchemaBuilder.FromObject <TestDataContext>(); // Linking a type from a service back to the schema context schema.AddType <User>("User").AddAllFields(); schema.Type <User>().AddField("projects", (user) => WithService((TestDataContext db) => db.Projects.Where(p => p.Owner.Id == user.Id)), "Peoples projects"); schema.AddField("user", ctx => WithService((UserService users) => users.GetUser()), "Get current user"); var gql = new QueryRequest { Query = @"{ user { projects { id } } }" }; var context = new TestDataContext { Projects = new List <Project>(), People = new List <Person> { new Person { Projects = new List <Project>() } }, }; var serviceCollection = new ServiceCollection(); serviceCollection.AddSingleton(new UserService()); serviceCollection.AddSingleton(context); var res = schema.ExecuteQuery(gql, context, serviceCollection.BuildServiceProvider(), null); Assert.Null(res.Errors); }