private void UpdateSaveTransfer(SaveTransfer saveTransfer, int progressPercentage)
        {
            if (progressPercentage > saveTransfer.ProgressPercentage)
            {
                saveTransfer.ProgressPercentage = progressPercentage;
            }

            if (progressPercentage >= 100)
            {
                Application.Current.Dispatcher.Invoke(() => CurrentSaveTransfers.Remove(saveTransfer));
            }
        }
        private void RetrySaveTransferAfterWait(SaveTransfer transfer, Action retryAction)
        {
            Task.Run(() =>
            {
                transfer.SecondsUntilRetry = SecondsToWaitBeforeTransferRetry;

                do
                {
                    Task.Delay(TimeSpan.FromSeconds(1)).Wait();
                    transfer.SecondsUntilRetry--;
                } while (transfer.SecondsUntilRetry > 0);
            })
            .ContinueWith(t => retryAction());
        }
 private static SaveTransfer CreateNewSaveTransfer(Game game)
 {
     var transfer = new SaveTransfer
     {
         Game = game,
         IconVisual = Application.Current.FindResource("TransfersIcon") as Visual
     };
     return transfer;
 }