Example #1
0
        private Models.BaseResponse ValidateInput(Models.NewGameParam game)
        {
            if (string.IsNullOrEmpty(game.PlayerName))
            {
                return(new Models.BaseResponse {
                    ResponseId = 1, ResponseMessage = "Invalid Player Name"
                });
            }

            return(new Models.BaseResponse {
                ResponseId = 0, ResponseMessage = "OK"
            });
        }
Example #2
0
        public void CreateNewGame(Models.NewGameParam game, int codeLength, string availableColors, string gameHash, string secret)
        {
            using (var sqLiteConnection = new SQLiteConnection(connectionString))
            {
                sqLiteConnection.Open();

                StringBuilder sql = new StringBuilder();

                sql.Append("insert into mm_games(player_name,creation_date,code_length,available_colors,game_hash, secret) ");
                sql.AppendFormat("values('{0}', datetime('now','localtime'), {1}, '{2}', '{3}', '{4}');", game.PlayerName, codeLength, availableColors, gameHash, secret);

                using (var command = new SQLiteCommand(sql.ToString(), sqLiteConnection))
                {
                    command.ExecuteNonQuery();
                }
            }
        }
Example #3
0
        public Models.NewGameResponse StartNewGame(Models.NewGameParam game)
        {
            var validation = ValidateInput(game);

            if (validation.ResponseId == 0)
            {
                var codeLenght      = Convert.ToInt32(System.Configuration.ConfigurationManager.AppSettings.Get("codeLength"));
                var availableColors = System.Configuration.ConfigurationManager.AppSettings.Get("availableColors");

                var sBuilder = new StringBuilder();
                sBuilder.AppendFormat("{0}{1}{2}{3}", game.PlayerName, codeLenght, availableColors, DateTime.Now.Ticks);

                var gameHash = Helpers.Md5Helper.GetMD5(sBuilder.ToString());

                var secret = GenerateSecret(codeLenght, availableColors.ToCharArray());

                var newGameDAO = new DAO.NewGameDAO();
                newGameDAO.CreateNewGame(game, codeLenght, availableColors, gameHash, secret);

                return(new Models.NewGameResponse
                {
                    PlayerName = game.PlayerName,
                    CodeLength = codeLenght,
                    AvailableColors = availableColors.ToCharArray(),
                    GameId = gameHash,
                    ResponseId = validation.ResponseId,
                    ResponseMessage = validation.ResponseMessage
                });
            }
            else
            {
                return(new Models.NewGameResponse
                {
                    ResponseId = validation.ResponseId,
                    ResponseMessage = validation.ResponseMessage
                });
            };
        }
Example #4
0
        public Models.NewGameResponse Post([FromBody] Models.NewGameParam value)
        {
            var response = newGameService.StartNewGame(value);

            return(response);
        }