public async Task <Models.Game> GetGameAsync(int gameId) { using (var adminService = new AdminServiceClient(new BasicHttpBinding(), new EndpointAddress(ConnectionData.Url))) { int sequenceNumber = SequenceNumber; var getGameDetailsReq = new GetGameDetailsReq { Auth = new ReqAuth { ClientName = ConnectionData.Username, TeamName = ConnectionData.TeamName, SessionId = _sessionId, SequenceNumber = sequenceNumber, AuthCode = GetAuthCode(string.Format("{0}:{1}:{2}:{3}{4}", ConnectionData.TeamName, ConnectionData.Username, _sessionId, sequenceNumber, ConnectionData.Password)), }, GameId = gameId, }; _stopwatch.Start(); var getGameDetailsResp = await adminService.GetGameDetailsAsync(getGameDetailsReq); _stopwatch.Stop(); LastCallTime = _stopwatch.ElapsedMilliseconds; _stopwatch.Reset(); if (getGameDetailsResp.Status != "OK") { throw new Exception(getGameDetailsResp.Message); } return(new Models.Game { GameId = getGameDetailsResp.GameDetails.GameId, Label = getGameDetailsResp.GameDetails.Label, State = getGameDetailsResp.GameDetails.State, Players = getGameDetailsResp.GameDetails.Players.Select(p => new Player { GameId = p.GameId, Name = p.Name, Team = p.Team, PlayerId = p.PlayerId, }) }); } }
private void GetGameDetailsImpl(GetGameDetailsReq req, GetGameDetailsResp resp) { GameDetails gameDetails = Server.GameManager.GetGameDetails(req.GameId, Server.TeamRegistry.GetTeam(req.Auth.TeamName)); resp.GameDetails = new EnGameDetails(gameDetails); }
public GetGameDetailsResp GetGameDetails(GetGameDetailsReq req) { return(HandleServiceCall(req, new GetGameDetailsResp(), GetGameDetailsImpl)); }