internal static Task CloseDialogAsync(BaseDialog dialog, DialogButton result) { if (dialog.Container == null) { throw new InvalidOperationException("The dialog is not in any container"); } if (dialog.StartToCloseDialog(result)) { return(dialog.Container.RemoveDialogAsync(dialog)); } return(null); }