//method with obtaining data from host algorithm private void ObtainData(Uri endpoint) { StartNewFactoryChannel(endpoint); GetRoomDetailsWhenJoiningRoomResponse response = ObtainHostDetailedData(); SynchCont.Post(_ => DisplayObtainedDataInListView(response, endpoint), null); }
//retrieving data from host private GetRoomDetailsWhenJoiningRoomResponse ObtainHostDetailedData() { IMakaoGameHostService proxy = factory.CreateChannel(); GetRoomDetailsWhenJoiningRoomResponse response = proxy.GetHostRoomDetails(); return(response); }
//display data in the listViev private void DisplayObtainedDataInListView(GetRoomDetailsWhenJoiningRoomResponse response, Uri endpoint) { var logger = NLog.LogManager.GetCurrentClassLogger(); logger.Info("Obtained data from host: Name - " + response.HostName + ", Room capacity - " + response.RoomCapacity + ", Amount of players already in room - " + response.AmountOfPlayersInRoom + ", Endpoint - " + endpoint); AddNewEndpointItemToListView(response.HostName, response.RoomCapacity, response.AmountOfPlayersInRoom, endpoint); }
//read host information public static GetRoomDetailsWhenJoiningRoomResponse GetHostRoomDetails() { GetRoomDetailsWhenJoiningRoomResponse retVal = new GetRoomDetailsWhenJoiningRoomResponse(); try { retVal.HostName = currentGameSetup.HostName; retVal.AmountOfPlayersInRoom = CurrentPlayersData.Count; retVal.RoomCapacity = currentGameSetup.AmountOfPlayers; } catch (Exception ex) { var logger = NLog.LogManager.GetCurrentClassLogger(); logger.Info("Couldn not get room detailed data when user was searching for active hosts. Exception: " + ex.Message); retVal.HostName = "Not assigned"; retVal.AmountOfPlayersInRoom = 0; retVal.RoomCapacity = 0; }; return(retVal); }