Ejemplo n.º 1
0
        public static User RememberUser(Activity activity)
        {
            if (activity != null)
            {
                try
                {
                    var db = new PostgresUserRepository();

                    var user = db.GetAll().FirstOrDefault(x => x.ChannelId == activity.ChannelId && x.UserId == activity.From.Id &&
                                                          x.UserName == activity.From.Name);
                    if (user == null)
                    {
                        db.Add(new User(activity));
                        db.Save();
                    }
                    else
                    {
                        return(user);
                    }
                }
                catch (Exception e)
                {
                    Console.WriteLine(e);
                }
            }
            return(null);
        }
Ejemplo n.º 2
0
        public void ChangeGame()
        {
            NpgsqlConnection _connection = new NpgsqlConnection(connString);

            _connection.Open();

            IRoomRepository repo     = new PostgresRoomRepository(_connection, null);
            IUserRepository userRepo = new PostgresUserRepository(_connection, null);

            Room r = new Room(4);

            repo.Create(r);

            User amir = User.NewUser("Amir");
            User budi = User.NewUser("Budi");

            userRepo.Create(amir);
            userRepo.Create(budi);

            r.Join(amir);
            r.Join(budi);

            repo.Join(r, amir);
            repo.Join(r, budi);

            GameConfig config = new GameConfig(2, 2);

            r.StartGame("tic-tac-toe", config);

            repo.ChangeGame(r, r.Game, config);

            Room r2 = repo.FindById(r.ID);

            Assert.NotNull(r2);

            Assert.Equal("tic-tac-toe", r2.Game.Name());

            Move m = new TicTacToeMove(amir.ID, 3);

            r.Move(m);
            repo.AddMove(r, m);

            Move m2 = new TicTacToeMove(budi.ID, 2);

            r.Move(m2);
            repo.AddMove(r, m2);

            Room r3 = repo.FindById(r.ID);

            char[] board = ((TicTacToeMemento)r3.Game.GetMemento()).Board;
            Assert.Equal('-', board[1]);
            Assert.Equal('O', board[2]);
            Assert.Equal('X', board[3]);

            _connection.Close();
        }
Ejemplo n.º 3
0
        public void ExpSnapshotText()
        {
            NpgsqlConnection _connection = new NpgsqlConnection(connString);

            _connection.Open();

            IUserRepository repo = new PostgresUserRepository(_connection, null);

            User u = User.NewUser("Charlie");

            repo.Create(u);

            for (int i = 0; i < 150; i++)
            {
                repo.AddExp(u, 2);
            }

            User u2 = repo.FindById(u.ID);

            Assert.NotNull(u2);

            Assert.Equal(300, u2.Exp);

            int    expFromSnapshot = 0;
            string query           = "SELECT exp FROM exp_snapshot WHERE user_id = @user_id ORDER BY created_at DESC LIMIT 1";

            using (var cmd = new NpgsqlCommand(query, _connection))
            {
                cmd.Parameters.AddWithValue("user_id", u.ID);

                using (NpgsqlDataReader reader = cmd.ExecuteReader())
                {
                    if (reader.Read())
                    {
                        expFromSnapshot = reader.GetInt32(0);
                    }
                }
            }

            Assert.Equal(200, expFromSnapshot);

            _connection.Close();
        }
Ejemplo n.º 4
0
        public void CreateUser()
        {
            NpgsqlConnection _connection = new NpgsqlConnection(connString);

            _connection.Open();

            IUserRepository repo = new PostgresUserRepository(_connection, null);

            User u = User.NewUser("Amir");

            repo.Create(u);

            User u2 = repo.FindById(u.ID);

            Assert.NotNull(u2);

            Assert.Equal(u.ID, u2.ID);
            Assert.Equal(u.Name, u2.Name);
            Assert.Equal(0, u.Exp);
            Assert.Equal(0, u2.Exp);

            _connection.Close();
        }
Ejemplo n.º 5
0
        public void AddExp()
        {
            NpgsqlConnection _connection = new NpgsqlConnection(connString);

            _connection.Open();

            IUserRepository repo = new PostgresUserRepository(_connection, null);

            User u = User.NewUser("Amir");

            repo.Create(u);

            repo.AddExp(u, 10);
            repo.AddExp(u, 15);
            repo.AddExp(u, 13);

            User u2 = repo.FindById(u.ID);

            Assert.NotNull(u2);

            Assert.Equal(38, u2.Exp);

            _connection.Close();
        }