private async Task <Guid> CreateNewMazeAsync()
        {
            var request = new CreateMazeRequest
            {
                MazeWidth      = _mazeSettings.Width,
                MazeHeight     = _mazeSettings.Height,
                Difficulty     = _mazeSettings.Difficulty,
                MazePlayerName = _mazeSettings.PonyName
            };

            var createMazeResponse = await ApiClient.CreateMazeAsync(request);

            ThrowIfNotSuccess(createMazeResponse);

            return(createMazeResponse.Value.MazeId);
        }
Exemple #2
0
        public async Task <Guid> CreateMaze(int width, int height, string playerName, int difficulty)
        {
            var request = new CreateMazeRequest()
            {
                Difficulty = difficulty,
                Width      = width,
                Height     = height,
                PlayerName = playerName
            };

            using (var client = GetClient())
            {
                var content  = new StringContent(JObject.FromObject(request).ToString(), Encoding.UTF8, "application/json");
                var response = await client.PostAsync("pony-challenge/maze", content);

                var responseDataString = await response.Content.ReadAsStringAsync();

                if (response.IsSuccessStatusCode)
                {
                    try
                    {
                        var jObj          = JObject.Parse(responseDataString);
                        var serializedObj = jObj.ToObject <CreateMazeResponse>();
                        return(serializedObj.MazeId);
                    }
                    catch
                    {
                        throw new Exception("CreateMaze: Received invalid json data");
                    }
                }
                else
                {
                    throw new PonyClientException(responseDataString);
                }
            }
        }
Exemple #3
0
 public async Task <ApiResponse <CreateMazeModel> > CreateMazeAsync(CreateMazeRequest createMazeRequest)
 {
     return(await PostAsync <CreateMazeModel, CreateMazeRequest>(CreateMazeEndpoint, createMazeRequest));
 }