public ChallengeSpec SaveChallengeSpec(string name, ChallengeSpec challengeSpec) { //bool isValid = ValidateChallengeSpec(name, challengeSpec); //if(!isValid) //{ // throw new ArgumentException("The ChallengeSpec was not saved. An Invalid ChallengeSpec was submitted."); //} var spec = Data.GetChallengeSpec(name); bool created = false; if (spec != null) { // this file already exists // archive existing spec and create a new one with this name if (ArchiveChallengeSpec(name)) { if (CreateNewChallengeSpec(name, challengeSpec)) { created = true; } } } else { if (CreateNewChallengeSpec(name, challengeSpec)) { created = true; } } if (created) { // TODO: force reload so we can get it from memory and return to caller. look into reloading just one item rather than all files. _dataContext.Reload(); return(Data.GetChallengeSpec(name)); } return(null); }
public async Task <IActionResult> Reload() { GameDataContext.Reload(); foreach (string client in Clients) { var http = HttpClientFactory.CreateClient(client.Untagged()); await http.PostAsync("reload", null); } return(Ok()); }