protected virtual void Dispose(bool disposing)
        {
            if (!_disposed && disposing)
            {
                _session = null;
            }

            _disposed = true;
        }
        public void SaveWork()
        {
            if (_sessionStarted)
            {
                _context.Database.CurrentTransaction.Commit();
            }

            _session        = null;
            _sessionStarted = false;
        }
        public override void Configure(UnderlyingSession session)
        {
            base.Configure(session);

            Context.ChangeTracker.QueryTrackingBehavior = QueryTrackingBehavior.NoTracking;

            Set   = Context.Set <TDataModel>();
            Query = Set.AsNoTracking();
            Write = Context.ChangeTracker.TrackGraph;
        }
        public void Invalid_Type_Throws_CastException()
        {
            // Arrange
            var session = new MySession1();

            // Act
            var underlyingSession = new UnderlyingSession(session);

            // Assert
            Assert.Throws <InvalidCastException>(() => underlyingSession.Get <MySession2>());
        }
        public void Expected_Type_Is_Accepted()
        {
            // Arrange
            var session = new MySession1();

            // Act
            var underlyingSession = new UnderlyingSession(session);

            // Assert
            Assert.NotNull(underlyingSession.Get <MySession1>());
            Assert.Equal(session, underlyingSession.Get <MySession1>());
        }
Exemple #6
0
        public virtual void Configure(UnderlyingSession session)
        {
            Checker.NotNullArgument(session, nameof(session));

            Context = session.Get <DbContext>();

            if (Context == null)
            {
                // TODO: Implementar internacionalização
                throw new NullReferenceException(
                          $"The context is null. The session has not been configured.");
            }
        }
        internal static void SaveSession(UnderlyingSession session, IFileSystem fs)
        {
            string dbFilePath = Path.Combine(fs.GetCurrentDirectory(), DatabaseFileName);

            FileStream file = fs.OpenFile(dbFilePath,
                                          fs.FileExists(dbFilePath) ? FileMode.Truncate : FileMode.CreateNew);
            string dataString = JsonConvert.SerializeObject(session.Get <MemoryDatabase>().Blog,
                                                            Formatting.Indented);

            using (StreamWriter writer = new StreamWriter(file, Encoding.UTF8))
            {
                writer.Write(dataString);
            }
        }
        public void Inherited_Types_Are_Accepted()
        {
            // Arrange
            var session1 = new MySession1();
            var session2 = new MySession2();

            // Act
            var underlyingSession1 = new UnderlyingSession(session1);
            var underlyingSession2 = new UnderlyingSession(session2);

            // Assert
            Assert.NotNull(underlyingSession1.Get <MySession1>());
            Assert.NotNull(underlyingSession2.Get <MySession2>());
            Assert.NotNull(underlyingSession2.Get <MySession1>());

            Assert.Equal(session1, underlyingSession1.Get <MySession1>());
            Assert.Equal(session2, underlyingSession2.Get <MySession2>());

            Assert.Equal(session2, underlyingSession2.Get <MySession1>());
            Assert.NotEqual(session1, underlyingSession2.Get <MySession1>());
        }
        protected virtual void Dispose(bool disposing)
        {
            if (_disposed)
            {
                return;
            }

            _disposed = true;

            if (!disposing)
            {
                return;
            }

            if (_sessionStarted)
            {
                _context.Database.CurrentTransaction.Rollback();
            }

            _session        = null;
            _sessionStarted = false;
        }
 public void SaveWork()
 {
     SaveSession(Session, _fs);
     _session = null;
 }
Exemple #11
0
 public void Configure(UnderlyingSession session) => _base.Configure(session);
Exemple #12
0
 public void Configure(UnderlyingSession session) => _db = session.Get <MemoryDatabase>();