public Task <bool> ProcessConfirmationAsync(ConfirmationItem confirmation, ConfirmationAction action) { return(Task.Run(() => { confirmation.Status = ConfirmationStatus.Processing; bool result = false; var actionResult = ConfirmationActionResult.None; if (action == ConfirmationAction.Accept) { result = App.SteamGuardHelper.CurrentSteamGuard.AcceptConfirmation(confirmation); confirmation.Status = result ? ConfirmationStatus.Accepted : ConfirmationStatus.Unknow; actionResult = result ? ConfirmationActionResult.Accept : ConfirmationActionResult.Error; } else if (action == ConfirmationAction.Decline) { result = App.SteamGuardHelper.CurrentSteamGuard.DenyConfirmation(confirmation); confirmation.Status = result ? ConfirmationStatus.Declined : ConfirmationStatus.Unknow; actionResult = result ? ConfirmationActionResult.Decline : ConfirmationActionResult.Error; } App.Logger.Info($"Authenticator.ProcessConfirmationAsync {action.ToString()}: {confirmation}\t" + (result == true ? "[success]" : "[error]")); App.History.Write($"{confirmation} {action.ToString()}: {result}"); ConfirmationEvent.Invoke(this, new AuthenticatorConfirmationEventArgs(actionResult, confirmation)); return result; })); }
private async Task <bool> GetConfitmations() { bool success = false; int counter = 0; bool isNeedRepeat; do { isNeedRepeat = false; if (++counter > 3) { App.Logger.Trace($"Authenticator.GetConfitmations Counter: [{counter}]"); break; } try { Confirmation[] confirmations = await App.SteamGuardHelper.CurrentSteamGuard.FetchConfirmationsAsync(); App.Logger.Info($"Authenticator.GetConfitmations Fetched: {confirmations.Length}"); foreach (var confirmation in confirmations) { ConfirmationItem item = new ConfirmationItem(confirmation) { Number = ConfirmationsSource.Count + 1 }; if (!ConfirmationsSource.Contains(item)) { ConfirmationsSource.Add(item); ConfirmationEvent.Invoke(this, new AuthenticatorConfirmationEventArgs(ConfirmationActionResult.Added, item)); } App.Logger.Trace($"Authenticator.GetConfitmations Added Confirmation: {item}"); } success = true; } catch (SteamGuardAccount.WGTokenInvalidException ex) { App.Logger.Warn($"Authenticator.GetConfitmations WGTokenInvalidException: {ex.Message}"); isNeedRepeat = await RefreshSession(); } catch (SteamGuardAccount.WGTokenExpiredException ex) { App.Logger.Warn($"Authenticator.GetConfitmations WGTokenExpiredException: {ex.Message}"); isNeedRepeat = await RefreshSession(); } catch (WebException ex) { App.Logger.Error($"Authenticator.GetConfitmations WebException: {ex.Message}"); break; } catch (Exception ex) { App.Logger.Error($"Authenticator.GetConfitmations Exception: {ex.Message}"); break; } } while (isNeedRepeat); return(success); }
private List <ConfirmationItem> GetLineItemConfirmationItems(List <LineItem> input) { List <ConfirmationItem> items = new List <ConfirmationItem>(); ConfirmationItem item; foreach (LineItem info in input) { item = new ConfirmationItem(); item.LeftText = info.TimeKeeper; item.RightText = info.NetTotal; items.Add(item); } return(items); }
private List <ConfirmationItem> GetConfirmationItems(List <InvoiceModel> input) { List <ConfirmationItem> items = new List <ConfirmationItem>(); ConfirmationItem item; foreach (InvoiceModel info in input) { item = new ConfirmationItem(); item.LeftText = "Inv #" + info.InvoiceNumber; item.RightText = info.NetAmount; items.Add(item); } return(items); }
public AuthenticatorConfirmationEventArgs(ConfirmationActionResult action, ConfirmationItem item) { Action = action; Item = item; }