public HttpResponseMessage Get() { var pendingMatches = ExecuteQuery(new GetPendingMatchesQuery()); var registeredMatches = new List<Roster>(); foreach (var pendingMatch in pendingMatches) { try { var players = ExecuteQuery(new GetPlayersQuery(pendingMatch)); var parser = new BitsParser(players); var content = bitsClient.DownloadMatchResult(pendingMatch.BitsMatchId); if (pendingMatch.IsFourPlayer) { var parse4Result = parser.Parse4(content, pendingMatch.Team); ExecuteCommand(new RegisterMatch4Command(pendingMatch, parse4Result)); } else { var parseResult = parser.Parse(content, pendingMatch.Team); ExecuteCommand(new RegisterMatchCommand(pendingMatch, parseResult)); } registeredMatches.Add(pendingMatch); } catch (Exception e) { var message = string.Format("Unable to auto register match {0} ({1})", pendingMatch.Id, pendingMatch.BitsMatchId); ErrorSignal .FromCurrentContext() .Raise(new ApplicationException(message, e)); } } var result = registeredMatches.Select(x => new { x.Date, x.Season, x.Turn, x.BitsMatchId, x.Team, x.Location, x.Opponent }).ToArray(); if (result.Length > 0) return Request.CreateResponse(HttpStatusCode.OK, result); return Request.CreateResponse(HttpStatusCode.OK, "No matches to register"); }
private ActionResult Parse( RegisterBitsVerifyModel model, BitsParser parser, string content, Roster roster, Player[] players) { var result = parser.Parse(content, roster.Team); var vm = new RegisterBitsResult { BitsMatchId = roster.BitsMatchId, TeamScore = result.TeamScore, OpponentScore = result.OpponentScore, RosterId = model.RosterId, Serie1 = result.Series.ElementAtOrDefault(0), Serie2 = result.Series.ElementAtOrDefault(1), Serie3 = result.Series.ElementAtOrDefault(2), Serie4 = result.Series.ElementAtOrDefault(3) }; ViewBag.players = players.Select(x => new PlayerViewModel(x)) .ToArray(); return View("RegisterBitsVerify", vm); }