public async Task <IActionResult> copyJson([FromBody] CopyData data, [FromQuery] string repo = "scdfiles") { try { IActionResult actionResult = await getJson(data.oldName, repo); var content = actionResult as OkObjectResult; string jsonString = content.Value.ToString(); jsonString = jsonString.Replace(data.oldName, data.newName); InstallationRoot newInstallation = JsonConvert.DeserializeObject <InstallationRoot>(jsonString); // create installation with a 10% chance of failing InstallationSim sim = simHandler.createFailedInstallationByChance(newInstallation, 10); await sim.runSetup(); if (sim.status == StatusType.STATUS_FINISHED_SUCCESS) { await GitController.CopyFile(data.newName, data.oldName, repo, jsonString); } else { return(BadRequest("{\"status\": 400, \"message\": \"Failed to create file.\", \"installation_status\": \"" + sim.status + "\"}")); } } catch (NullReferenceException) { return(BadRequest("{\"status\": 400, \"message\": \"Could not find file with the given filename.\"}")); } catch (ApiValidationException) { return(BadRequest("{\"status\": 400, \"message\": \"File already exists in github repo.\"}")); } catch (Exception) { return(BadRequest("{\"status\": 400, \"message\": \"Unknown error.\"}")); } return(Ok("{\"status\": 200, \"message\": \"Success.\", \"installation_status\": \"" + StatusType.STATUS_FINISHED_SUCCESS + "\"}")); }