Ejemplo n.º 1
0
        public StorageProviderManager(IPersistenceExtension persistenceExtension)
        {
            ArgumentUtility.CheckNotNull("persistenceExtension", persistenceExtension);

            _storageProviders     = new StorageProviderCollection();
            _persistenceExtension = persistenceExtension;
        }
        static StorageProviderCollection GetStorageProviderCollection(this IServiceCollection services)
        {
            var collection = services
                             .Where(desc => desc.ServiceType == typeof(StorageProviderCollection) && null != desc.ImplementationInstance)
                             .Select(desc => desc.ImplementationInstance)
                             .OfType <StorageProviderCollection>()
                             .FirstOrDefault();

            if (null == collection)
            {
                collection = new StorageProviderCollection();
                services.AddSingleton(collection);
                // storage provider factory added with collection -- once
                services.AddSingleton <IStorageProvider>(serviceProvider =>
                {
                    var cc = serviceProvider.GetRequiredService <StorageProviderCollection>();
                    if (cc.Count == 1)
                    {
                        return((IStorageProvider)ActivatorUtilities.CreateInstance(serviceProvider, cc[0]));
                    }
                    return(new CompositeStorageProvider(cc.Select(ty => (IStorageProvider)ActivatorUtilities.CreateInstance(serviceProvider, ty)).ToImmutableArray()));
                });
            }
            return(collection);
        }
        public override void SetUp()
        {
            base.SetUp();

            _storageProviderCommandFactoryStub = MockRepository.GenerateStub <IStorageProviderCommandFactory <IRdbmsProviderCommandExecutionContext> >();

            _provider = new RdbmsProvider(
                new RdbmsProviderDefinition("TestDomain", new SqlStorageObjectFactory(), "ConnectionString"),
                NullPersistenceExtension.Instance,
                _storageProviderCommandFactoryStub,
                () => new SqlConnection());

            _collection = new StorageProviderCollection();
        }
Ejemplo n.º 4
0
        public void Dispose()
        {
            if (!_disposed)
            {
                if (_storageProviders != null)
                {
                    _storageProviders.Dispose();
                }

                _storageProviders = null;

                _disposed = true;
                GC.SuppressFinalize(this);
            }
        }