Ejemplo n.º 1
0
        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");
        }
Ejemplo n.º 2
0
        //отправка игрокам комнаты информацию об обновлении комнаты
        private void NotifyPlayersAboutUpdateRooms(RoomObject room)
        {
            var responeForPlayers = new GetRoomInfoResponse();

            responeForPlayers.Players = room.GetAllPlayers();
            string packetResponseForPlayers = JsonConvert.SerializeObject(responeForPlayers);

            room.SendMessageToAllClients(packetResponseForPlayers);
        }
Ejemplo n.º 3
0
        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);
                });
            }
        }