예제 #1
0
        public void OpenAccess_ConcurrentlyUpdateTheSameRecord_OptimisticConcurrencyExceptionShouldBeThrown()
        {
            //arrange
            var newRecordId = CreateNewOpenAccessRecord();

            using (var context1 = new OpenAccessContext())
            {
                var product1 = context1.GetAll <OpenAccessProduct>().First(p => p.Id == newRecordId);
                product1.Price = 1m;
                using (var context2 = new OpenAccessContext())
                {
                    var product2 = context2.GetAll <OpenAccessProduct>().First(p => p.Id == newRecordId);
                    product2.Price = 2m;

                    //act
                    context2.SaveChanges();
                }
                try
                {
                    context1.SaveChanges();
                }
                //assert
                catch (OptimisticVerificationException exception)
                {
                    System.Diagnostics.Trace.WriteLine(exception.ToString());
                    return;
                }
            }

            //We reached end of the test...it means that we assumed incorrect behaviour
            Assert.Fail();
        }
예제 #2
0
 /// <summary>
 /// Gets a session by its session token.
 /// </summary>
 /// <param name="context">The context.</param>
 /// <param name="sessionToken">The session token.</param>
 /// <returns></returns>
 protected override object GetSessionByToken(OpenAccessContext context, string sessionToken)
 {
     return context.GetAll<WebSession>().Where(p => p.SessionToken == sessionToken).FirstOrDefault();
 }
예제 #3
0
 /// <summary>
 /// Gets all sessions of user.
 /// </summary>
 /// <param name="context">The context.</param>
 /// <param name="userId">The user identifier.</param>
 /// <returns></returns>
 protected override IList GetAllSessionsOfUser(OpenAccessContext context, long userId)
 {
     return context.GetAll<WebSession>().Where(p => p.UserId == userId).ToList();
 }
예제 #4
0
 /// <summary>
 /// Gets a user by login and password.
 /// </summary>
 /// <param name="context">The context.</param>
 /// <param name="login">The login.</param>
 /// <param name="password">The password.</param>
 /// <returns></returns>
 protected override object GetUserByLoginPass(OpenAccessContext context, string login, string password)
 {
     return context.GetAll<User>().Where(p => p.Email == login && p.Password == password).FirstOrDefault();
 }
예제 #5
0
 /// <summary>
 /// Gets the user by identifier.
 /// </summary>
 /// <param name="context">The context.</param>
 /// <param name="userId">The user identifier.</param>
 /// <returns></returns>
 protected override object GetUserById(OpenAccessContext context, long userId)
 {
     return context.GetAll<User>().Where(p => p.UserId == userId).FirstOrDefault();
 }
예제 #6
0
 public IQueryable <T> GetAll()
 {
     return(_context.GetAll <T>());
 }
예제 #7
0
 /// <summary>
 /// Gets the user by identifier.
 /// </summary>
 /// <param name="context">The context.</param>
 /// <param name="userId">The user identifier.</param>
 /// <returns></returns>
 protected override object GetUserById(OpenAccessContext context, long userId)
 {
     return(context.GetAll <User>().Where(p => p.UserId == userId).FirstOrDefault());
 }
예제 #8
0
 /// <summary>
 /// Gets a user by login and password.
 /// </summary>
 /// <param name="context">The context.</param>
 /// <param name="login">The login.</param>
 /// <param name="password">The password.</param>
 /// <returns></returns>
 protected override object GetUserByLoginPass(OpenAccessContext context, string login, string password)
 {
     return(context.GetAll <User>().Where(p => p.Email == login && p.Password == password).FirstOrDefault());
 }
예제 #9
0
 /// <summary>
 /// Gets all sessions of user.
 /// </summary>
 /// <param name="context">The context.</param>
 /// <param name="userId">The user identifier.</param>
 /// <returns></returns>
 protected override IList GetAllSessionsOfUser(OpenAccessContext context, long userId)
 {
     return(context.GetAll <Session>().Where(p => p.UserId == userId).ToList());
 }
예제 #10
0
 /// <summary>
 /// Gets a session by its session token.
 /// </summary>
 /// <param name="context">The context.</param>
 /// <param name="sessionToken">The session token.</param>
 /// <returns></returns>
 protected override object GetSessionByToken(OpenAccessContext context, string sessionToken)
 {
     return(context.GetAll <Session>().Where(p => p.SessionToken == sessionToken).FirstOrDefault());
 }