public static WpfHostingWinForm CreateVerificationProgressForm(
            [NotNull] IQualityVerificationProgressTracker progressTracker,
            [NotNull] Func <Task <ServiceCallStatus> > verificationAction,
            [CanBeNull] Action <QualityVerification> showReportAction,
            [CanBeNull] Action <IQualityVerificationResult> saveAction,
            [CanBeNull] string title)
        {
            var qaProgressViewmodel =
                new VerificationProgressViewModel
            {
                ProgressTracker    = progressTracker,
                VerificationAction = verificationAction,
                ShowReportAction   = showReportAction,
                SaveAction         = saveAction
            };

            VerificationProgressWpfControl progressControl = new VerificationProgressWpfControl();

            progressControl.SetDataSource(qaProgressViewmodel);

            var progressForm = new WpfHostingWinForm(progressControl);

            progressForm.FixedHeight = true;

            progressForm.Text = title;

            return(progressForm);
        }
        public static WpfHostingWinForm CreateVerificationProgressForm(
            [NotNull] IQualityVerificationProgressTracker progressTracker,
            [NotNull] Func <Task <ServiceCallStatus> > verificationAction,
            [CanBeNull] Action <QualityVerification> showReportAction,
            [CanBeNull] Action <IQualityVerificationResult, ErrorDeletionInPerimeter, bool> saveAction,
            [CanBeNull] ICommand openErrorWorklist,
            [CanBeNull] ICommand zoomToPerimeter,
            [CanBeNull] Action <IList <EnvelopeXY> > flashTileProgressAction,
            [CanBeNull] string title)
        {
            var qaProgressViewmodel =
                new VerificationProgressViewModel
            {
                ProgressTracker        = progressTracker,
                VerificationAction     = verificationAction,
                ShowReportAction       = showReportAction,
                SaveAction             = saveAction,
                OpenWorkListCommand    = openErrorWorklist,
                ZoomToPerimeterCommand = zoomToPerimeter,
                FlashProgressAction    = flashTileProgressAction
            };

            VerificationProgressWpfControl progressControl = new VerificationProgressWpfControl();

            progressControl.SetDataSource(qaProgressViewmodel);

            var progressForm = new WpfHostingWinForm(progressControl);

            progressForm.FixedHeight = true;

            progressForm.Text = title;

            return(progressForm);
        }