async void ShowNotification(DisplayMessageData obj, DisplayMessageNotificationViewModel content) { if (_core.TryGetUiManager(out IUiManager ui)) { ui.Notify(content); if (obj.AllowCloseAfter > 0) { content.Closable = false; var t = new Timer { Interval = obj.AllowCloseAfter * 1000 }; t.Elapsed += (ooo, eee) => { t.Stop(); t.Enabled = false; Application.Current.Dispatcher.BeginInvoke(new Action(() => { content.Closable = true; })); }; t.Start(); } if (obj.MaxDisplayTime != 0) { var t = new Timer(); t.Interval = obj.MaxDisplayTime * 1000; t.Elapsed += (ooo, eee) => { t.Stop(); t.Enabled = false; Application.Current.Dispatcher.BeginInvoke(new Action(() => { content.Close(); })); }; t.Start(); } await content.GetTask(); ui.Refrain(content); } }
void ShowMessage(DisplayMessageData obj, PopupViewModelBase <object> content) { if (_core.TryGetUiManager(out IUiManager ui)) { if (obj.StartInFullScreen) { ui.Navigate(content); if (!obj.AllowClose) { ui.EnableFullscreen(); } if (obj.AllowCloseAfter > 0) { var t = new Timer { Interval = obj.AllowCloseAfter * 1000 }; t.Elapsed += (ooo, eee) => { t.Stop(); t.Enabled = false; Application.Current.Dispatcher.BeginInvoke(new Action(() => { ui.DisableFullscreen(); })); }; t.Start(); } if (obj.MaxDisplayTime != 0) { var t = new Timer(); t.Interval = obj.MaxDisplayTime * 1000; t.Elapsed += (ooo, eee) => { t.Stop(); t.Enabled = false; Application.Current.Dispatcher.BeginInvoke(new Action(() => { if (ui.CurrentPage == content) { if (!obj.AllowClose && obj.AllowCloseAfter == 0) { ui.DisableFullscreen(); } ui.GoBack(); } })); }; t.Start(); } } else { var shownPopup = ui.ShowPopup(content, null, PopupType.Information, obj.AllowClose && obj.AllowCloseAfter == 0); if (obj.AllowCloseAfter > 0) { var t = new Timer { Interval = obj.AllowCloseAfter * 1000 }; t.Elapsed += (ooo, eee) => { t.Stop(); t.Enabled = false; Application.Current.Dispatcher.BeginInvoke(new Action(() => { content.Closable = true; })); }; t.Start(); } if (obj.MaxDisplayTime != 0) { var t = new Timer { Interval = obj.MaxDisplayTime * 1000 }; t.Elapsed += (ooo, eee) => { t.Stop(); t.Enabled = false; Application.Current.Dispatcher.BeginInvoke(new Action(() => { ui.HidePopup(content); })); }; t.Start(); } } } }