//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; } }
//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); } }