public IEnumerable<ApiSleeve> GetAllSleeves() { if (_sleeveCache != null) return _sleeveCache; if (_lastGetTime >= DateTime.Now.AddMinutes(-1)) return _sleeveCache ?? new ApiSleeve[0]; try { _lastGetTime = DateTime.Now; var c = new Octgn.Site.Api.ApiClient(); var sleeves = c.GetAllSleeves(0, 100); if (sleeves.Sleeves == null || sleeves.Sleeves.Length == 0) { WindowManager.GrowlWindow.AddNotification(new ErrorNotification("There was a problem downloading the sleeve list from the web. Please check your internet settings.")); return new ApiSleeve[0]; } _sleeveCache = sleeves.Sleeves.ToArray(); return _sleeveCache; } catch (Exception e) { Log.Error("GetAllSleeves", e); } WindowManager.GrowlWindow.AddNotification(new ErrorNotification("There was a problem downloading the sleeve list from the web. Please check your internet settings.")); return new ApiSleeve[0]; }
public IEnumerable <ApiSleeve> GetAllSleeves() { if (_sleeveCache != null) { return(_sleeveCache); } if (_lastGetTime >= DateTime.Now.AddMinutes(-1)) { return(_sleeveCache ?? new ApiSleeve[0]); } try { _lastGetTime = DateTime.Now; var c = new Octgn.Site.Api.ApiClient(); var sleeves = c.GetAllSleeves(0, 100); if (sleeves.Sleeves == null || sleeves.Sleeves.Length == 0) { WindowManager.GrowlWindow.AddNotification(new ErrorNotification("There was a problem downloading the sleeve list from the web. Please check your internet settings.")); return(new ApiSleeve[0]); } _sleeveCache = sleeves.Sleeves.ToArray(); return(_sleeveCache); } catch (Exception e) { Log.Error("GetAllSleeves", e); } WindowManager.GrowlWindow.AddNotification(new ErrorNotification("There was a problem downloading the sleeve list from the web. Please check your internet settings.")); return(new ApiSleeve[0]); }
public IEnumerable <ApiSleeve> GetUserSleeves() { try { var c = new Octgn.Site.Api.ApiClient(); AuthorizedResponse <IEnumerable <ApiSleeve> > ownedSleeves; ownedSleeves = Program.LobbyClient.IsConnected == false?c.GetUserSleeves(Prefs.Username, Prefs.Password.Decrypt()) : c.GetUserSleeves(Program.LobbyClient.Username, Program.LobbyClient.Password); if (ownedSleeves.Authorized == false) { Log.Warn("Could not download user sleeves, the account was not authorized."); return(new ApiSleeve[0]); } if (ownedSleeves == null || ownedSleeves.Response == null) { WindowManager.GrowlWindow.AddNotification(new ErrorNotification("There was a problem downloading the user sleeve list from the web. Please check your internet settings.")); return(new ApiSleeve[0]); } return(ownedSleeves.Response); } catch (Exception e) { Log.Error("GetUserSleeves", e); } WindowManager.GrowlWindow.AddNotification(new ErrorNotification("There was a problem downloading the user sleeve list from the web. Please check your internet settings.")); return(new ApiSleeve[0]); }
private void ButtonJoinClick(object sender, RoutedEventArgs e) { if (WindowManager.PlayWindow != null) { MessageBox.Show( "You are currently in a game or game lobby. Please leave before you join game.", "OCTGN", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } var hostedgame = ListViewGameList.SelectedItem as HostedGameViewModel; if (hostedgame == null) { return; } if (hostedgame.Status == EHostedGame.GameInProgress && hostedgame.Spectator == false) { TopMostMessageBox.Show( "You can't join a game in progress.", "Error", MessageBoxButton.OK, MessageBoxImage.Information); return; } if (hostedgame.GameSource == "Online") { var client = new Octgn.Site.Api.ApiClient(); if (!client.IsGameServerRunning(Program.LobbyClient.Username, Program.LobbyClient.Password)) { TopMostMessageBox.Show( "The game server is currently down. Please try again later.", "Error", MessageBoxButton.OK, MessageBoxImage.Information); return; } } var game = GameManager.Get().GetById(hostedgame.GameId); if (game == null) { TopMostMessageBox.Show("You don't currently have that game installed.", "Error", MessageBoxButton.OK, MessageBoxImage.Information); return; } var spectate = hostedgame.Status == EHostedGame.GameInProgress && hostedgame.Spectator == true; var task = new Task(() => this.StartJoinGame(hostedgame, game, spectate)); task.ContinueWith((t) => { this.Dispatcher.Invoke(new Action(() => this.FinishJoinGame(t))); }); BorderButtons.IsEnabled = false; task.Start(); }
private void StartJoinGame(HostedGameViewModel hostedGame, DataNew.Entities.Game game, bool spectate) { if (hostedGame.GameSource == "Online") { var client = new Octgn.Site.Api.ApiClient(); if (!client.IsGameServerRunning(Program.LobbyClient.Username, Program.LobbyClient.Password)) { throw new UserMessageException("The game server is currently down. Please try again later."); } } Log.InfoFormat("Starting to join a game {0} {1}", hostedGame.GameId, hostedGame.Name); Program.IsHost = false; Program.IsMatchmaking = false; var password = ""; if (hostedGame.HasPassword) { Dispatcher.Invoke(new Action(() => { var dlg = new InputDlg("Password", "Please enter this games password", ""); password = dlg.GetString(); })); } var username = (Program.LobbyClient.IsConnected == false || Program.LobbyClient.Me == null || Program.LobbyClient.Me.UserName == null) ? Prefs.Nickname : Program.LobbyClient.Me.UserName; Program.GameEngine = new GameEngine(game, username, spectate, password); Program.CurrentOnlineGameName = hostedGame.Name; IPAddress hostAddress = hostedGame.IPAddress; if (hostAddress == null) { Log.WarnFormat("Dns Error, couldn't resolve {0}", AppConfig.GameServerPath); throw new UserMessageException("There was a problem with your DNS. Please try again."); } try { Log.InfoFormat("Creating client for {0}:{1}", hostAddress, hostedGame.Port); Program.Client = new ClientSocket(hostAddress, hostedGame.Port); Log.InfoFormat("Connecting client for {0}:{1}", hostAddress, hostedGame.Port); Program.Client.Connect(); } catch (Exception e) { Log.Warn("Start join game error ", e); throw new UserMessageException("Could not connect. Please try again."); } }
public void Load(User user) { var client = new Octgn.Site.Api.ApiClient(); if (user == null || user.UserName == null) { return; } var au = client.UsersFromUsername(new[] { user.UserName }).FirstOrDefault(); if (au == null) { return; } Load(au); }
private void ChangeIconClick(object sender, RoutedEventArgs e) { if ((SubscriptionModule.Get().IsSubscribed ?? false) == false) { TopMostMessageBox.Show( "You must be subscribed to set your icon", "Error", MessageBoxButton.OK, MessageBoxImage.Information); return; } var fd = new OpenFileDialog(); fd.Filter = "All Images|*.BMP;*.JPG;*.JPEG;*.PNG|BMP Files: (*.BMP)|*.BMP|JPEG Files: (*.JPG;*.JPEG)|*.JPG;*.JPEG|PNG Files: (*.PNG)|*.PNG"; fd.CheckFileExists = true; if (!(bool)fd.ShowDialog()) { return; } if (!File.Exists(fd.FileName)) { return; } var finfo = new FileInfo(fd.FileName); try { var img = System.Drawing.Image.FromFile(fd.FileName); if (img.Width != 16 || img.Height != 16) { img = ResizeImage(img, new System.Drawing.Size(16, 16)); //throw new UserMessageException("Image must be exactly 16x16 in size."); } using (var imgStream = new MemoryStream()) { img.Save(imgStream, ImageFormat.Png); imgStream.Seek(0, SeekOrigin.Begin); var client = new Octgn.Site.Api.ApiClient(); var res = client.SetUserIcon( Program.LobbyClient.Username, Program.LobbyClient.Password, "png", imgStream); switch (res) { case UserIconSetResult.Ok: Task.Factory.StartNew(() => { Thread.Sleep(5000); this.OnLoaded(null, null); }); TopMostMessageBox.Show( "Your icon has been changed. It can take a few minutes for the change to take place.", "Change Icon", MessageBoxButton.OK, MessageBoxImage.Information); break; case UserIconSetResult.ImageSizeBad: throw new UserMessageException("Image must be exactly 16x16 in size."); case UserIconSetResult.NotSubscribed: throw new UserMessageException("You must be subscribed to do that."); case UserIconSetResult.CredentialsError: throw new UserMessageException( "Incorrect username/password. try exiting OCTGN and reloading it."); default: throw new UserMessageException( "There was an error uploading your icon. Please try again later."); } } } catch (UserMessageException ex) { TopMostMessageBox.Show(ex.Message, "Change Icon Error", MessageBoxButton.OK, MessageBoxImage.Warning); Log.Warn("ChangeIconClick(UserMessageException)", ex); } catch (Exception ex) { TopMostMessageBox.Show( "There was an unknown error. Please try a different image.", "Change Icon Error", MessageBoxButton.OK, MessageBoxImage.Warning); Log.Warn("ChangeIconClick", ex); } }
public IEnumerable<ApiSleeve> GetUserSleeves() { try { var c = new Octgn.Site.Api.ApiClient(); AuthorizedResponse<IEnumerable<ApiSleeve>> ownedSleeves; ownedSleeves = Program.LobbyClient.IsConnected == false ? c.GetUserSleeves(Prefs.Username, Prefs.Password.Decrypt()) : c.GetUserSleeves(Program.LobbyClient.Username, Program.LobbyClient.Password); if (ownedSleeves.Authorized == false) { Log.Warn("Could not download user sleeves, the account was not authorized."); return new ApiSleeve[0]; } if (ownedSleeves == null || ownedSleeves.Response == null) { WindowManager.GrowlWindow.AddNotification(new ErrorNotification("There was a problem downloading the user sleeve list from the web. Please check your internet settings.")); return new ApiSleeve[0]; } return ownedSleeves.Response; } catch (Exception e) { Log.Error("GetUserSleeves", e); } WindowManager.GrowlWindow.AddNotification(new ErrorNotification("There was a problem downloading the user sleeve list from the web. Please check your internet settings.")); return new ApiSleeve[0]; }
private void ChangeIconClick(object sender, RoutedEventArgs e) { if ((SubscriptionModule.Get().IsSubscribed ?? false) == false) { TopMostMessageBox.Show( "You must be subscribed to set your icon", "Error", MessageBoxButton.OK, MessageBoxImage.Information); return; } var fd = new OpenFileDialog(); fd.Filter = "All Images|*.BMP;*.JPG;*.JPEG;*.PNG|BMP Files: (*.BMP)|*.BMP|JPEG Files: (*.JPG;*.JPEG)|*.JPG;*.JPEG|PNG Files: (*.PNG)|*.PNG"; fd.CheckFileExists = true; if (!(bool)fd.ShowDialog()) return; if (!File.Exists(fd.FileName)) return; var finfo = new FileInfo(fd.FileName); try { var img = System.Drawing.Image.FromFile(fd.FileName); if (img.Width != 16 || img.Height != 16) { img = ResizeImage(img, new System.Drawing.Size(16, 16)); //throw new UserMessageException("Image must be exactly 16x16 in size."); } using (var imgStream = new MemoryStream()) { img.Save(imgStream, ImageFormat.Png); imgStream.Seek(0, SeekOrigin.Begin); var client = new Octgn.Site.Api.ApiClient(); var res = client.SetUserIcon( Program.LobbyClient.Username, Program.LobbyClient.Password, "png", imgStream); switch (res) { case UserIconSetResult.Ok: Task.Factory.StartNew(() => { Thread.Sleep(5000); this.OnLoaded(null, null); }); TopMostMessageBox.Show( "Your icon has been changed. It can take a few minutes for the change to take place.", "Change Icon", MessageBoxButton.OK, MessageBoxImage.Information); break; case UserIconSetResult.ImageSizeBad: throw new UserMessageException("Image must be exactly 16x16 in size."); case UserIconSetResult.NotSubscribed: throw new UserMessageException("You must be subscribed to do that."); case UserIconSetResult.CredentialsError: throw new UserMessageException( "Incorrect username/password. try exiting OCTGN and reloading it."); default: throw new UserMessageException( "There was an error uploading your icon. Please try again later."); } } } catch (UserMessageException ex) { TopMostMessageBox.Show(ex.Message, "Change Icon Error", MessageBoxButton.OK, MessageBoxImage.Warning); Log.Warn("ChangeIconClick(UserMessageException)", ex); } catch (Exception ex) { TopMostMessageBox.Show( "There was an unknown error. Please try a different image.", "Change Icon Error", MessageBoxButton.OK, MessageBoxImage.Warning); Log.Warn("ChangeIconClick", ex); } }
public void Load(User user) { var client = new Octgn.Site.Api.ApiClient(); if (user == null || user.UserName == null) return; var au = client.UsersFromUsername(new[] { user.UserName }).FirstOrDefault(); if (au == null) return; Load(au); }
private void ButtonJoinClick(object sender, RoutedEventArgs e) { if (Program.IsInMatchmakingQueue) { MessageBox.Show( "You are currently matchmaking. Please leave before you join game.", "OCTGN", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } if (WindowManager.PlayWindow != null) { MessageBox.Show( "You are currently in a game or game lobby. Please leave before you join game.", "OCTGN", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } var hostedgame = ListViewGameList.SelectedItem as HostedGameViewModel; if (hostedgame == null) return; if (hostedgame.Status == EHostedGame.GameInProgress && hostedgame.Spectator == false) { TopMostMessageBox.Show( "You can't join a game in progress.", "Error", MessageBoxButton.OK, MessageBoxImage.Information); return; } if (hostedgame.GameSource == "Online") { var client = new Octgn.Site.Api.ApiClient(); if (!client.IsGameServerRunning(Program.LobbyClient.Username, Program.LobbyClient.Password)) { TopMostMessageBox.Show( "The game server is currently down. Please try again later.", "Error", MessageBoxButton.OK, MessageBoxImage.Information); return; } } var game = GameManager.Get().GetById(hostedgame.GameId); if (game == null) { TopMostMessageBox.Show("You don't currently have that game installed.", "Error", MessageBoxButton.OK, MessageBoxImage.Information); return; } var spectate = hostedgame.Status == EHostedGame.GameInProgress && hostedgame.Spectator == true; var task = new Task(() => this.StartJoinGame(hostedgame, game, spectate)); task.ContinueWith((t) => { this.Dispatcher.Invoke(new Action(() => this.FinishJoinGame(t))); }); BorderButtons.IsEnabled = false; task.Start(); }