Пример #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 oDataObjectFactory = typeRegistry.GetObject <IODataObjectFactory>();
            var registry           = typeRegistry.GetObject <IDataTypeRegistry>();

            RegisterDataTypes(registry, oDataObjectFactory, metadataService);
        }
Пример #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 signatureSetInitializer       = typeRegistry.GetObject <ISignatureEntitySetInitializer>();
            var configurationRegistry         = typeRegistry.GetObject <IModelConfigurationRegistry>();
            var entityTypeInitializerRegistry = typeRegistry.GetObject <IEntityTypeInitializerRegistry>();

            var globalSignatureTypeInitializer = new GlobalSignatureTypeInitializer(signatureSetInitializer);

            entityTypeInitializerRegistry.RegisterEntityTypeInitializer(globalSignatureTypeInitializer);
            configurationRegistry.RegisterSignatureTypeConfiguration(new SignatureTypeConfiguration("Global", new[] { "globalEntity" }));
        }
Пример #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)
        {
            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);
        }
Пример #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 valueRuleMetadataService = typeRegistry.GetObject <IValueRuleMetadataService>();
            var valueRuleService         = typeRegistry.GetObject <IValueRuleService>();
            var propertyService          = typeRegistry.GetObject <IPropertyService>();

            var coreTypeInitializerRegistry = typeRegistry.GetObject <IEntityTypeInitializerRegistry>();

            var valueRuleContainerTypeInitializer = new ValueRuleContainerTypeInitializer(
                propertyService,
                valueRuleService,
                valueRuleMetadataService);

            coreTypeInitializerRegistry.RegisterEntityTypeInitializer(valueRuleContainerTypeInitializer);
        }
        /// <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 propertyService               = typeRegistry.GetObject <IPropertyService>();
            var signatureSetInitializer       = typeRegistry.GetObject <ISignatureEntitySetInitializer>();
            var configurationRegistry         = typeRegistry.GetObject <IModelConfigurationRegistry>();
            var entityTypeInitializerRegistry = typeRegistry.GetObject <IEntityTypeInitializerRegistry>();

            var dataTreeSignatureTypeInitializer = new TreeSignatureTypeInitializer(
                signatureSetInitializer,
                propertyService,
                "Tree",
                "DomainSolution");

            entityTypeInitializerRegistry.RegisterEntityTypeInitializer(dataTreeSignatureTypeInitializer);
            configurationRegistry.RegisterSignatureTypeConfiguration(new SignatureTypeConfiguration("Tree", new[] { "treeNode", "rootNode" }));
        }
Пример #7
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 propertyService               = typeRegistry.GetObject <IPropertyService>();
            var signatureSetInitializer       = typeRegistry.GetObject <ISignatureEntitySetInitializer>();
            var configurationRegistry         = typeRegistry.GetObject <IModelConfigurationRegistry>();
            var entityTypeInitializerRegistry = typeRegistry.GetObject <IEntityTypeInitializerRegistry>();

            var dataTreeSignatureTypeInitializer = new TreeSignatureTypeInitializer(
                signatureSetInitializer,
                propertyService,
                "DataTree",
                "BaseMasterData");

            var treeValuePropertyPostProcessor = new SelectionTreeValuePropertyPostProcessor(signatureSetInitializer);

            entityTypeInitializerRegistry.RegisterEntityTypeInitializer(dataTreeSignatureTypeInitializer);
            entityTypeInitializerRegistry.RegisterEntityTypeInitializer(treeValuePropertyPostProcessor);
            configurationRegistry.RegisterSignatureTypeConfiguration(new SignatureTypeConfiguration("DataTree", new[] { "treeNode", "rootNode" }));
        }
Пример #8
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");
        }
Пример #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)
        {
            var resourceService = typeRegistry.GetObject <IResourceService>();

            var structuralPropertyFactory     = typeRegistry.GetObject <IStructuralPropertyFactory>();
            var signatureSetInitializer       = typeRegistry.GetObject <ISignatureEntitySetInitializer>();
            var configurationRegistry         = typeRegistry.GetObject <IModelConfigurationRegistry>();
            var entityTypeInitializerRegistry = typeRegistry.GetObject <IEntityTypeInitializerRegistry>();

            IStructuralProperty quantityTypeProperty;

            if (!structuralPropertyFactory.TryCreate(FactonModelKeywords.QuantityTypePropertyName, GetQuantityType, false, out quantityTypeProperty))
            {
                throw new InvalidOperationException("Could not map quantity type property.");
            }

            var resourceSignatureTypeInitializer = new ResourceSignatureTypeInitializer(
                signatureSetInitializer,
                resourceService,
                quantityTypeProperty);

            entityTypeInitializerRegistry.RegisterEntityTypeInitializer(resourceSignatureTypeInitializer);
            configurationRegistry.RegisterSignatureTypeConfiguration(new SignatureTypeConfiguration("Resource", new[] { "resource" }));
        }
        /// <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 versionService      = typeRegistry.GetObject <IReadOnlyVersionService>();
            var queryBuilderFactory = typeRegistry.GetObject <IQueryBuilderFactory>();
            var queryService        = typeRegistry.GetObject <IFactonQueryService>();
            var propertyFactory     = typeRegistry.GetObject <IStructuralPropertyFactory>();

            var signatureSetInitializer       = typeRegistry.GetObject <ISignatureEntitySetInitializer>();
            var configurationRegistry         = typeRegistry.GetObject <IModelConfigurationRegistry>();
            var entityTypeInitializerRegistry = typeRegistry.GetObject <IEntityTypeInitializerRegistry>();

            var versionInfoInitializer = new VersionInfoTypeInitializer(queryBuilderFactory, metadataService, propertyFactory, queryService);
            var versionSupportingSignatureTypeInitializer = new VersionSupportingSignatureTypeInitializer(
                signatureSetInitializer,
                versionInfoInitializer);

            entityTypeInitializerRegistry.RegisterEntityTypeInitializer(versionSupportingSignatureTypeInitializer);

            configurationRegistry.RegisterSignatureTypeConfiguration(new SignatureTypeConfiguration("VariantFolder", new[] { "variantFolder" }));
            configurationRegistry.RegisterSignatureTypeConfiguration(
                new SignatureTypeConfiguration("Calculation", new[] { "calculation", "variant" }));
        }
Пример #11
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);
        }
Пример #12
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);
        }