コード例 #1
0
            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
                });
            }
コード例 #2
0
        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);
        }