예제 #1
0
        private async Task <ActionResult> ExecuteChampionship(ChampionshipModel model)
        {
            RPSSolver      solver      = new RPSSolver();
            Parser         parser      = new Parser();
            CompetitorData secondPlace = new CompetitorData();
            string         errorMessage;
            bool           result       = false;
            var            championship = parser.StringToCompetitors(model.Input, out errorMessage);

            if (string.IsNullOrEmpty(errorMessage))
            {
                CompetitorData[] finalists = solver.Solve(championship);
                model.Winner   = finalists[0].Name;
                model.Strategy = finalists[0].Strategy.ToString();
                secondPlace    = finalists[1];
                ApiClient client = new ApiClient();
                result = await client.SaveResult(model.Winner, secondPlace.Name);
            }
            else
            {
                model.ErrorMessage = errorMessage;
            }

            return(View("Execute", model));
        }
예제 #2
0
        public IHttpActionResult NewMatch(NewChampionshipModel model)
        {
            RPSSolver      solver      = new RPSSolver();
            Parser         parser      = new Parser();
            CompetitorData secondPlace = new CompetitorData();
            string         errorMessage;
            var            championship = parser.StringToCompetitors(model.Data, out errorMessage);

            if (string.IsNullOrEmpty(errorMessage))
            {
                CompetitorData[] finalists = solver.Solve(championship);
                return(Ok(new { winner = new string[] { finalists[0].Name, finalists[0].Strategy.ToString() } }));
            }
            return(Json(new { status = "Error", message = errorMessage }));
        }