コード例 #1
0
ファイル: ScriptApi.cs プロジェクト: IanWhalen/OCTGN
 public int? AskInteger(string question, int defaultValue)
 {
     return _engine.Invoke<int?>(() =>
                                     {
                                         var dlg = new InputDlg("Question", question,
                                                                defaultValue.ToString(
                                                                    CultureInfo.InvariantCulture));
                                         int result = dlg.GetPositiveInt();
                                         return dlg.DialogResult.GetValueOrDefault() ? result : (int?) null;
                                     });
 }
コード例 #2
0
ファイル: Dialogs.cs プロジェクト: rexperalta/OCTGN
 public static int InputInt(string title, string prompt, int n)
 {
     var dlg = new InputDlg(title, prompt, n.ToString(CultureInfo.InvariantCulture));
     return dlg.GetInteger();
 }
コード例 #3
0
ファイル: DeckManager.xaml.cs プロジェクト: boykathemad/OCTGN
 private void RenameFolderClick(object sender, RoutedEventArgs e)
 {
     if (SelectedList == null) return;
     var id = new InputDlg("Rename Folder", "Please enter a new folder name", "");
     var name = id.GetString();
     if (String.IsNullOrWhiteSpace(name)) return;
     try
     {
         var di = new DirectoryInfo(SelectedList.Path);
         var newPath = Path.Combine(di.Parent.FullName, name);
         Directory.Move(SelectedList.Path, newPath);
         var parent = SelectedList.Parent;
         parent.DeckLists.Remove(SelectedList);
         parent.DeckLists.Add(new DeckList(newPath, this.Dispatcher, parent));
     }
     catch (Exception ex)
     {
         Log.Warn("RenameFolderClick", ex);
         TopMostMessageBox.Show(
             "This folder name is invalid.",
             "Invalid",
             MessageBoxButton.OK,
             MessageBoxImage.Information);
     }
 }
コード例 #4
0
ファイル: CustomGames.xaml.cs プロジェクト: haslo/OCTGN
        private void StartJoinGame(HostedGameViewModel hostedGame, DataNew.Entities.Game game)
        {
            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;
            var password = "";
            if (hostedGame.HasPassword)
            {
                Dispatcher.Invoke(new Action(() =>
                    {
                        var dlg = new InputDlg("Password", "Please enter this games password", "");
                        password = dlg.GetString();
                    }));
            }
            Program.GameEngine = new GameEngine(game, Program.LobbyClient.Me.UserName,password);
            Program.CurrentOnlineGameName = hostedGame.Name;
            IPAddress hostAddress = Dns.GetHostAddresses(AppConfig.GameServerPath).FirstOrDefault();
            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 Client(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.");
            }
        }
コード例 #5
0
ファイル: DeckManager.xaml.cs プロジェクト: boykathemad/OCTGN
 private void NewFolderClick(object sender, RoutedEventArgs e)
 {
     if (SelectedList == null) return;
     var id = new InputDlg("Create a New Folder", "Please enter a folder name", "");
     var name = id.GetString();
     if (String.IsNullOrWhiteSpace(name)) return;
     try
     {
         var path = Path.Combine(SelectedList.Path, name);
         Directory.CreateDirectory(path);
         SelectedList.DeckLists.Add(new DeckList(path, this.Dispatcher, SelectedList, false));
     }
     catch (Exception ex)
     {
         Log.Warn("NewFolderClick", ex);
         TopMostMessageBox.Show(
             "This folder name is invalid.",
             "Invalid",
             MessageBoxButton.OK,
             MessageBoxImage.Information);
     }
 }