public override void RestoreCompletedTransactionsFinished(SKPaymentQueue queue)
        {
            // This is called after all restored transactions have hit UpdatedTransactions
            // at this point we are done with the restore request so let's fire up the event
            var rt = restoredTransactions.ToArray();

            // Clear out the list of incoming restore transactions for future requests
            restoredTransactions.Clear();

            TransactionsRestored?.Invoke(rt);
        }
        public override void RestoreCompletedTransactionsFinished(SKPaymentQueue queue)
        {
            if (restoredTransactions == null)
            {
                return;
            }

            // This is called after all restored transactions have hit UpdatedTransactions
            // at this point we are done with the restore request so let's fire up the event
            var allTransactions = restoredTransactions.ToArray();

            // Clear out the list of incoming restore transactions for future requests
            restoredTransactions.Clear();

            TransactionsRestored?.Invoke(allTransactions);

            foreach (var transaction in allTransactions)
            {
                SKPaymentQueue.DefaultQueue.FinishTransaction(transaction);
            }
        }
 // Failure, just fire with null
 public override void RestoreCompletedTransactionsFailedWithError(SKPaymentQueue queue, NSError error) =>
 TransactionsRestored?.Invoke(null);
 public override void RestoreCompletedTransactionsFailedWithError(SKPaymentQueue queue, Foundation.NSError error)
 {
     // Failure, just fire with null
     TransactionsRestored?.Invoke(null);
 }