public static object ShowFinite(IMonitoredOperation monitoredOperation, string successMessage)
        {
            using (DeferredProgressBar form = new DeferredProgressBar())
            {
                form.OperationType = OperationType.StandardProgressBar;
                form.MonitoredOperation = monitoredOperation;

                if (form.ShowDialog() == DialogResult.OK)
                {
                    if (!string.IsNullOrEmpty(successMessage)) MessageBox.Show(successMessage, "Success", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    return form.SuccessObject;
                }
                else
                {
                    RemoteExceptionForm.ShowFailureModal(form.FailureObject);
                    return form.FailureObject;
                }
            }
        }
 public static object ShowIndefinite(DeferredObject deferred, string statusMessage, string successMessage, Interlace.ReactorUtilities.VoidDeferred.Failback failback)
 {
     using (DeferredProgressBar form = new DeferredProgressBar())
     {
         form.OperationType = OperationType.MarqueeProgressBar;
         form.StatusMessage = statusMessage;
         form.DeferredObject = deferred;
         if (form.ShowDialog() == DialogResult.OK)
         {
             if (!string.IsNullOrEmpty(successMessage)) MessageBox.Show(successMessage, "Success", MessageBoxButtons.OK, MessageBoxIcon.Information);
             return form.SuccessObject;
         }
         else
         {
             failback(form.FailureObject);
             return form.FailureObject;
         }
     }
 }
 public static Deferred<object> ChainIndefinite(DeferredObject deferred, string statusMessage)
 {
     using (DeferredProgressBar form = new DeferredProgressBar())
     {
         form.OperationType = OperationType.MarqueeProgressBar;
         form.StatusMessage = statusMessage;
         form.DeferredObject = deferred;
         if (form.ShowDialog() == DialogResult.OK)
         {
             return Deferred.Success(form.SuccessObject);
         }
         else
         {
             return Deferred.Failure<object>(form.FailureObject);
         }
     }
 }