private async void declineInvite(string lobbyInvitedTo) { string requestPath = Constants.SERVER_PATH + Constants.GAME_REFUSE_INVITE_PATH; try { dynamic values = new JObject(); values.username = ServerService.instance.username; values.lobbyName = lobbyInvitedTo; var content = JsonConvert.SerializeObject(values); var buffer = System.Text.Encoding.UTF8.GetBytes(content); var byteContent = new ByteArrayContent(buffer); byteContent.Headers.ContentType = new MediaTypeHeaderValue("application/json"); var response = await ServerService.instance.client.PostAsync(requestPath, byteContent); if (!response.IsSuccessStatusCode) { var message = await response.Content.ReadAsStringAsync(); ErrorServerMessage serverMessage = JsonConvert.DeserializeObject <ErrorServerMessage>(message); ShowMessageBox(serverMessage.message); } } catch (Exception e) { ShowMessageBox(e.Message); } }
private async void GenerateQuickDraw(object x) { IsReqActive = false; var requestPath = Constants.SERVER_PATH + Constants.SUGGESTION_PATH; var response = await ServerService.instance.client.GetAsync(requestPath); if (!response.IsSuccessStatusCode) { var message = await response.Content.ReadAsStringAsync(); ErrorServerMessage serverMessage = JsonConvert.DeserializeObject <ErrorServerMessage>(message); ShowMessageBox(serverMessage.message); return; } JObject responseJson = JObject.Parse(await response.Content.ReadAsStringAsync()); if (!(responseJson.ContainsKey("drawPng") && responseJson.ContainsKey("drawPxl") && responseJson.ContainsKey("object"))) { ShowMessageBox("Error parsing server response"); return; } GeneratedImageStrokes = (JArray)responseJson.GetValue("drawPxl"); Base64ImageData = responseJson.GetValue("drawPng").ToString().Split(',')[1]; ObjectName = responseJson.GetValue("object").ToString(); IsReqActive = true; }
private async void ProcessChannelRequest(HttpResponseMessage response, ObservableCollection <MessageChannel> list, bool isSubbed) { Application.Current.Dispatcher.Invoke(delegate { list.Clear(); }); if (response.IsSuccessStatusCode) { JArray responseJson = JArray.Parse(await response.Content.ReadAsStringAsync()); foreach (JObject item in responseJson) { if (item.ContainsKey("id")) { Application.Current.Dispatcher.Invoke(delegate { list.Add(new MessageChannel(item.GetValue("id").ToString(), isSubbed, false)); }); } } } else if (!response.IsSuccessStatusCode) { var message = await response.Content.ReadAsStringAsync(); ErrorServerMessage serverMessage = JsonConvert.DeserializeObject <ErrorServerMessage>(message); ShowMessageBox(serverMessage.message); } }
private async Task processBotRequest() { string requestPath = Constants.SERVER_PATH + Constants.GAME_JOIN_PATH; try { dynamic values = new JObject(); values.username = SelectedBot; values.Add("isPrivate", false); values.lobbyName = this.LobbyName; values.password = ""; var content = JsonConvert.SerializeObject(values); var buffer = System.Text.Encoding.UTF8.GetBytes(content); var byteContent = new ByteArrayContent(buffer); byteContent.Headers.ContentType = new MediaTypeHeaderValue("application/json"); var response = await ServerService.instance.client.PostAsync(requestPath, byteContent); if (response.IsSuccessStatusCode) { Bots.Remove(SelectedBot); } if (!response.IsSuccessStatusCode) { var message = await response.Content.ReadAsStringAsync(); ErrorServerMessage serverMessage = JsonConvert.DeserializeObject <ErrorServerMessage>(message); ShowMessageBox(serverMessage.message); } } catch (Exception e) { ShowMessageBox(e.Message); } }
private async void UnsubChannel(object id) { string channelId = (string)id; string requestPath = Constants.SERVER_PATH + Constants.LEAVE_CHANNEL_PATH + "/" + ServerService.instance.username + "/" + channelId; try { var response = await ServerService.instance.client.DeleteAsync(requestPath); if (!response.IsSuccessStatusCode) { var message = await response.Content.ReadAsStringAsync(); ErrorServerMessage serverMessage = JsonConvert.DeserializeObject <ErrorServerMessage>(message); ShowMessageBox(serverMessage.message); return; } JObject responseJson = JObject.Parse(await response.Content.ReadAsStringAsync()); if (!(responseJson.ContainsKey("status") && responseJson.ContainsKey("message"))) { ShowMessageBox("Error parsing server response"); return; } if (responseJson.GetValue("status").ToString() == "200") { if (_selectedChannel.ID == channelId) { ChangeChannel(Constants.DEFAULT_CHANNEL); } MessageChannel leftChannel = new MessageChannel(channelId, false, false); _subChannels.Remove(_subChannels.SingleOrDefault(i => i.id == channelId)); await Application.Current.Dispatcher.Invoke(async delegate { NotSubChannels.Clear(); var notSubChannelReq = await ServerService.instance.client.GetAsync(Constants.SERVER_PATH + Constants.NOT_SUB_CHANNELS_PATH + "/" + ServerService.instance.username); ProcessChannelRequest(notSubChannelReq, NotSubChannels, false); }); } else { ShowMessageBox(responseJson.GetValue("message").ToString()); } } catch (Exception e) { ShowMessageBox(e.Message); } }
private async void fetchUsername() { App.Current.Dispatcher.Invoke(delegate { Usernames.Clear(); }); ObservableCollection <UserLobby> usernames = new ObservableCollection <UserLobby>(); try { var response = await ServerService.instance.client.GetAsync(Constants.SERVER_PATH + Constants.USERS_LOBBY_PATH + LobbyName); if (response.IsSuccessStatusCode) { StreamReader streamReader = new StreamReader(await response.Content.ReadAsStreamAsync()); String responseData = streamReader.ReadToEnd(); var myData = JsonConvert.DeserializeObject <List <String> >(responseData); foreach (var item in myData) { App.Current.Dispatcher.Invoke(delegate { usernames.Add(new UserLobby(item, item == ServerService.instance.username)); if (Bots.Contains(item)) { Bots.Remove(item); } }); } Usernames = usernames; string firstUser = findFirstNotBot(Usernames); IsGameMaster = ServerService.instance.username == firstUser; } else if (!response.IsSuccessStatusCode) { var message = await response.Content.ReadAsStringAsync(); ErrorServerMessage serverMessage = JsonConvert.DeserializeObject <ErrorServerMessage>(message); ShowMessageBox(serverMessage.message); } } catch (Exception e) { ShowMessageBox(e.Message); } }
private async void SubToChannel(object id) { string channelId = (string)id; string requestPath = Constants.SERVER_PATH + Constants.JOIN_CHANNEL_PATH + "/" + ServerService.instance.username + "/" + channelId; try { var response = await ServerService.instance.client.PutAsync(requestPath, new StringContent("")); if (!response.IsSuccessStatusCode) { var message = await response.Content.ReadAsStringAsync(); ErrorServerMessage serverMessage = JsonConvert.DeserializeObject <ErrorServerMessage>(message); ShowMessageBox(serverMessage.message); return; } JObject responseJson = JObject.Parse(await response.Content.ReadAsStringAsync()); if (!(responseJson.ContainsKey("status") && responseJson.ContainsKey("message"))) { ShowMessageBox("Error parsing server response"); return; } if (responseJson.GetValue("status").ToString() == "200") { Application.Current.Dispatcher.Invoke(delegate { _notSubChannels.Remove(_notSubChannels.SingleOrDefault(i => i.id == channelId)); _subChannels.Add(new MessageChannel(channelId, true, false)); ChangeChannel(channelId); }); } else { ShowMessageBox(responseJson.GetValue("message").ToString()); } } catch (Exception e) { ShowMessageBox(e.Message); } }
private async void getOnlineUsers() { OnlineUsers.Clear(); ObservableCollection <string> usernames = new ObservableCollection <string>(); try { var response = await ServerService.instance.client.GetAsync(Constants.SERVER_PATH + Constants.ONLINE_USERS_PATH + SearchString); if (response.IsSuccessStatusCode) { StreamReader streamReader = new StreamReader(await response.Content.ReadAsStreamAsync()); String responseData = streamReader.ReadToEnd(); var myData = JsonConvert.DeserializeObject <List <String> >(responseData); foreach (var item in myData) { App.Current.Dispatcher.Invoke(delegate { if (item != ServerService.instance.username) { usernames.Add(item); } }); } OnlineUsers = usernames; } else if (!response.IsSuccessStatusCode) { var message = await response.Content.ReadAsStringAsync(); ErrorServerMessage serverMessage = JsonConvert.DeserializeObject <ErrorServerMessage>(message); ShowMessageBox(serverMessage.message); } } catch (Exception e) { ShowMessageBox(e.Message); } }
private async Task startGame() { var response = await ServerService.instance.client.GetAsync(Constants.SERVER_PATH + Constants.START_GAME_PATH + LobbyName); try { if (response.IsSuccessStatusCode) { Mediator.Notify("GoToGameScreen", Mode); } else if (!response.IsSuccessStatusCode) { var message = await response.Content.ReadAsStringAsync(); ErrorServerMessage serverMessage = JsonConvert.DeserializeObject <ErrorServerMessage>(message); ShowMessageBox(serverMessage.message); } } catch (Exception e) { ShowMessageBox(e.Message); } }
private async void fetchProfile() { try { var response = await ServerService.instance.client.GetAsync(Constants.SERVER_PATH + Constants.USER_INFO_PATH + ServerService.instance.username); string responseString = await response.Content.ReadAsStringAsync(); if (response.IsSuccessStatusCode) { var data = JsonConvert.DeserializeObject <User>(responseString); ServerService.instance.user = data; } else if (!response.IsSuccessStatusCode) { ErrorServerMessage serverMessage = JsonConvert.DeserializeObject <ErrorServerMessage>(responseString); ShowMessageBox(serverMessage.message); } } catch (Exception) { ShowMessageBox("Failed to connect!"); } }
private async void joinLobbyFromInvite(string lobbyInvitedTo) { try { string requestPath = Constants.SERVER_PATH + Constants.GAME_JOIN_PATH; dynamic values = new JObject(); values.username = ServerService.instance.username; values.Add("isPrivate", false); values.lobbyName = lobbyInvitedTo; values.password = ""; var content = JsonConvert.SerializeObject(values); var buffer = System.Text.Encoding.UTF8.GetBytes(content); var byteContent = new ByteArrayContent(buffer); byteContent.Headers.ContentType = new MediaTypeHeaderValue("application/json"); var response = await ServerService.instance.client.PostAsync(requestPath, byteContent); if (response.IsSuccessStatusCode) { Dictionary <string, string> data = new Dictionary <string, string>(); data.Add("lobbyName", lobbyInvitedTo); data.Add("mode", Mode_Invited); Mediator.Notify("GoToLobbyScreen", data); } else if (!response.IsSuccessStatusCode) { var message = await response.Content.ReadAsStringAsync(); ErrorServerMessage serverMessage = JsonConvert.DeserializeObject <ErrorServerMessage>(message); ShowMessageBox(serverMessage.message); } } catch (Exception e) { ShowMessageBox(e.Message); } }