/// <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)); }
/// <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); }
/// <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" })); }
/// <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); }
/// <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" })); }
/// <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" })); }
/// <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"); }
/// <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" })); }
/// <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); }
/// <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); }