//common method for updating data in internal list and in list view table (graphical reprresentation) private ListViewPlayersList UpdateReadinessDataInList(ListViewPlayersList item, PlayersReadinessToPlayEventArgs e) { try { ActualizedDataOfPlayersReadiness playerData = e.ReadinessData.ReadinessDataList.Single(p => p.PlayerNumber == item.PlayerNumber); item.ReadyToPlay = playerData.IsReadyToPlay; return(item); } catch (Exception ex) { var logger = NLog.LogManager.GetCurrentClassLogger(); logger.Error("Couldn't find data of player with number: " + item.PlayerNumber + " in data received from Host. Exception" + ex.Message); return(item); } }
//event fired when got proper data from host private void DataPlaceholder_PlayersReadinesChanged(object sender, PlayersReadinessToPlayEventArgs e) { var logger = NLog.LogManager.GetCurrentClassLogger(); logger.Info("Actualizing players readiness to play game data received from host."); //actualizing data in list variable foreach (ListViewPlayersList item in playersList) { item.ReadyToPlay = UpdateReadinessDataInList(item, e).ReadyToPlay; } for (int i = 0; i < CurrentPlayersList.Items.Count; i++) { ActualizedDataOfPlayersReadiness newData = e.ReadinessData.ReadinessDataList.Single (p => p.PlayerNumber == (CurrentPlayersList.Items[i] as ListViewPlayersList).PlayerNumber); (CurrentPlayersList.Items[i] as ListViewPlayersList).ReadyToPlay = newData.IsReadyToPlay; } }
//obtaining response which is send to clients - current data of players //readiness to play the new game private ActualizedPlayersReadinessDataRequest ObtainPlayersReadinessData() { List <ActualizedDataOfPlayersReadiness> ReadinessList = new List <ActualizedDataOfPlayersReadiness>(); foreach (PlayerData item in MakaoEngineHostDataPlaceholders.PlayersData) { ActualizedDataOfPlayersReadiness singlePlayerData = new ActualizedDataOfPlayersReadiness() { PlayerName = item.PlayerName, PlayerNumber = item.PlayerNumber, PlayerID = item.PlayerID, IsReadyToPlay = item.ReadyToPlay, }; ReadinessList.Add(singlePlayerData); } ActualizedPlayersReadinessDataRequest response = new ActualizedPlayersReadinessDataRequest() { ReadinessDataList = ReadinessList, }; return(response); }