public void Excecute(ClientObject client, ServerObject server, RoomObject room, string packet = "") { Console.WriteLine("Get room info"); var response = new GetRoomInfoResponse(); response.TableQuestions = new System.Collections.ObjectModel.ReadOnlyDictionary <string, IEnumerable <Core.Objects.Question> >(room.Game.TableQuestions); foreach (var item in response.TableQuestions) { foreach (var q in item.Value) { Debug.Write((q.Id > 0 ? 1 : 0)); } Debug.WriteLine(""); } response.Players = room.GetAllPlayers(); response.Selector = room.Selector.Player; string packetResponse = JsonConvert.SerializeObject(response); room.SendMessageToDefiniteClient(packetResponse, client); Console.WriteLine("Get room successfully"); }
//отправка игрокам комнаты информацию об обновлении комнаты private void NotifyPlayersAboutUpdateRooms(RoomObject room) { var responeForPlayers = new GetRoomInfoResponse(); responeForPlayers.Players = room.GetAllPlayers(); string packetResponseForPlayers = JsonConvert.SerializeObject(responeForPlayers); room.SendMessageToAllClients(packetResponseForPlayers); }
public override void Execute(string packet) { GetRoomInfoResponse getRoomInfoResponse = JsonConvert.DeserializeObject <GetRoomInfoResponse>(packet); //GameViewModel (ClientObject.view as GameViewModel) = ClientObject.view as GameViewModel; /*Application.Current.Dispatcher.Invoke(() => * { * SetPage(new RoomsPage()); * });*/ (ClientObject.view as GameViewModel).Players = new ObservableCollection <Player>(getRoomInfoResponse.Players); if (getRoomInfoResponse.TableQuestions != null) { (ClientObject.view as GameViewModel).QuestionsTable = getRoomInfoResponse.TableQuestions; foreach (var item in getRoomInfoResponse.TableQuestions) { foreach (var i in item.Value) { Application.Current.Dispatcher.Invoke(() => { if (i.Id == 0) { (((((MainWindow)Application.Current.MainWindow).Frame.Content as Game).GameFrame.Content) as CategoriesAndQuestionsTable)?.HideButton(i.Id); } }); Debug.Write(i.Id != 0 ? 1 : 0); } Debug.WriteLine(""); } } if (getRoomInfoResponse.Selector != null) { bool b = ClientObject.user.Login == getRoomInfoResponse.Selector.Login; Application.Current.Dispatcher.Invoke(() => { (((((MainWindow)Application.Current.MainWindow).Frame.Content as Game).GameFrame.Content) as CategoriesAndQuestionsTable).ChangeButtonEProp(b); }); } }