示例#1
0
        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);
        }
示例#2
0
        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());
        }