コード例 #1
0
        /// <summary>
        /// This Operation is called, when the module shall initialize itself.
        /// </summary>
        /// <param name="typeRegistry">The type registry for service requests or registrations.</param>
        /// <inheritdoc/>
        public void Initialize(ITypeRegistry typeRegistry)
        {
            var modelBuilderFactory    = typeRegistry.GetObject <IModelBuilderFactory>();
            var dataTypeRegistry       = typeRegistry.GetObject <IDataTypeRegistry>();
            var modelItemNamingService = typeRegistry.GetObject <IModelItemNamingService>();
            var odataObjectFactory     = typeRegistry.GetObject <IODataObjectFactory>();

            var structuralPropertyBinder = new StructuralPropertyBinder();
            var navigationPropertyBinder = new NavigationPropertyBinder();

            var entityReader    = new EntityReader();
            var referenceParser = new ReferenceParser(entityReader);
            var uncontainedNavigationPropertyParser = new UncontainedNavigationPropertyParser(referenceParser);
            var dependencyResolver = new DependencyResolver(uncontainedNavigationPropertyParser);

            var entityCreator = new EntityCreator(
                structuralPropertyBinder,
                navigationPropertyBinder,
                uncontainedNavigationPropertyParser,
                dependencyResolver);

            var entityUpdater = new EntityUpdater(structuralPropertyBinder, navigationPropertyBinder, uncontainedNavigationPropertyParser);

            uncontainedNavigationPropertyParser.SetUncontainedEntitiesFactory(entityCreator.CreateInUncontainedNavigationProperty);

            typeRegistry.RegisterInstance <IBindableModelBuilderFactory>(new BindableModelBuilderFactory(modelBuilderFactory));
            typeRegistry.RegisterInstance <IEntityCreator>(entityCreator);
            typeRegistry.RegisterInstance <IEntityReader>(entityReader);
            typeRegistry.RegisterInstance <IEntityUpdater>(entityUpdater);
            typeRegistry.RegisterInstance <IFactonQueryService>(CreateQueryService(typeRegistry));
            typeRegistry.RegisterInstance <IStructuralPropertyFactory>(new StructuralPropertyFactory(dataTypeRegistry, modelItemNamingService));
            typeRegistry.RegisterInstance <IODataEntityDtoBuilderFactory>(new ODataEntityDtoBuilderFactory(odataObjectFactory));
        }
コード例 #2
0
        /// <summary>
        /// This Operation is called, when the module shall initialize itself.
        /// </summary>
        /// <param name="typeRegistry">The type registry for service requests or registrations.</param>
        /// <inheritdoc/>
        public void Initialize(ITypeRegistry typeRegistry)
        {
            var metadataService = typeRegistry.GetObject <IMetadataService>();

            var queryBuilderFactory = typeRegistry.GetObject <IQueryBuilderFactory>();
            var entityCreator       = typeRegistry.GetObject <IEntityCreator>();
            var entityReader        = typeRegistry.GetObject <IEntityReader>();
            var entityUpdater       = typeRegistry.GetObject <IEntityUpdater>();
            var queryService        = typeRegistry.GetObject <IFactonQueryService>();
            var dtoBuilderFactory   = typeRegistry.GetObject <IODataEntityDtoBuilderFactory>();

            var defaultOperationHandlerProvider = new DefaultOperationHandlerProvider(entityReader, entityCreator, entityUpdater, dtoBuilderFactory);
            var pluralizationService            =
                new EntityFrameworkPluralizationServiceWrapper(PluralizationService.CreateService(CultureInfo.GetCultureInfo("en-US")));
            var signatureSetInitializer = new SignatureEntitySetInitializer(metadataService, pluralizationService, queryService, queryBuilderFactory);

            typeRegistry.RegisterInstance <IDefaultOperationHandlerProvider>(defaultOperationHandlerProvider);
            typeRegistry.RegisterInstance <IPropertyService>(new PropertyService(metadataService));
            typeRegistry.RegisterInstance <ISignatureEntitySetInitializer>(signatureSetInitializer);
        }
コード例 #3
0
        /// <summary>
        /// This Operation is called, when the module shall initialize itself.
        /// </summary>
        /// <param name="typeRegistry">The type registry for service requests or registrations.</param>
        /// <inheritdoc/>
        public void Initialize(ITypeRegistry typeRegistry)
        {
            var operationContextFactory = typeRegistry.GetObject <IOperationContextFactory>();
            var modelBuilderFactory     = typeRegistry.GetObject <IBindableModelBuilderFactory>();
            var modelInitializer        = typeRegistry.GetObject <IFactonModelInitializer>();

            var repositoryFactory = new RepositoryFactory(modelInitializer, operationContextFactory, modelBuilderFactory);
            var mappingService    = new ODataMappingService(repositoryFactory);

            // provide mapping service
            typeRegistry.RegisterInstance <IODataMappingService>(mappingService);
        }
コード例 #4
0
        /// <summary>
        /// This Operation is called, when the module shall initialize itself.
        /// </summary>
        /// <param name="typeRegistry">The type registry for service requests or registrations.</param>
        /// <inheritdoc/>
        public void Initialize(ITypeRegistry typeRegistry)
        {
            // initialize mapping
            var mappingService = typeRegistry.GetObject <IODataMappingService>();

            mappingService.InitializeMapping();

            // create and start host
            var config = WebApiInitializer.Configure(mappingService.GetODataRepository(), new ConsoleLogger());
            var host   = new HttpHost(config);

            typeRegistry.RegisterInstance <IHttpHost>(host);

            host.Open("http://local.facton.local");
        }
コード例 #5
0
        /// <summary>
        /// This Operation is called, when the module shall initialize itself.
        /// </summary>
        /// <param name="typeRegistry">The type registry for service requests or registrations.</param>
        /// <inheritdoc/>
        public void Initialize(ITypeRegistry typeRegistry)
        {
            var dataTypeRegistry          = typeRegistry.GetObject <IDataTypeRegistry>();
            var mappingLogger             = typeRegistry.GetObject <IMappingLogger>();
            var structuralPropertyFactory = typeRegistry.GetObject <IStructuralPropertyFactory>();

            var defaultOperationHandlerProvider = typeRegistry.GetObject <IDefaultOperationHandlerProvider>();
            var configurationRegistry           = typeRegistry.GetObject <IModelConfigurationRegistry>();
            var entityTypeInitializerRegistry   = typeRegistry.GetObject <IEntityTypeInitializerRegistry>();
            var propertyService = typeRegistry.GetObject <IPropertyService>();

            var publicEntityTypeInitializer = new PublicEntityTypeInitializer(propertyService, structuralPropertyFactory, mappingLogger);

            var modelInitializer = new FactonModelInitializer(
                configurationRegistry,
                entityTypeInitializerRegistry,
                defaultOperationHandlerProvider,
                publicEntityTypeInitializer,
                dataTypeRegistry.GetAll().OfType <IComplexDataType>());

            typeRegistry.RegisterInstance <IFactonModelInitializer>(modelInitializer);
        }
コード例 #6
0
ファイル: CoreModule.cs プロジェクト: BennyJ1982/SAPI
        /// <summary>
        /// This Operation is called, when the module shall initialize itself.
        /// </summary>
        /// <param name="typeRegistry">The type registry for service requests or registrations.</param>
        /// <inheritdoc/>
        public void Initialize(ITypeRegistry typeRegistry)
        {
            var odataObjectFactory = new ODataObjectFactory();

            var pathService                      = new ODataPathService();
            var modelItemNamingService           = new ModelItemNamingService();
            var navigationPropertyBuilderFactory = new NavigationPropertyBuilderFactory(modelItemNamingService);

            var modelBuilderFactory     = new ModelBuilderFactory(pathService, navigationPropertyBuilderFactory);
            var queryBuilderFactory     = new QueryBuilderFactory();
            var operationContextFactory = new OperationContextFactory(pathService);
            var dataTypeRegistry        = new DataTypeRegistry(new DefaultDataTypeKeyLookupStrategy());

            typeRegistry.RegisterInstance <IModelBuilderFactory>(modelBuilderFactory);
            typeRegistry.RegisterInstance <IDataTypeRegistry>(dataTypeRegistry);
            typeRegistry.RegisterInstance <IODataObjectFactory>(odataObjectFactory);
            typeRegistry.RegisterInstance <IODataPathService>(pathService);
            typeRegistry.RegisterInstance <IOperationContextFactory>(operationContextFactory);
            typeRegistry.RegisterInstance <IModelItemNamingService>(modelItemNamingService);
            typeRegistry.RegisterInstance <IQueryBuilderFactory>(queryBuilderFactory);
        }
コード例 #7
0
ファイル: RegistriesModule.cs プロジェクト: BennyJ1982/SAPI
 /// <summary>
 /// This Operation is called, when the module shall initialize itself.
 /// </summary>
 /// <param name="typeRegistry">The type registry for service requests or registrations.</param>
 /// <inheritdoc/>
 public void Initialize(ITypeRegistry typeRegistry)
 {
     typeRegistry.RegisterInstance <IModelConfigurationRegistry>(new ModelConfigurationRegistry());
     typeRegistry.RegisterInstance <IEntityTypeInitializerRegistry>(new EntityTypeInitializerRegistry());
 }
コード例 #8
0
ファイル: LoggingModule.cs プロジェクト: BennyJ1982/SAPI
 /// <summary>
 /// This Operation is called, when the module shall initialize itself.
 /// </summary>
 /// <param name="typeRegistry">The type registry for service requests or registrations.</param>
 /// <inheritdoc/>
 public void Initialize(ITypeRegistry typeRegistry)
 {
     // provide mapping service
     typeRegistry.RegisterInstance <IMappingLogger>(new ConsoleLogger());
 }
コード例 #9
0
 /// <summary>
 /// This Operation is called, when the module shall initialize itself.
 /// </summary>
 /// <param name="typeRegistry">The type registry for service requests or registrations.</param>
 /// <inheritdoc/>
 public void Initialize(ITypeRegistry typeRegistry)
 {
     typeRegistry.RegisterInstance <IODataObjectFactory>(new WebApiODataObjectFactory());
 }