Example #1
0
        public IActionResult Index([FromBody] GameCreateRequest request, string appId)
        {
            if (!IsValid(request, out string message))
            {
                var errorResponse = new ErrorResponse {
                    Message = message
                };
                _logger.LogError($"{Request.GetUri()} - {JsonConvert.SerializeObject(errorResponse)}");
                return(Ok(errorResponse));
            }

            appId = appId.ToLowerInvariant();

            dynamic response;

            if ("Load".Equals(request.Type))
            {
                response = GameLoad(request, appId);
            }
            else if ("Create".Equals(request.Type))
            {
                response = GameCreate(request, appId);
            }
            else
            {
                var errorResponse = new ErrorResponse {
                    Message = $"Unexpected \"Type\" parameter value: \"{request.Type}\"."
                };
                _logger.LogError($"{Request.GetUri()} - {JsonConvert.SerializeObject(errorResponse)}");
                return(Ok(errorResponse));
            }

            _logger.LogInformation($"{Request.GetUri()} - {JsonConvert.SerializeObject(response)}");
            return(Ok(response));
        }
        public IActionResult Index([FromBody] GameCreateRequest request, [FromHeader] string appId)
        {
            if (!IsValid(request, out string message))
            {
                var errorResponse = new ErrorResponse {
                    Message = message
                };
                _logger.LogError($"{Request.GetUri()} - {JsonConvert.SerializeObject(errorResponse)}");
                return(BadRequest(errorResponse));
            }

            dynamic response;

            if (!string.IsNullOrEmpty(request.Type) && request.Type == "Load")
            {
                response = GameLoad(request, appId);
            }
            else
            {
                response = GameCreate(request, appId);
            }

            _logger.LogInformation($"{Request.GetUri()} - {JsonConvert.SerializeObject(response)}");
            return(Ok(response));
        }
Example #3
0
        public void Execute(GameCreateRequest request)
        {
            using (var db = databaseFactory.CreateNew())
            {
                var game = new PogoGamePoke {
                    ChatId             = request.ChatId,
                    MessageId          = request.MessageId,
                    Difficulty         = request.Difficulty,
                    Finish             = request.Finish,
                    TargetPokeId       = request.Poke1Id,
                    TargetPokeMoveTyp  = request.Poke1Move,
                    Choice1PokeId      = request.Poke2Id,
                    Choice1PokeMoveTyp = request.Poke2Move,
                    Choice2PokeId      = request.Poke3Id,
                    Choice2PokeMoveTyp = request.Poke3Move,
                    Choice3PokeId      = request.Poke4Id,
                    Choice3PokeMoveTyp = request.Poke4Move,
                    Choice4PokeId      = request.Poke5Id,
                    Choice4PokeMoveTyp = request.Poke5Move
                };

                db.PogoGamePokes.Add(game);
                db.SaveChanges();
            }
        }
        public async Task <ActionResult <Game> > CreateGame([FromBody] GameCreateRequest request)
        {
            int.TryParse(((ClaimsIdentity)User.Identity).Claims.FirstOrDefault()?.Value, out int userId);
            var game = await _gameService.CreateGame(request, userId);

            return(game);
        }
        private dynamic GameCreate(GameCreateRequest request, string appId)
        {
            dynamic response;

            if (DataAccess.StateExists(appId, request.GameId))
            {
                response = new ErrorResponse {
                    Message = "Game already exists."
                };
                return(response);
            }

            if (request.CreateOptions == null)
            {
                DataAccess.StateSet(appId, request.GameId, string.Empty);
            }
            else
            {
                DataAccess.StateSet(appId, request.GameId, (string)JsonConvert.SerializeObject(request.CreateOptions));
            }

            response = new OkResponse();
            //_logger.LogInformation($"{Request.GetUri()} - {JsonConvert.SerializeObject(response)}");
            return(response);
        }
        public static dynamic GameLoad(GameCreateRequest request, string appId)
        {
            dynamic response;
            string stateJson = string.Empty;
            stateJson = WebApiApplication.DataAccess.StateGet(appId, request.GameId);

            if (!string.IsNullOrEmpty(stateJson))
            {
                response = new GameLoadResponse { State = JsonConvert.DeserializeObject(stateJson) };
                return response;
            }

            //TBD - check how deleteIfEmpty works with createifnot exists
            if (stateJson == string.Empty)
            {
                WebApiApplication.DataAccess.StateDelete(appId, request.GameId);

                if (log.IsDebugEnabled)
                {
                    log.DebugFormat("Deleted empty state, app id {0}, gameId {1}", appId, request.GameId);
                }
            }

            if (request.CreateIfNotExists)
            {
                response = new OkResponse();
                return response;
            }

            response = new ErrorResponse { Message = "GameId not Found." };
            return response;
        }
        public static dynamic GameLoad(GameCreateRequest request, string appId)
        {
            dynamic response;
            var     stateJson = DataAccess.StateGet(appId, request.GameId);

            if (!string.IsNullOrEmpty(stateJson))
            {
                response = new GameLoadResponse {
                    State = JsonConvert.DeserializeObject(stateJson)
                };
                return(response);
            }
            //TBD - check how deleteIfEmpty works with createifnot exists
            if (stateJson == string.Empty)
            {
                DataAccess.StateDelete(appId, request.GameId);

                //_logger.LogInformation($"Deleted empty state, app id {appId}, gameId {request.GameId}");
            }

            if (request.CreateIfNotExists)
            {
                response = new OkResponse();
                //_logger.LogInformation($"{Request.GetUri()} - {JsonConvert.SerializeObject(response)}");
                return(response);
            }

            response = new ErrorResponse {
                Message = "GameId not Found."
            };
            //_logger.LogError($"{Request.GetUri()} - {JsonConvert.SerializeObject(response)}");
            return(response);
        }
        public dynamic Post(GameCreateRequest request, string appId)
        {
            if (log.IsDebugEnabled) log.DebugFormat("{0} - {1}", Request.RequestUri, JsonConvert.SerializeObject(request));

            string message;
            if (!IsValid(request, out message))
            {
                var errorResponse = new ErrorResponse { Message = message };
                if (log.IsDebugEnabled) log.Debug(JsonConvert.SerializeObject(errorResponse));
                return errorResponse;
            }
            
            dynamic response;
            if (!string.IsNullOrEmpty(request.Type) && request.Type == "Load")
            {
                response = GameLoad(request, appId);
            }
            else
            {
                response = GameCreate(request, appId);
            }

            if (log.IsDebugEnabled) log.Debug(JsonConvert.SerializeObject(response));
            return response;
        }
        public dynamic Post(GameCreateRequest request, string appId)
        {
            if (log.IsDebugEnabled)
            {
                log.DebugFormat("{0} - {1}", Request.RequestUri, JsonConvert.SerializeObject(request));
            }

            string message;

            if (!IsValid(request, out message))
            {
                var errorResponse = new ErrorResponse {
                    Message = message
                };
                if (log.IsDebugEnabled)
                {
                    log.Debug(JsonConvert.SerializeObject(errorResponse));
                }
                return(errorResponse);
            }

            dynamic response = GameCreateController.GameLoad(request, appId);

            if (log.IsDebugEnabled)
            {
                log.Debug(JsonConvert.SerializeObject(response));
            }
            return(response);
        }
Example #10
0
        private static bool IsValid(GameCreateRequest request, out string message)
        {
            if (request == null)
            {
                message = "Received request does not contain expected JSON data.";
                return(false);
            }

            if (string.IsNullOrWhiteSpace(request.GameId))
            {
                message = "Missing \"GameId\" parameter.";
                return(false);
            }

            if (string.IsNullOrWhiteSpace(request.UserId))
            {
                message = "Missing \"UserId\" parameter.";
                return(false);
            }

            if (string.IsNullOrWhiteSpace(request.Type))
            {
                message = "Missing \"Type\" parameter.";
                return(false);
            }

            message = string.Empty;
            return(true);
        }
        public dynamic Post(GameCreateRequest request, string appId)
        {
            if (log.IsDebugEnabled) log.DebugFormat("{0} - {1}", Request.RequestUri, JsonConvert.SerializeObject(request));

            string message;
            if (!IsValid(request, out message))
            {
                var errorResponse = new ErrorResponse { Message = message };
                if (log.IsDebugEnabled) log.Debug(JsonConvert.SerializeObject(errorResponse));
                return errorResponse;
            }

            dynamic response = GameCreateController.GameLoad(request, appId);
            if (log.IsDebugEnabled) log.Debug(JsonConvert.SerializeObject(response));
            return response;
        }
        private static bool IsValid(GameCreateRequest request, out string message)
        {
            if (string.IsNullOrEmpty(request.GameId))
            {
                message = "Missing GameId.";
                return(false);
            }

            if (string.IsNullOrEmpty(request.UserId))
            {
                message = "Missing UserId.";
                return(false);
            }

            message = "";
            return(true);
        }
        private static bool IsValid(GameCreateRequest request, out string message)
        {
            if (string.IsNullOrEmpty(request.GameId))
            {
                message = "Missing GameId.";
                return false;
            }

            if (string.IsNullOrEmpty(request.UserId))
            {
                message = "Missing UserId.";
                return false;
            }

            message = "";
            return true;
        }
        public IActionResult Index([FromBody] GameCreateRequest request, [FromHeader] string appId)
        {
            string message;

            if (!IsValid(request, out message))
            {
                var errorResponse = new ErrorResponse {
                    Message = message
                };
                _logger.LogError($"{Request.GetUri()} - {JsonConvert.SerializeObject(errorResponse)}");
                return(BadRequest(errorResponse));
            }

            var response = GameCreateController.GameLoad(request, appId);

            _logger.LogInformation($"{Request.GetUri()} - {JsonConvert.SerializeObject(response)}");
            return(Ok(response));
        }
        public async Task <Game> CreateGame(GameCreateRequest request, int userId)
        {
            var activeCodes = await _gameRepository.GetActiveGamesCodes();

            string code = "";

            do
            {
                code = CodeGenerator.Generate(CodeLength);
            } while (activeCodes.Contains(code));

            var game = new Game
            {
                MasterId = userId,
                Name     = request.Name,
                Code     = code
            };

            return(await _gameRepository.AddAsync(game));
        }
        private static dynamic GameCreate(GameCreateRequest request, string appId)
        {
            dynamic response;
            if (WebApiApplication.DataAccess.StateExists(appId, request.GameId))
            {
                response = new ErrorResponse { Message = "Game already exists." };
                return response;
            }

            if (request.CreateOptions == null)
            {
                WebApiApplication.DataAccess.StateSet(appId, request.GameId, string.Empty);
            }
            else
            {
                WebApiApplication.DataAccess.StateSet(appId, request.GameId, (string)JsonConvert.SerializeObject(request.CreateOptions));
            }

            response = new OkResponse();
            return response;
        }
        public dynamic Post(GameCreateRequest request, string appId)
        {
            appId = appId.ToLowerInvariant();
            string message;

            if (!IsValid(request, out message))
            {
                var errorResponse = new ErrorResponse {
                    Message = message
                };
                if (log.IsDebugEnabled)
                {
                    log.Debug(JsonConvert.SerializeObject(errorResponse));
                }
                return(errorResponse);
            }

            if (log.IsDebugEnabled)
            {
                log.DebugFormat("{0} - {1}", Request.RequestUri, JsonConvert.SerializeObject(request));
            }

            dynamic response;

            if (!string.IsNullOrEmpty(request.Type) && request.Type == "Load")
            {
                response = GameLoad(request, appId);
            }
            else
            {
                response = GameCreate(request, appId);
            }

            if (log.IsDebugEnabled)
            {
                log.Debug(JsonConvert.SerializeObject(response));
            }
            return(response);
        }
Example #18
0
        public static dynamic GameLoad(GameCreateRequest request, string appId)
        {
            dynamic response;
            string  stateJson = string.Empty;

            stateJson = WebApiApplication.DataAccess.StateGet(appId, request.GameId);

            if (!string.IsNullOrEmpty(stateJson))
            {
                response = new GameLoadResponse {
                    State = JsonConvert.DeserializeObject(stateJson)
                };
                return(response);
            }

            //TBD - check how deleteIfEmpty works with createifnot exists
            if (stateJson == string.Empty)
            {
                WebApiApplication.DataAccess.StateDelete(appId, request.GameId);

                if (log.IsDebugEnabled)
                {
                    log.DebugFormat("Deleted empty state, app id {0}, gameId {1}", appId, request.GameId);
                }
            }

            if (request.CreateIfNotExists)
            {
                response = new OkResponse();
                return(response);
            }

            response = new ErrorResponse {
                Message = "GameId not Found."
            };
            return(response);
        }
Example #19
0
        private static dynamic GameCreate(GameCreateRequest request, string appId)
        {
            dynamic response;

            if (WebApiApplication.DataAccess.StateExists(appId, request.GameId))
            {
                response = new ErrorResponse {
                    Message = "Game already exists."
                };
                return(response);
            }

            if (request.CreateOptions == null)
            {
                WebApiApplication.DataAccess.StateSet(appId, request.GameId, string.Empty);
            }
            else
            {
                WebApiApplication.DataAccess.StateSet(appId, request.GameId, (string)JsonConvert.SerializeObject(request.CreateOptions));
            }

            response = new OkResponse();
            return(response);
        }