예제 #1
0
        public Wallet UpdateWalletPurchase(int userId, decimal balance)
        {
            using (var session = _dbSessionService.OpenSession())
            {
                using (var transaction = session.BeginTransaction())
                {
                    var result = _walletQueryService.QueryWallets(session, userId);

                    var resultArray = result[0];

                    if (resultArray.Balance - balance < 0)
                    {
                        throw new Exception("insufficient balance");
                    }

                    resultArray.Balance  = resultArray.Balance - balance;
                    resultArray.Holdings = resultArray.Holdings + balance;

                    session.SaveOrUpdate(resultArray);

                    transaction.Commit();

                    return(result[0]);
                }
            }
        }
        public Wallet GetUserInfo(int userId)
        {
            using (var session = _dbSessionService.OpenSession())
            {
                using (var transaction = session.BeginTransaction())
                {
                    var result = session.QueryOver <Wallet>()
                                 .Where(w => w.UserId == userId)
                                 .List <Wallet>();

                    transaction.Commit();
                    return(result[0]);
                }
            }
        }
        public Wallet UpdateWalletSale(int userId, decimal balance)
        {
            using (var session = _dbSessionService.OpenSession())
            {
                using (var transaction = session.BeginTransaction())
                {
                    var result = _walletQueryService.QueryWallets(session, userId);

                    result[0].Balance  = result[0].Balance + balance;
                    result[0].Holdings = result[0].Holdings - balance;

                    session.SaveOrUpdate(result[0]);

                    transaction.Commit();

                    return(result[0]);
                }
            }
        }
        public Wallet GetUserId(int userId)
        {
            using (var session = _dbSessionService.OpenSession())
            {
                using (var transaction = session.BeginTransaction())
                {
                    var wallet = new Wallet
                    {
                        UserId = userId
                    };

                    ICriteria c = session.CreateCriteria <Wallet>();
                    c.Add(Restrictions.Eq("UserId", userId));

                    var result = c.UniqueResult <Wallet>();
                    transaction.Commit();

                    return(result);
                }
            }
        }
        public void should_update_wallet_deposit_return()
        {
            var userId = TestData.GenerateRandomInt();

            var balance = 100.90m;

            var session = Substitute.For <ISession>();

            _dbSessionService.OpenSession().Returns(session);

            _walletQueryService.QueryWallets(Arg.Any <ISession>(), Arg.Any <int>())
            .Returns(new List <Wallet>
            {
                new Wallet
                {
                    UserId   = userId,
                    Balance  = 10356.30m,
                    Holdings = 300.65m
                }
            });

            _sut.UpdateWalletSale(userId, balance);
        }
        public User AuthorizeUser(string username, string password)
        {
            using (var session = _dbSessionService.OpenSession())
            {
                using (var transaction = session.BeginTransaction())
                {
                    if (username == "" && password == "")
                    {
                        throw new Exception("empty username and password");
                    }

                    if (username == "" && password != "")
                    {
                        throw new Exception("empty username");
                    }

                    if (password == "" && username != "")
                    {
                        throw new Exception("empty password");
                    }

                    var user = new User
                    {
                        Username = username,
                        Password = password
                    };

                    var query = session.CreateCriteria <User>()
                                .Add(Restrictions.Like("Username", username))
                                .List <User>();

                    if (query.Count == 0)
                    {
                        throw new Exception("username doesn't exist");
                    }

                    if (query[0].Password != password)
                    {
                        throw new Exception("wrong credentials");
                    }

                    transaction.Commit();

                    return(query[0]);
                }
            }
        }
        public User CreateNewUser(string username, string password)
        {
            using (var session = _dbSessionService.OpenSession())
            {
                using (var transaction = session.BeginTransaction())
                {
                    if (username == "" && password == "")
                    {
                        throw new Exception("empty username and password");
                    }

                    if (username == "" && password != "")
                    {
                        throw new Exception("empty username");
                    }

                    if (password == "" && username != "")
                    {
                        throw new Exception("empty password");
                    }

                    var result = session.QueryOver <User>()
                                 .Where(w => w.Username == username)
                                 .List <User>();

                    if (result.Count != 0)
                    {
                        throw new Exception("redundant username");
                    }

                    var user = new User
                    {
                        Username     = username,
                        Password     = password,
                        CreatedDate  = DateTime.Now,
                        LastActiveAt = DateTime.Now
                    };

                    session.Save(user);

                    transaction.Commit();

                    return(user);
                }
            }
        }
예제 #8
0
        public Session CreateNewSession(int userId)
        {
            using (var session = _dbSessionService.OpenSession())
            {
                using (var transaction = session.BeginTransaction())
                {
                    var sessionData = new Session
                    {
                        UserId      = userId,
                        CreatedDate = DateTime.Now,
                    };

                    session.Save(sessionData);

                    transaction.Commit();

                    return(sessionData);
                }
            }
        }