Taijutsu.Data.Internal.DataContext.Dispose C# (CSharp) Method

Dispose() protected method

protected Dispose ( bool disposing ) : void
disposing bool
return void
        protected virtual void Dispose(bool disposing)
        {
            if (disposed || !disposing)
            {
                return;
            }

            try
            {
                try
                {
                    if (!completed.HasValue || !completed.Value)
                    {
                        completed = false;
                    }
                }
                finally
                {
                    try
                    {
                        if (Finished != null)
                        {
                            Finished(this, new FinishedEventArgs(completed.HasValue && completed.Value));
                        }
                    }
                    finally
                    {
                        if (session.IsValueCreated)
                        {
                            terminationPolicy.Terminate(session.Value, completed.HasValue && completed.Value);
                        }
                    }
                }
            }
            finally
            {
                disposed = true;
                extra = null;
                BeforeCompleted = null;
                AfterCompleted = null;
                Finished = null;
            }
        }

Same methods

DataContext::Dispose ( ) : void

Usage Example

        public virtual void ShouldCallRealDisposeOnlyOnce()
        {
            var config = new UnitOfWorkConfig(string.Empty, IsolationLevel.ReadCommitted, Require.New);
            var sessionBuilder = new Lazy<IDataSession>(() => session, false);
            var policy = new ImmediateTerminationPolicy();

            var context = new DataContext(config, sessionBuilder, policy);

            Awaken(context);

            context.Dispose();
            context.Dispose();

            session.Received(1).Dispose();
        }
All Usage Examples Of Taijutsu.Data.Internal.DataContext::Dispose