예제 #1
0
        public async Task <PvPStatus> LoadGames()
        {
            try
            {
                var result = await _client.GetAsync(_urlHelper.GetListGamesUrl(_baseUrl));

                result.EnsureSuccessStatusCode();
                var info = JsonConvert.DeserializeObject <PvPGameModel[]>(await result.Content.ReadAsStringAsync());

                var status = new PvPStatus()
                {
                    Connected = false, GameId = "?", OpenGames = info
                };


                return(status);
            }
            catch (Exception ex)
            {
                return(new PvPStatus()
                {
                    Connected = false, GameId = ex.GetType().Name + ": " + ex.Message, Error = ex
                });
            }
        }
예제 #2
0
        public async Task <PvPStatus> Connect(String url, bool useFunction, JoinRequest joinRequest, HttpClient client, GameService service)
        {
            try
            {
                _service = service;
                CreateNetworkHelper(url, useFunction, client);

                await _networkHelper.ConnectToSignalRHub(service, this, joinRequest);

                int playerId;

                _status = new PvPStatus()
                {
                    Connected = true, GameId = joinRequest.GameId
                };

                await _networkHelper.JoinGameOnServer(joinRequest);

                return(_status);
            }
            catch (Exception ex)
            {
                if (ex.Message == "TypeError: Failed to fetch")
                {
                    _status = new PvPStatus()
                    {
                        Connected = false, GameId = ex.GetType().Name + ": CORS failed - " + ex.Message, Error = ex
                    };
                }
                else
                {
                    _status = new PvPStatus()
                    {
                        Connected = false, GameId = ex.GetType().Name + ": " + ex.Message, Error = ex
                    };
                }
                return(_status);
            }
        }