public MainWindow(IViewModel <MainWindowViewModel> model, LocLocalizer localizer, IMainWindowCoordinator mainWindowCoordinator, IDialogCoordinator coordinator, ProjectFileWorkspace workspace, CommonUIFramework framework, IOperationManager operationManager) : base(model) { _localizer = localizer; _mainWindowCoordinator = mainWindowCoordinator; _coordinator = coordinator; _workspace = workspace; _framework = framework; InitializeComponent(); var diag = (IDialogCoordinatorUIEvents)_coordinator; diag.ShowDialogEvent += o => this.ShowDialog(o); diag.HideDialogEvent += () => Dialogs.CurrentSession?.Close(); _mainWindowCoordinator.TitleChanged += () => Dispatcher.BeginInvoke(new Action(MainWindowCoordinatorOnTitleChanged)); _mainWindowCoordinator.IsBusyChanged += IsBusyChanged; Closing += OnClosing; Closed += async(_, _) => { SaveLayout(); Shutdown?.Invoke(this, EventArgs.Empty); await Task.Delay(TimeSpan.FromSeconds(60)); Process.GetCurrentProcess().Kill(false); }; operationManager.OperationFailed .ObserveOnDispatcher() .Subscribe(f => { Snackbar.MessageQueue ??= new SnackbarMessageQueue(TimeSpan.FromSeconds(5)); Snackbar.MessageQueue.Enqueue($"{f.Status ?? " / "}"); }); }
public DialogCoordinator(CommonUIFramework framework) => _framework = framework;