public static SvnAuthProviderObject GetPromptProvider( SimplePrompt promptFunc, IntPtr promptBaton, int retryLimit, AprPool pool) { IntPtr authObj; SvnDelegate auth = new SvnDelegate(promptFunc); Debug.Write(String.Format("svn_client_get_simple_prompt_provider([callback:{0}],{1:X},{2},{3})...", promptFunc.Method.Name, promptBaton.ToInt32(), retryLimit, pool)); Svn.svn_client_get_simple_prompt_provider(out authObj, (Svn.svn_auth_simple_prompt_func_t)auth.Wrapper, promptBaton, retryLimit, pool); Debug.WriteLine(String.Format("Done({0:X})", authObj.ToInt32())); return(new SvnAuthProviderObject(authObj, auth)); }
private void OnPromptForSimpleResponse(object sender, SimplePrompt e) { switch (e.Button) { case MessageBoxButton.OK: case MessageBoxButton.OKCancel: e.Result = MessageBoxResult.OK; break; case MessageBoxButton.YesNoCancel: case MessageBoxButton.YesNo: e.Result = MessageBoxResult.Yes; break; default: throw new ArgumentOutOfRangeException(); } }
public void AskPlayers(Player playerTakingTurn, ICollection <Player> playersToAsk, ICollection <Card> selectedCards) { _selectedCards = selectedCards; PlayerTakingTurn = playerTakingTurn; _solver.Changes.Add(new SuggestionMade(DateTime.Now, playerTakingTurn, selectedCards)); var stopped = false; foreach (var player in playersToAsk) { var keepGoing = true; var valid = false; while (!valid) { try { keepGoing = GetSuggestionResponse(player, ref stopped); valid = true; } catch (GameException e) { var prompt = new SimplePrompt(e.Message, "Are you sure?", MessageBoxButton.YesNo, MessageBoxImage.Exclamation); PromptForSimpleResponse?.Invoke(this, prompt); valid = MessageBoxResult.Yes == prompt.Result; keepGoing = false; } } if (!keepGoing) { break; } } if (!stopped) { _solver.SuggestionLooped(playerTakingTurn, _selectedCards); } }
private void PromptForSimpleResponse(object sender, SimplePrompt e) { e.Result = MessageBox.Show(this, e.Message, e.Title, e.Button, e.Image); }
private bool GetSuggestionResponse(Player player, ref bool stopped) { if (ReferenceEquals(player, _solver.MyPlayer)) { var prompt = new SimplePrompt("Hit OK when done.", "Hit OK when done.", MessageBoxButton.OK, MessageBoxImage.None); PromptForSimpleResponse?.Invoke(this, prompt); if (player.Hand.Intersect(_selectedCards).Any()) { _solver.Changes.Add(new SuggestionResponse(DateTime.Now, player, "?")); stopped = true; return(false); } _solver.Changes.Add(new SuggestionResponse(DateTime.Now, player, null)); return(true); } _currentAsk = new SuggestionResponseViewModel(PlayerTakingTurn, player, _solver.MyPlayer.IsTakingTurn, _selectedCards); PromptForSuggestionResult?.Invoke(this, _currentAsk); var addedChange = false; try { switch (_currentAsk.Result) { case DialogResult.Cancel: return(false); case DialogResult.Skip: return(true); case DialogResult.Maybe: _solver.Changes.Add(new SuggestionResponse(DateTime.Now, player, "?")); addedChange = true; _solver.PlayerMightHaveCards(player, _selectedCards, $"{player.Name} showed a card to {PlayerTakingTurn.Name}."); stopped = true; return(false); case DialogResult.None: _solver.Changes.Add(new SuggestionResponse(DateTime.Now, player, null)); addedChange = true; _solver.PlayerDoesNotHaveCards(player, _selectedCards, $"{player.Name} said they didn't have this card when asked."); return(true); case DialogResult.Card: _solver.Changes.Add(new SuggestionResponse(DateTime.Now, player, _currentAsk.ResultCard.Name)); addedChange = true; _solver.PlayerHasCard(player, _currentAsk.ResultCard, $"{player.Name} showed me {_currentAsk.ResultCard}."); stopped = true; return(false); default: throw new ArgumentOutOfRangeException(); } } catch (GameException) { if (addedChange) { _solver.Changes.RemoveAt(_solver.Changes.Count - 1); } throw; } }
public static SvnAuthProviderObject GetPromptProvider( SimplePrompt promptFunc, IntPtr promptBaton, int retryLimit, AprPool pool) { IntPtr authObj; SvnDelegate auth = new SvnDelegate(promptFunc); Debug.Write(String.Format("svn_client_get_simple_prompt_provider([callback:{0}],{1:X},{2},{3})...",promptFunc.Method.Name,promptBaton.ToInt32(),retryLimit,pool)); Svn.svn_client_get_simple_prompt_provider(out authObj, (Svn.svn_auth_simple_prompt_func_t) auth.Wrapper, promptBaton, retryLimit, pool); Debug.WriteLine(String.Format("Done({0:X})",authObj.ToInt32())); return(new SvnAuthProviderObject(authObj,auth)); }