Beispiel #1
0
        public async Task <IActionResult> GetStageInfo([FromQuery(Name = "game_id")] int gameId, [FromQuery(Name = "stage_id")] int stageId)
        {
            StageInfoDTO stageInfo = new StageInfoDTO();

            if (gameId == 0 || stageId == 0)
            {
                return(BadRequest("Invalid Parameter. Please check game_id and stage_id parameter values."));
            }

            stageInfo.game_id  = gameId;
            stageInfo.stage_id = stageId;

            // set gaming rule
            int difficulty  = 0;
            int objectCount = 0;
            int objectScore = 0;

            switch (stageId)
            {
            case 1:
                stageInfo.stage_time       = 60;
                stageInfo.stage_difficulty = "Easy";
                difficulty  = 1;
                objectCount = 3;
                objectScore = 50;
                break;

            case 2:
                stageInfo.stage_time       = 80;
                stageInfo.stage_difficulty = "Medium";
                difficulty  = 2;
                objectCount = 5;
                objectScore = 100;
                break;

            case 3:
                stageInfo.stage_time       = 100;
                stageInfo.stage_difficulty = "Hard";
                difficulty  = 2;
                objectCount = 10;
                objectScore = 100;
                break;

            default:
                // need exception handling logic for bad stageId
                break;
            }

            // get object list randomly
            List <string> objectList = GetRandomStageObjectList(difficulty, objectCount);

            stageInfo.stage_objects = objectList;

            // Add object list to StageObject table
            List <StageObject> stageObjectList = new List <StageObject>();

            foreach (string item in objectList)
            {
                StageObject stageObject = new StageObject()
                {
                    game_id      = gameId,
                    stage_id     = stageId,
                    object_name  = item,
                    object_score = objectScore,
                    found_yn     = "N",
                    log_date     = DateTime.Now
                };
                stageObjectList.Add(stageObject);
                _context.StageObject.Add(stageObject);
            }
            await _context.SaveChangesAsync();

            return(Ok(stageInfo));
        }
        public async Task <IActionResult> GetStageInfo([FromQuery(Name = "game_id")] int gameId, [FromQuery(Name = "stage_id")] int stageId)
        {
            StageInfoDTO stageInfo = new StageInfoDTO();

            if (gameId == 0 || stageId == 0)
            {
                return(BadRequest("Invalid Parameter. Please check game_id and stage_id parameter values."));
            }

            stageInfo.game_id  = gameId;
            stageInfo.stage_id = stageId;

            var game = _context.Game.Where(x => x.game_id == gameId).FirstOrDefault();

            if (game != null)
            {
                stageInfo.language_code = game.lang_code;
            }
            else
            {
                return(BadRequest("Unknown game language code"));
            }

            // set gaming rule
            int difficulty  = 0;
            int objectCount = 0;
            int objectScore = 0;

            switch (stageId)
            {
            case 1:
                stageInfo.stage_time       = 45;
                stageInfo.stage_difficulty = "Easy";
                difficulty  = 1;
                objectCount = 3;
                objectScore = 50;
                break;

            case 2:
                stageInfo.stage_time       = 60;
                stageInfo.stage_difficulty = "Easy";
                difficulty  = 2;
                objectCount = 5;
                objectScore = 50;
                break;

            // case 3:
            //     stageInfo.stage_time = 100;
            //     stageInfo.stage_difficulty = "Hard";
            //     difficulty = 2;
            //     objectCount = 10;
            //     objectScore = 100;
            //     break;
            default:
                // need exception handling logic for bad stageId
                break;
            }

            // get object list randomly
            List <StageObjectDTO> objectList = GetRandomStageObjectList(difficulty, objectCount, stageInfo.language_code);

            stageInfo.stage_objects = objectList;

            // Add object list to StageObject table
            List <StageObject> stageObjectList = new List <StageObject>();

            foreach (StageObjectDTO item in objectList)
            {
                StageObject stageObject = new StageObject()
                {
                    game_id      = gameId,
                    stage_id     = stageId,
                    object_name  = item.object_name,
                    object_score = objectScore,
                    found_yn     = "N",
                    log_date     = DateTime.Now
                };
                stageObjectList.Add(stageObject);
                _context.StageObject.Add(stageObject);
            }
            await _context.SaveChangesAsync();

            return(Ok(stageInfo));
        }