コード例 #1
0
    public void ConfigureServices(IServiceCollection services)
    {
        GraphTypeTypeRegistry.Register <Employee, EmployeeGraph>();
        GraphTypeTypeRegistry.Register <EmployeeSummary, EmployeeSummaryGraph>();
        GraphTypeTypeRegistry.Register <Company, CompanyGraph>();

        services.AddScoped(provider => DataContextBuilder.BuildDataContext());

        EfGraphQLConventions.RegisterInContainer(services, DataContextBuilder.Model);

        foreach (var type in GetGraphQlTypes())
        {
            services.AddSingleton(type);
        }

        services.AddGraphQL(options => options.ExposeExceptions = true).AddWebSockets();
        services.AddSingleton <ContextFactory>();
        services.AddSingleton <IDocumentExecuter, EfDocumentExecuter>();
        services.AddSingleton <IDependencyResolver>(
            provider => new FuncDependencyResolver(provider.GetRequiredService));
        services.AddSingleton <ISchema, Schema>();
        var mvc = services.AddMvc();

        mvc.SetCompatibilityVersion(CompatibilityVersion.Latest);
    }
コード例 #2
0
        public static void AddQuotes(this IServiceCollection services, DataContextBuilder dataContextBuilder)
        {
            services.AddScoped<IQuoteStore, QuoteStore>();
            services.AddScoped<QuoteManager, QuoteManager>();

            dataContextBuilder.RegisterModel<Quote>();
        }
コード例 #3
0
        public static void AddPages(this IServiceCollection services, DataContextBuilder dataContextBuilder)
        {
            services.AddScoped<IPageStore, PageStore>();
            services.AddScoped<IPageManager, PageManager>();

            dataContextBuilder.RegisterModel<Page>();
            dataContextBuilder.RegisterModel<PlainTextPageContent>();
        }
コード例 #4
0
        public static void AddBlogs(this IServiceCollection services, DataContextBuilder dataContextBuilder)
        {
            services.AddScoped<IBlogStore, BlogStore>();
            services.AddScoped<IBlogPostStore, BlogPostStore>();
            services.AddScoped<BlogManager, BlogManager>();

            dataContextBuilder.RegisterModel<Blog>();
            dataContextBuilder.RegisterModel<BlogPost>();
        }
コード例 #5
0
        public static DataContextBuilder UseSqlite(this DataContextBuilder options, string connectionString)
        {
            var driver = new SqliteDriver()
            {
                ConnectionString = connectionString
            };

            options.DbDriver = driver;
            return(options);
        }
コード例 #6
0
ファイル: Startup.cs プロジェクト: smeehan82/Hermes
        // This method gets called by the runtime. Use this method to add services to the container.
        public void ConfigureServices(IServiceCollection services)
        {
            // Add framework services.
            var dataContextBuilder = new DataContextBuilder();

            //add supplimental content packages here
            services.AddBlogs(dataContextBuilder);
            services.AddQuotes(dataContextBuilder);
            services.AddPages(dataContextBuilder);

            services.AddInstance(dataContextBuilder);
            services.AddHermesDataContext(Configuration.GetSection("DataAccess"));

            services.AddMvc().AddJsonOptions(options =>
            {
                options.SerializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver();
                options.SerializerSettings.ReferenceLoopHandling = Newtonsoft.Json.ReferenceLoopHandling.Ignore;
            });
        }
コード例 #7
0
        public void CreateDataContext_Creates_Context_Using_Factory_With_Name_Matching_DefaultFactoryName()
        {
            // Arrange
            DataContextBuilder contextBuilder = new DataContextBuilder();

            var expectedSession = new Mock<DataContext>();
            var expectedFactory = new Mock<DataContextFactory>();
            expectedFactory.Setup(f => f.CreateDataContext()).Returns(expectedSession.Object);

            var otherFactory = new Mock<DataContextFactory>();
            otherFactory.Setup(f => f.CreateDataContext()).Returns(() => null);

            contextBuilder.ContextFactories.Add(TestFactory, () => otherFactory.Object);
            contextBuilder.ContextFactories.Add(ExpectedFactory, () => expectedFactory.Object);
            contextBuilder.DefaultFactoryName = ExpectedFactory;

            // Act
            DataContext actualContext = contextBuilder.CreateDataContext();

            // Assert
            Assert.AreSame(expectedSession.Object, actualContext, "Expected that the session returned would be constructed by the default session factory");
        }
コード例 #8
0
    public void ConfigureServices(IServiceCollection services)
    {
        services.AddScoped(provider => DataContextBuilder.BuildDataContext());

        using (var myDataContext = DataContextBuilder.BuildDataContext())
        {
            EfGraphQLConventions.RegisterInContainer(services, myDataContext);
        }

        foreach (var type in GetGraphQlTypes())
        {
            services.AddSingleton(type);
        }

        services.AddSingleton <IDocumentExecuter, DocumentExecuter>();
        services.AddSingleton <IDependencyResolver>(
            provider => new FuncDependencyResolver(provider.GetRequiredService));
        services.AddSingleton <ISchema, Schema>();
        var mvc = services.AddMvc();

        mvc.SetCompatibilityVersion(CompatibilityVersion.Latest);
    }
コード例 #9
0
        public void CreateDataContext_Guards_Against_Null_ContextFactory()
        {
            DataContextBuilder contextBuilder = new DataContextBuilder();
            contextBuilder.ContextFactories.Add(
                new Export<DataContextFactory, ComponentMetadata>(
                    new Dictionary<string, object> {
                        {"Name", TestFactory}
                    }, () => null));

            contextBuilder.DefaultFactoryName = TestFactory;
            ExceptionAssert.Guards(() => contextBuilder.CreateDataContext(),
                                   TargetResources.Error_DataContextFactoryWasNull,
                                   TestFactory);
        }
コード例 #10
0
        public void CreateDataContext_Guards_Against_No_Factory_Matching_DefaultFactoryName_Being_Registered()
        {
            // Arrange
            DataContextBuilder contextBuilder = new DataContextBuilder();
            contextBuilder.DefaultFactoryName = TestFactory;

            // Act and Assert
            ExceptionAssert.Guards(() => contextBuilder.CreateDataContext(),
                                   TargetResources.Error_DataContextFactoryNotFound,
                                   TestFactory,
                                   DataContractNames.DataContextFactoryName);
        }
コード例 #11
0
 public void ContextFactories_Requires_Non_Null_Value()
 {
     DataContextBuilder contextBuilder = new DataContextBuilder();
     AutoTester.SetNull(() => contextBuilder.ContextFactories);
 }
コード例 #12
0
 public void ContextFactories_Property_Is_ReadWrite()
 {
     DataContextBuilder contextBuilder = new DataContextBuilder();
     AutoTester.TestReadWriteProperty(() => contextBuilder.ContextFactories, new ComponentCollection<DataContextFactory>());
 }
コード例 #13
0
 public void DefaultFactoryName_Requires_Non_Null_Value()
 {
     DataContextBuilder contextBuilder = new DataContextBuilder();
     AutoTester.SetNull(() => contextBuilder.DefaultFactoryName);
 }
コード例 #14
0
 public MyDataContext BuildContext() => DataContextBuilder.BuildDataContext();
コード例 #15
0
 public void DefaultFactoryName_Property_Is_ReadWrite()
 {
     DataContextBuilder contextBuilder = new DataContextBuilder();
     AutoTester.TestReadWriteProperty(() => contextBuilder.DefaultFactoryName, "FooBar");
 }
コード例 #16
0
        public static void AddBlogs(this IServiceCollection services, DataContextBuilder dataContextBuilder)
        {
            services.AddScoped<TagStore, TagStore>();

            dataContextBuilder.RegisterModel<Tag>();
        }
コード例 #17
0
 protected override void OnConfigure(DataContextBuilder builder)
 {
     //builder.UseNpgsql("Host=192.168.2.204;Username=postgres;Password=postgres;Database=MinorLinq_t01");
     builder.UseSqlite("Data Source=sample.db");
 }