Ejemplo n.º 1
0
        /// <summary>
        /// Customize the store configuration for one off tests.
        /// The return value is the database schema
        /// </summary>
        /// <param name="configure"></param>
        /// <returns></returns>
        protected string StoreOptions(Action <StoreOptions> configure)
        {
            overrideSession = true;

            if (session != null)
            {
                session.Dispose();
                Disposables.Remove(session);
                session = null;
            }


            var options = new StoreOptions();

            options.Connection(ConnectionSource.ConnectionString);

            // Can be overridden
            options.AutoCreateSchemaObjects = AutoCreate.All;
            options.NameDataLength          = 100;
            options.DatabaseSchemaName      = "special";

            configure(options);

            store = new DocumentStore(options);
            Disposables.Add(store);

            store.Advanced.Clean.CompletelyRemoveAll();

            return(options.DatabaseSchemaName);
        }
        public override async Task SetParametersAsync(ParameterView parameters)
        {
            var disposables = PropChangeDisposables.ToList();

            Dispose(PropChangeDisposables);

            await base.SetParametersAsync(parameters);

            foreach (var disposable in disposables)
            {
                Disposables.Remove(disposable);
            }
        }
Ejemplo n.º 3
0
        internal void RegisterTransport <T>(string porterCode, T porter, TransportType?type = null, bool asDefault = true)
            where T : ITransport
        {
            CheckDisposed();
            var success = false;

            if (porter is IRpcTransport rpcPorter)
            {
                _rpcPorters.AddOrUpdate(porterCode, _ => rpcPorter, (_, o) =>
                {
                    if (o is IDisposable od)
                    {
                        Disposables.Remove(od);
                        od.Dispose();
                    }
                    return(rpcPorter);
                });
                var rpcDefault = asDefault && (type == null || type.Value == TransportType.Rpc);
                _rpcPorters.AddOrUpdate("", _ => rpcPorter, (_, o) => rpcDefault ? rpcPorter : o);
                if (porter is IDisposable d)
                {
                    Disposables.Add(d);
                }
                success = true;
            }

            if (porter is IQueueTransport queuePorter)
            {
                _queuePorters.AddOrUpdate(porterCode, _ => queuePorter, (_, o) =>
                {
                    if (o is IDisposable od)
                    {
                        Disposables.Remove(od);
                        od.Dispose();
                    }
                    return(queuePorter);
                });
                var queueDefault = asDefault && (type == null || type.Value == TransportType.Queue);
                _queuePorters.AddOrUpdate("", _ => queuePorter, (_, o) => queueDefault ? queuePorter : o);
                if (!success && porter is IDisposable d)
                {
                    Disposables.Add(d);
                }
                success = true;
            }
            if (!success)
            {
                throw new ArgumentOutOfRangeException($"Unknown trnsport subtype for {typeof(T)}");
            }
        }
Ejemplo n.º 4
0
 protected void RemoveAndDispose(CancellationTokenSource cts)
 {
     cts.Dispose();
     lock (Disposables)
         Disposables.Remove(cts);
 }