internal NepAppUIManagerDialogController(ProgressIndicatorDialog openedDialog, Func <Task> callback)
            {
                if (!NepApp.UI.Overlay.IsOverlayedDialogVisible)
                {
                    throw new InvalidOperationException();
                }

                dialog         = openedDialog;
                endingCallback = callback;
            }
        public async Task <NepAppUIManagerDialogController> ShowProgressDialogAsync(string title, string message)
        {
            await BeginShowingDialogAsync();

            inlineFrame.Width           = double.NaN;
            inlineFrame.Height          = double.NaN;
            inlineFrame.BorderThickness = new Thickness(0);

            //no-mvvm
            var dialog = new ProgressIndicatorDialog();

            dialog.SetTitleAndMessage(title, message);
            inlineFrame.Content = dialog;

            return(new NepAppUIManagerDialogController(dialog, async() =>
            {
                if (NepApp.UI.Overlay.IsOverlayedDialogVisible)
                {
                    await EndShowingDialogAsync();
                }
            }));
        }