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