//method for sending an avatar image to the host private void SendAvatarImageToHost(int playerNumber) { //sending data with image MemoryStream avatarMemoryStream = new MemoryStream(); byte[] bytes = File.ReadAllBytes(MainWindow.SavedData.CurrentAvatarPicture); avatarMemoryStream.Write(bytes, 0, bytes.Length); avatarMemoryStream.Position = 0; IMakaoGameHostService proxy = factory.CreateChannel(); //actual sending bool success = EngineHostHandler.SendAvatarToHost(avatarMemoryStream, playerNumber, proxy); if (!success) { var logger = NLog.LogManager.GetCurrentClassLogger(); logger.Error("Player's avatar not assigned in the host implementation"); MessageBox.Show("Twojego avatara nie udało się przesłać do hosta.", "Informacja", MessageBoxButton.OK, MessageBoxImage.Information); } else { var logger = NLog.LogManager.GetCurrentClassLogger(); logger.Info("Player's avatar successfully assigned in the host implementation"); //if successfully joined the game, fire the event - it sholud be //served in the main window. SynchCont.Post(_ => OnSuccessfullyJoinedToTheRoom(), null); } }
//method for starting the service private void CreateNewGameRoom(int localTimeout, int timeout, string serviceName, string password) { EngineHostHandler.EngineHostHandlerConstructor(localTimeout, timeout, serviceName, password, true); bool serviceStarted = EngineHostHandler.StartNewService(); if (!serviceStarted) { var logger = NLog.LogManager.GetCurrentClassLogger(); logger.Error("Makao Engine Host Service did not sratt."); MessageBox.Show("Nie udało się uruchomić usługi: " + serviceName, "Błąd", MessageBoxButton.OK, MessageBoxImage.Error); } else { bool setupDataSavedInHost = EngineHostHandler.SetGameSetup(); //if setup succesfully written to host if (setupDataSavedInHost) { //send request to WS to add host player to the room EngineHostHandler.AddHostPlayerToRoom(); } else { var logger = NLog.LogManager.GetCurrentClassLogger(); logger.Error("Saving game setup data to host failed"); MessageBox.Show("Nie udało się utworzyć gry z poprawnymi danymi.", "Błąd", MessageBoxButton.OK, MessageBoxImage.Error); } } }
//method thad downloads all images, for all players and saves as files private void DownloadPLayersAvatars(List <int> playersNumbers) { IMakaoGameHostService proxy = factory.CreateChannel(); foreach (int item in playersNumbers) { Stream responseStream = proxy.DownloadAvatarImage(item); EngineHostHandler.SaveAnImage(responseStream, item); } }