public static Session StartWaitDialog(this IWaitDialogFactory factory, string waitCatption, WaitDialogProgressData initialProgress = null, TimeSpan delayToShow = default) { var instance = factory.CreateInstance(); var cancellationSource = new CancellationTokenSource(); var progress = new ProgressAdapter(instance, cancellationSource); var callback = new CancellationCallback(cancellationSource); instance.StartWaitDialogWithCallback(waitCatption, initialProgress?.WaitMessage, initialProgress?.ProgressText, initialProgress?.StatusBarText, initialProgress != null && initialProgress.IsCancelable, (int)delayToShow.TotalSeconds, true, initialProgress?.TotalSteps ?? 0, initialProgress?.CurrentStep ?? 0, callback); return(new Session(instance, progress, cancellationSource.Token, callback)); }
/// <summary> /// Starts the wait dialog and executes the task. /// </summary> /// <param name="factory">The factory.</param> /// <param name="asyncFunc">The asynchronous function.</param> /// <param name="waitCaption">The caption of the dialog.</param> /// <param name="initialProgress">The initial progress.</param> /// <param name="delayToShowDialog">The delay to show the dialog.</param> public static void StartWaitDialog(this IWaitDialogFactory factory, Func <IProgress <WaitDialogProgressData>, Task> asyncFunc, string waitCaption, WaitDialogProgressData initialProgress = null, TimeSpan delayToShowDialog = default(TimeSpan)) { var instance = factory.CreateInstance(); var session = CreateSession(instance); instance.SetFunction(() => asyncFunc(session.Progress)); instance.StartWaitDialogWithCallback( waitCaption, initialProgress?.WaitMessage, initialProgress?.ProgressText, initialProgress?.StatusBarText, initialProgress != null && initialProgress.IsCancelable, (int)delayToShowDialog.TotalSeconds, true, initialProgress?.TotalSteps ?? 0, initialProgress?.CurrentStep ?? 0, session.Callback); }
/// <summary> /// Creates the instance of an <see cref="IWaitDialog"/>. /// </summary> /// <param name="factory">The factory.</param> /// <returns>The instance of the <see cref="IWaitDialog"/></returns> public static IWaitDialog CreateInstance(this IWaitDialogFactory factory) { Validate.IsNotNull(factory, nameof(factory)); factory.CreateInstance(out var waitDialog); return(waitDialog); }