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)); }