diff --git a/AfRApay.FTM/Program.cs b/AfRApay.FTM/Program.cs index 99c5b3a..6c03127 100644 --- a/AfRApay.FTM/Program.cs +++ b/AfRApay.FTM/Program.cs @@ -41,7 +41,8 @@ rootCommand.SetHandler((listReaders, webAddr) => { Console.Error.WriteLine("AfRApay.Web: {0}", httpClient.BaseAddress); Console.Error.WriteLine(); Console.Error.WriteLine("Hotkeys (case insensitive):"); - Console.Error.WriteLine(" [L] Link Card, instead of debiting it"); + Console.Error.WriteLine(" [L] Link card (initiate from web UI)"); + Console.Error.WriteLine(" [B] Balance query"); Console.Error.WriteLine(" [Esc] Cancel, return to default state"); Console.Error.WriteLine(); Console.Error.WriteLine("----------------------------------------"); @@ -76,6 +77,10 @@ rootCommand.SetHandler((listReaders, webAddr) => { state = TerminalState.Link; Console.Error.WriteLine("=> Mode: Link"); break; + case ConsoleKey.B: + state = TerminalState.Balance; + Console.Error.WriteLine("=> Mode: Balance Query"); + break; case ConsoleKey.Escape: state = TerminalState.Default; Console.Error.WriteLine("\b => Mode: Default"); // Hack: the \b eats the escape character. @@ -115,6 +120,9 @@ static async void HandleTap(IsoReader reader, HttpClient httpClient, TerminalSta case TerminalState.Link: await CallGet(httpClient, String.Format("/api/card/link?card={0}", Convert.ToHexString(uid))); break; + case TerminalState.Balance: + await CallGet(httpClient, String.Format("/api/card/balance?card={0}", Convert.ToHexString(uid))); + break; default: Console.Error.WriteLine("UNKNOWN TERMINAL STATE: {0}", state); break; @@ -137,4 +145,5 @@ static async Task CallGet(HttpClient client, string path) { enum TerminalState { Default, Link, + Balance, };