Exemplo n.º 1
0
        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);
            }
        }
Exemplo n.º 2
0
        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();
                    }
                }
            }
        }