Example #1
0
        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;
            }));
        }
Example #2
0
        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);
        }
Example #3
0
        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);
        }
Example #4
0
        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);
        }
Example #5
0
 public AuthenticatorConfirmationEventArgs(ConfirmationActionResult action, ConfirmationItem item)
 {
     Action = action;
     Item   = item;
 }