public async Task <IActionResult> postJson([FromBody] InstallationRoot payload, [FromQuery] string repo = "scdfiles") { try { // create installation with a 10% chance of failing InstallationSim instSim = simHandler.createFailedInstallationByChance(payload, 10); StatusType status = await instSim.runSetup(); if (status == StatusType.STATUS_FINISHED_SUCCESS) { var jsonString = JsonConvert.SerializeObject(payload, Formatting.Indented); await GitController.createFile("Create: " + payload.installation.name, jsonString, "./installations/" + payload.installation.name + "/" + payload.installation.name + ".json", repo); return(Ok("{\"status\": 200, \"message\": \"Success.\", \"installation_status\": \"" + status + "\"}")); } else { return(BadRequest("{\"status\": 400, \"message\": \"Creation of installation failed.\", \"installation_status\": \"" + StatusType.STATUS_FINISHED_FAILED + "\"}")); } } catch (ApiValidationException) { return(BadRequest("{\"status\": 400, \"message\": \"File already exists in github repo.\", \"installation_status\": \"" + StatusType.STATUS_FINISHED_FAILED + "\"}")); } catch (Exception) { return(BadRequest("{\"status\": 400, \"message\": \"Unknown error.\", \"installation_status\": \"" + StatusType.STATUS_FINISHED_FAILED + "\"}")); } }