//request from client (fired by client)
        CurrentPlayersListDataResponse IMakaoGameHostService.GetCurrentPlayersInTheRoomData()
        {
            List <PlayersInRoomData> responseList = new List <PlayersInRoomData>();

            foreach (PlayerData item in MakaoEngineHostDataPlaceholders.PlayersData)
            {
                PlayersInRoomData onePlayerData = new PlayersInRoomData()
                {
                    PlayerName        = item.PlayerName,
                    PlayedGames       = item.PlayedGames,
                    PlayedAndWonGames = item.PlayedAndWonGames,
                    Endpoint          = item.PlayerEndpoint,
                    IsHost            = item.IsHostPlayer,
                    PlayerID          = item.PlayerID,
                    PlayerNumber      = item.PlayerNumber,
                    ReadyToPlay       = item.ReadyToPlay,
                };
                responseList.Add(onePlayerData);
            }

            CurrentPlayersListDataResponse response = new CurrentPlayersListDataResponse
            {
                CurrentPLayersData = responseList,
                RoomIsFull         = MakaoEngineHostDataPlaceholders.CheckIfRoomIsFull(),
            };

            return(response);
        }
예제 #2
0
        //method that gets data from host
        private CurrentPlayersListDataResponse GetCurrentPlayersDataFromHost()
        {
            IMakaoGameHostService          proxy    = factory.CreateChannel();
            CurrentPlayersListDataResponse response = proxy.GetCurrentPlayersInTheRoomData();

            return(response);
        }
예제 #3
0
        //provide list of playersNumbers
        private List <int> GetPlayersNumbersList(CurrentPlayersListDataResponse response)
        {
            List <int> returnList = new List <int>();

            foreach (var item in response.CurrentPLayersData)
            {
                int newNumber = item.PlayerNumber;
                returnList.Add(newNumber);
            }
            return(returnList);
        }
예제 #4
0
        //displaying data aboout all users in the list view
        private void DisplayAllUsersDataInListView(CurrentPlayersListDataResponse response)
        {
            CurrentPlayersList.Items.Clear();
            playersList.Clear();

            foreach (PlayersInRoomData item in response.CurrentPLayersData)
            {
                AddPlayerToList(GetAvatarFullName(item.PlayerNumber), item.PlayerName, item.PlayedGames, item.PlayedAndWonGames,
                                CheckIfPassedPlayerDataIsThisPlayersData(item), item.PlayerNumber, item.ReadyToPlay, item.PlayerID);
            }
            CheckIfPlayersAmountIsProper();
        }
예제 #5
0
        //method for implementation of obtaining players data from Host
        private void ObtainCurrentRoomPlayersDataFromhost(Uri endpoint)
        {
            var logger = NLog.LogManager.GetCurrentClassLogger();

            logger.Info("Started obtaining players in room data from host.");

            StartNewFactoryChannel(endpoint);
            CurrentPlayersListDataResponse response = GetCurrentPlayersDataFromHost();
            List <int> numbersList = GetPlayersNumbersList(response);

            DownloadPLayersAvatars(numbersList);
            SynchCont.Post(_ => DisplayAllUsersDataInListView(response), null);

            //event for enabling the menus in main window
            if (!response.RoomIsFull)
            {
                OnChangeAvailabilityOfMenus();
                SynchCont.Post(_ => LeaveTheRoomButton.IsEnabled = true, null);
            }
        }