예제 #1
0
        public bool StoreUserScore(UserScoreParam param, ref UserRankInfo rankInfo)
        {
            using (var connection = new SQLiteConnection(ConnectionString))// 「DataSource=:memory:」にするとオンメモリのDBとして動作
            {
                // データベースに接続
                connection.Open();

                using (var context = new DataContext(connection))
                {
                    User user = User.Find(context, param.Sereal);

                    if (user == null)
                    {
                        connection.Close();
                        return(false);
                    }
                    UserScore score = new UserScore(user);
                    score.Point = param.Point;
                    bool ret = score.Commit(connection);

                    if (rankInfo != null)
                    {
                        rankInfo.UserId = score.UserId;
                        rankInfo.Name   = user.Name;
                        rankInfo.Point  = score.Point;
                        rankInfo.Rank   = score.Rank(context);
                    }

                    connection.Close();
                    return(ret);
                }
            }
        }
예제 #2
0
        bool CreateDataBase(string dbName)
        {
            ConnectionString = $"DataSource={dbName}.sqlite";
            using (var connection = new SQLiteConnection(ConnectionString))// 「DataSource=:memory:」にするとオンメモリのDBとして動作
            {
                // データベースに接続
                connection.Open();
                // ユーザーテーブルの作成
                User.CreateTable(connection);
                // ランキング用テーブルの作成
                UserScore.CreateTable(connection);

                //  ダミーデータの作成
                int count = 0;
                using (var context = new DataContext(connection))
                {
                    count = User.Count(context);
                }
                const int DATA_MIN = 10;

                Random rand = new Random();
                for (int i = count; i < DATA_MIN; i++)
                {
                    User user = new User();
                    user.Name = "CPU" + i;
                    user.Commit(connection);

                    UserScore score = new UserScore(user);
                    score.Point = rand.Next(10000);
                    score.Commit(connection);
                }

                // 切断
                connection.Close();
            }
            return(true);
        }