Exemple #1
0
 private void ProcessUnresolvedTypes(ITypeRegistry typeRegistry)
 {
     foreach (TypeReference unresolvedType in
              typeRegistry.GetUnresolvedTypes())
     {
         if (IsObjectType(unresolvedType))
         {
             typeRegistry.RegisterType(
                 new TypeReference(typeof(ObjectType <>)
                                   .MakeGenericType(unresolvedType.ClrType)));
         }
         else if (IsInputObjectType(unresolvedType))
         {
             typeRegistry.RegisterType(
                 new TypeReference(typeof(InputObjectType <>)
                                   .MakeGenericType(unresolvedType.ClrType)));
         }
         else if (IsEnumType(unresolvedType))
         {
             typeRegistry.RegisterType(
                 new TypeReference(typeof(EnumType <>)
                                   .MakeGenericType(unresolvedType.ClrType)));
         }
     }
 }
        private Dictionary <ObjectType, ObjectTypeBinding> CreateObjectTypeBindings(
            ITypeRegistry typeRegistry)
        {
            Dictionary <ObjectType, ObjectTypeBinding> typeBindings =
                new Dictionary <ObjectType, ObjectTypeBinding>();

            foreach (TypeBindingInfo typeBindingInfo in _typeBindings)
            {
                if (typeBindingInfo.Name == null)
                {
                    typeBindingInfo.Name = GetNameFromType(typeBindingInfo.Type);
                }

                IEnumerable <FieldBinding> fieldBindings = null;
                if (typeRegistry.TryGetType <ObjectType>(
                        typeBindingInfo.Name, out ObjectType ot))
                {
                    fieldBindings    = CreateFieldBindings(typeBindingInfo, ot.Fields);
                    typeBindings[ot] = new ObjectTypeBinding(ot.Name,
                                                             typeBindingInfo.Type, ot, fieldBindings);
                }
            }

            return(typeBindings);
        }
        public void Initialise(ITypeRegistry registry)
        {
            registry.RegisterType<IContactsProvider, GoogleContactsProvider>();
            registry.RegisterType<IAccountAuthentication, GoogleAuthentication>("GoogleAuthentication");

            GoogleConfigSection.EnsureIsValid();
        }
 public DefaultTableMappingStrategy()
 {
     if (ServiceLocator.IsInitialised())
     {
         _typeRegistry = ServiceLocator.Instance.Resolve <ITypeRegistry>();
     }
 }
Exemple #5
0
        private void CompleteAbstractTypeResolver(
            ITypeRegistry typeRegistry)
        {
            if (_resolveAbstractType == null)
            {
                // if there is now custom type resolver we will use this default
                // abstract type resolver.
                List <ObjectType> types = null;
                _resolveAbstractType = (c, r) =>
                {
                    if (types == null)
                    {
                        types = typeRegistry.GetTypes()
                                .OfType <ObjectType>()
                                .Where(t => t.Interfaces.ContainsKey(Name))
                                .ToList();
                    }

                    foreach (ObjectType type in types)
                    {
                        if (type.IsOfType(c, r))
                        {
                            return(type);
                        }
                    }

                    return(null); // todo: should we throw instead?
                };
            }
        }
Exemple #6
0
        public FileObjectAccess(string path, ITypeRegistry typeRegistry)
        {
            Path    = path;
            _buffer = new DataAccessBuffer();

            TypeRegistry = typeRegistry;
        }
Exemple #7
0
        private string LookupFieldName(ITypeRegistry typeRegistry, FieldResolverMember fieldResolverMember)
        {
            foreach (ResolverCollectionBindingInfo resolverBinding in
                     _resolverBindings[fieldResolverMember.TypeName])
            {
                FieldResolverBindungInfo fieldBinding = resolverBinding.Fields
                                                        .FirstOrDefault(t => t.FieldMember == fieldResolverMember.Member);
                if (fieldBinding != null)
                {
                    return(fieldBinding.FieldName);
                }
            }

            if (typeRegistry.TryGetTypeBinding(fieldResolverMember.TypeName, out ObjectTypeBinding binding))
            {
                FieldBinding fieldBinding = binding.Fields.Values
                                            .FirstOrDefault(t => t.Member == fieldResolverMember.Member);
                if (fieldBinding != null)
                {
                    return(fieldBinding.Name);
                }
            }

            return(fieldResolverMember.FieldName);
        }
        public override void Generate(Service service, Element element, ITypeRegistry registry)
        {
            base.Generate(service, element, registry);

            // Aggregate repository
            var aggregate = base.GetDependency <Aggregate>(element, registry);

            if (aggregate != null)
            {
                service.AggregateRepository = aggregate.Value.Type;
            }

            // Query repositories
            var repositories = base.GetDependencies <Aggregate>(element, registry, "query");

            foreach (var repository in repositories)
            {
                if (!service.QueryRepositories.Contains(repository.Type))
                {
                    service.QueryRepositories.Add(repository.Type);
                }
            }

            // Services
            var services = base.GetDependencies <Service>(element, registry);

            foreach (var s in services)
            {
                if (!service.Services.Contains(s.Type))
                {
                    service.Services.Add(s.Type);
                }
            }
        }
Exemple #9
0
        private Dictionary <InputObjectType, InputObjectTypeBinding> CreateInputObjectTypeBindings(
            ITypeRegistry typeRegistry)
        {
            Dictionary <InputObjectType, InputObjectTypeBinding> typeBindings =
                new Dictionary <InputObjectType, InputObjectTypeBinding>();

            foreach (TypeBindingInfo typeBindingInfo in _typeBindings)
            {
                if (typeBindingInfo.Name == null)
                {
                    typeBindingInfo.Name = typeBindingInfo.Type.GetGraphQLName();
                }

                IEnumerable <InputFieldBinding> fieldBindings = null;
                if (typeRegistry.TryGetType <InputObjectType>(
                        typeBindingInfo.Name, out InputObjectType iot))
                {
                    fieldBindings     = CreateInputFieldBindings(typeBindingInfo, iot.Fields);
                    typeBindings[iot] = new InputObjectTypeBinding(iot.Name,
                                                                   typeBindingInfo.Type, iot, fieldBindings);
                }
            }

            return(typeBindings);
        }
Exemple #10
0
        internal void CompleteInputField(
            ITypeRegistry typeRegistry,
            Action <SchemaError> reportError,
            INamedType parentType)
        {
            _type = _typeFactory(typeRegistry);
            if (_type == null)
            {
                reportError(new SchemaError(
                                $"The type of the input field {Name} is null.",
                                parentType));
            }

            if (_defaultValueFactory == null)
            {
                DefaultValue = new NullValueNode(null);
            }
            else
            {
                DefaultValue = _defaultValueFactory(typeRegistry);
            }

            if (parentType is InputObjectType &&
                Property == null &&
                typeRegistry.TryGetTypeBinding(parentType, out InputObjectTypeBinding binding) &&
                binding.Fields.TryGetValue(Name, out InputFieldBinding fieldBinding))
            {
                Property = fieldBinding.Property;
            }
        }
Exemple #11
0
        private void CompleteCollectionBindings(ITypeRegistry typeRegistry)
        {
            foreach (ResolverCollectionBindingInfo binding in _resolverBindings
                     .OfType <ResolverCollectionBindingInfo>())
            {
                if (binding.ObjectType == null && binding.ObjectTypeName == null)
                {
                    binding.ObjectType = binding.ResolverType;
                }

                ObjectTypeBinding typeBinding = null;
                if (binding.ObjectType == null && typeRegistry
                    .TryGetTypeBinding(binding.ObjectTypeName, out typeBinding))
                {
                    binding.ObjectType = typeBinding.Type;
                }

                if (binding.ObjectTypeName == null && typeRegistry
                    .TryGetTypeBinding(binding.ObjectType, out typeBinding))
                {
                    binding.ObjectTypeName = typeBinding.Name;
                }

                if (binding.ObjectTypeName == null)
                {
                    binding.ObjectTypeName = binding.ObjectType.GetGraphQLName();
                }

                // TODO : error handling if object type cannot be resolverd
                CompleteFieldResolverBindungs(binding, typeBinding, binding.Fields);
            }
        }
        CreateObjectTypeBindings(ITypeRegistry typeRegistry)
        {
            var typeBindings = new Dictionary <ObjectType, ObjectTypeBinding>();

            foreach (TypeBindingInfo typeBindingInfo in _typeBindings)
            {
                if (typeBindingInfo.Name == null)
                {
                    typeBindingInfo.Name =
                        typeBindingInfo.Type.GetGraphQLName();
                }

                IEnumerable <FieldBinding> fieldBindings = null;
                if (typeRegistry.TryGetType(
                        typeBindingInfo.Name, out ObjectType ot))
                {
                    fieldBindings =
                        CreateFieldBindings(typeBindingInfo, ot.Fields);
                    typeBindings[ot] = new ObjectTypeBinding(ot.Name,
                                                             typeBindingInfo.Type, ot, fieldBindings);
                }
            }

            return(typeBindings);
        }
 public override void GenerateTypes(Element parent, Module module, ITypeRegistry registry)
 {
     base.GenerateTypes(parent, module, registry);
     GenerateViewModels(module, module.GetTypes <Aggregate>());
     GenerateViewModels(module, module.GetTypes <Entity>());
     GenerateViewModels(module, module.GetTypes <Value>());
 }
Exemple #14
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));
        }
Exemple #15
0
        internal void CompleteInputField(
            ITypeRegistry typeRegistry,
            Action <SchemaError> reportError,
            INamedType parentType)
        {
            if (!_completed)
            {
                DeclaringType = parentType;
                Type          = this.ResolveFieldType <IInputType>(typeRegistry,
                                                                   reportError, _typeReference);

                if (Type != null)
                {
                    CompleteDefaultValue(Type, reportError, parentType);

                    if (parentType is InputObjectType &&
                        Property == null &&
                        typeRegistry.TryGetTypeBinding(parentType, out InputObjectTypeBinding binding) &&
                        binding.Fields.TryGetValue(Name, out InputFieldBinding fieldBinding))
                    {
                        Property = fieldBinding.Property;
                    }
                }
                _completed = true;
            }
        }
Exemple #16
0
 private static MetaType ToMetaType(ITypeRegistry registry, MemberType type)
 {
     return(new MetaType
     {
         SystemType = type?.SystemType,
         Type = registry.Resolve(type?.ReferenceType?.Element)
     });
 }
        public void Initialise(ITypeRegistry registry)
        {
            registry.RegisterSingleton<IUserRepository, UserRepository>();
            registry.RegisterSingleton<IContactFeedRepository, ContactFeedRepository>();
            registry.RegisterSingleton<IContactRepository, ContactRepository>();

            registry.RegisterType<IProcess, InMemoryRepositoryProcess>("InMemoryRepositoryProcess");
        }
 public ColumnToPropertyMappingStrategy()
 {
     if (ServiceLocator.IsInitialised())
     {
         _typeRegistry = ServiceLocator.Instance.Resolve <ITypeRegistry>();
         _mapper       = ServiceLocator.Instance.Resolve <IDictionaryToObjectMapper>();
     }
 }
Exemple #19
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);
        }
Exemple #20
0
 public SchemaSyntaxVisitor(
     ITypeRegistry typeRegistry,
     IDirectiveRegistry directiveRegistry)
 {
     _typeRegistry = typeRegistry
                     ?? throw new ArgumentNullException(nameof(typeRegistry));
     _directiveRegistry = directiveRegistry
                          ?? throw new ArgumentNullException(nameof(directiveRegistry));
 }
Exemple #21
0
 public static bool TryGetObjectTypeField(
     this ITypeRegistry typeRegistry,
     FieldReference fieldReference,
     out ObjectField field)
 {
     field = null;
     return(typeRegistry.TryGetType(fieldReference.TypeName, out ObjectType ot) &&
            ot.Fields.TryGetField(fieldReference.FieldName, out field));
 }
        public SchemaSyntaxVisitor(ITypeRegistry typeRegistry)
        {
            if (typeRegistry == null)
            {
                throw new ArgumentNullException(nameof(typeRegistry));
            }

            _typeRegistry = typeRegistry;
        }
 public void Initialise(ITypeRegistry registry)
 {
     registry.RegisterType<IAccountContactProvider, FakeGoogleAccountContactProvider>();
     registry.RegisterType<ICommunicationProvider, FakeGoogleCommunicationProvider>();
     registry.RegisterType<ICalendarProvider, FakeGoogleCalendarProvider>();
     registry.RegisterType<IGalleryProvider, FakeGoogleGalleryProvider>();
     registry.RegisterType<IContactCollaborationProvider, FakeGoogleContactCollaborationProvider>(); 
     registry.RegisterType<IAccountAuthentication, FakeGoogleAuthentication>("FakeGoogleAuthentication");
 }
Exemple #24
0
 public SchemaConfiguration(
     Action <IServiceProvider> registerServiceProvider,
     ITypeRegistry typeRegistry)
 {
     _registerServiceProvider = registerServiceProvider
                                ?? throw new ArgumentNullException(nameof(registerServiceProvider));
     _typeRegistry = typeRegistry
                     ?? throw new ArgumentNullException(nameof(typeRegistry));
 }
Exemple #25
0
 private void EnqueueUnprocessedTypes(ITypeRegistry types)
 {
     foreach (INamedType type in types.GetTypes())
     {
         if (!_registered.Contains(type.Name))
         {
             _queue.Enqueue(type);
         }
     }
 }
Exemple #26
0
 internal void RegisterDependencies(
     ITypeRegistry typeRegistry,
     Action <SchemaError> reportError,
     INamedType parentType)
 {
     if (_nativeNamedType != null)
     {
         typeRegistry.RegisterType(_nativeNamedType);
     }
 }
Exemple #27
0
 public DashboardModule(ITypeRegistry typeRegistry, IRegionManager regionManager, ISchedulerProvider schedulerProvider,
                        Func <IProfileActivatorAggregator> profileActivatorAggregatorFactory,
                        Func <IProfileDashboardView> profileDashboardViewFactory)
 {
     _typeRegistry      = typeRegistry;
     _regionManager     = regionManager;
     _schedulerProvider = schedulerProvider;
     _profileActivatorAggregatorFactory = profileActivatorAggregatorFactory;
     _profileDashboardViewFactory       = profileDashboardViewFactory;
 }
 public DashboardModule(ITypeRegistry typeRegistry, IRegionManager regionManager, ISchedulerProvider schedulerProvider, 
     Func<IProfileActivatorAggregator> profileActivatorAggregatorFactory,
     Func<IProfileDashboardView> profileDashboardViewFactory)
 {
     _typeRegistry = typeRegistry;
     _regionManager = regionManager;
     _schedulerProvider = schedulerProvider;
     _profileActivatorAggregatorFactory = profileActivatorAggregatorFactory;
     _profileDashboardViewFactory = profileDashboardViewFactory;
 }
Exemple #29
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" }));
        }
Exemple #30
0
        public virtual void Generate(T type, Element e, ITypeRegistry registry)
        {
            // Generate properties from associations
            GenerateAssociationProperties(type, e, registry);

            // Generate properties from attributes
            GenerateAttributeProperties(type, e, registry);

            // Generate methods from operations
            GenerateOperationMethods(type, e, registry);
        }
        public override void Generate(DomainEvent domainEvent, Element element, ITypeRegistry registry)
        {
            base.Generate(domainEvent, element, registry);

            var association = GetDependency <Aggregate>(element, registry);

            if (association != null)
            {
                domainEvent.Aggregate = association.Value.Type;
            }
        }
        public override void Generate(ViewModel viewModel, Element element, ITypeRegistry registry)
        {
            base.Generate(viewModel, element, registry);

            var dependency = GetDependency <Aggregate>(element, registry);

            if (dependency != null)
            {
                viewModel.Target = dependency.Value.Type;
            }
        }
Exemple #33
0
        public override void Generate(InputModel inputModel, Element element, ITypeRegistry registry)
        {
            base.Generate(inputModel, element, registry);

            var dependency = GetDependency <DomainEvent>(element, registry);

            if (dependency != null)
            {
                inputModel.Source = dependency.Value.Type;
            }
        }
Exemple #34
0
        public override void Generate(Command command, Element element, ITypeRegistry registry)
        {
            base.Generate(command, element, registry);

            var service = GetDependency <Service>(element, registry);

            if (service != null)
            {
                command.Service       = service.Value.Type;
                command.ServiceMethod = service.Value.Element.Name;

                var method = command.Service.Methods.SingleOrDefault(m => m.Name == command.ServiceMethod);

                // Try to create service method for corresponding aggregate method
                if (method == null && command.Service.AggregateRepository != null)
                {
                    method = command.Service.AggregateRepository.Methods.FirstOrDefault(m => m.Name == command.ServiceMethod);

                    if (method != null)
                    {
                        var serviceMethod = new MetaMethod(method.Name);

                        // Return aggregate
                        serviceMethod.AddParameter(new MetaParameter
                        {
                            IsReturn = true,
                            Type     = new MetaType {
                                Type = command.Service.AggregateRepository
                            }
                        });

                        // Don't pass aggregate when the aggregate needs to be constructed...
                        if (!method.IsConstructor)
                        {
                            serviceMethod.AddParameter(new MetaParameter
                            {
                                Name = command.Service.AggregateRepository.Name.ToCamelCase(),
                                Type = new MetaType {
                                    Type = command.Service.AggregateRepository
                                }
                            });
                        }

                        foreach (var p in method.Parameters)
                        {
                            serviceMethod.AddParameter(p);
                        }

                        command.Service.Methods.Add(serviceMethod);
                    }
                }
            }
        }
        public void Initialise(ITypeRegistry registry)
        {
            registry.RegisterSingleton<IEventStoreClient, EventStoreClient>();
            registry.RegisterSingleton<IEventStoreConnectionFactory, EventStoreConnectionFactory>();
            registry.RegisterSingleton<Accounts.IAccountContactRefresher, Accounts.AccountContactRefresher>();
            registry.RegisterSingleton<IContactFeedRepository, Contacts.EventStoreContactFeedRepository>();
            registry.RegisterSingleton<IContactRepository, Contacts.EventStoreContactFeedRepository>();//HACK: The EventStore shouldn't be doing this work.
            //registry.RegisterType<IAccountContactProvider, Contacts.EventStoreAccountContactProvider>("EventStoreAccountContactProvider");


            registry.RegisterSingleton<IUserRepository, Users.UserRepository>();
            registry.RegisterType<IProcess, EventStoreProcess>("EventStoreProcess");
        }
Exemple #36
0
        public void Initialise(ITypeRegistry registry)
        {
            registry.RegisterType<IAccountContactProvider, GoogleAccountContactProvider>("GoogleContactsProvider");
            registry.RegisterType<IAccountAuthentication, GoogleAuthentication>("GoogleAuthentication");

            registry.RegisterType<IImapClient, ImapClient>();

            registry.RegisterType<IGoogleAccountProvider, GoogleAccountProvider>();
            registry.RegisterType<ICommunicationProvider, GmailCommunicationQueryProvider>();

            registry.RegisterType<IImapDateTranslator, ImapDateTranslator>();
            registry.RegisterType<IGoogleContactProfileTranslator, GoogleContactProfileTranslator>();
            registry.RegisterType<IAccountTranslator, AccountTranslator>();
        }
 public ShellModule(ITypeRegistry typeRegistry)
 {
     _typeRegistry = typeRegistry;
 }
 public ToolbarModule(ITypeRegistry typeRegistry, Func<IToolbarController> toolbarControllerFactory)
 {
     _typeRegistry = typeRegistry;
     _toolbarControllerFactory = toolbarControllerFactory;
 }
 public WelcomeModule(ITypeRegistry typeRegistry, Func<IWelcomeController> welcomeControllerFactory)
 {
     _typeRegistry = typeRegistry;
     _welcomeControllerFactory = welcomeControllerFactory;
 }
 public SettingsModule(ITypeRegistry registry)
 {
     _registry = registry;
 }
 public BluetoothModule(ITypeRegistry registry)
 {
     _registry = registry;
 }
 public TypeFilteringService(ITypeRegistry typeRegistry)
 {
     this.typeRegistry = typeRegistry;
 }
 public FakeModule(ITypeRegistry typeRegistry)
 {
     _typeRegistry = typeRegistry;
 }
 public void Initialise(ITypeRegistry registry)
 {
     registry.RegisterType<IAccountContactProvider, LinkedInAccountContactProvider>("LinkedInContactsProvider");
     registry.RegisterType<IAccountAuthentication, LinkedInAuthentication>("LinkedInAuthentication");
     registry.RegisterType<ILinkedInAccountProvider, LinkedInAccountProvider>();
 }