public void Initialize(ViewRequest viewRequest)
        {
            RefreshTaskList();

            Shell.AddGlobalCommand("File", "Refresh",
                                   "Shell.RefreshCommand", this)
            .SetHotKey(ModifierKeys.None, Key.F5);

            if (Shell.Role == ServiceUserRole.Editor)
            {
                Shell.AddGlobalCommand("Edit", "New task",
                                       "Shell.CreateTaskCommand", this)
                .SetHotKey(ModifierKeys.Control, Key.T);

                Shell.AddGlobalCommand("Edit", "New operation template",
                                       "Shell.CreateOperTemplateCommand", this)
                .SetHotKey(ModifierKeys.Control, Key.O);

                Shell.AddGlobalCommand("Edit", "New schedule",
                                       "Shell.CreateScheduleCommand", this)
                .SetHotKey(ModifierKeys.Control, Key.H);

                Shell.AddVMCommand("Edit", "Change task",
                                   "EditTaskCommand", this);

                Shell.AddVMCommand("File", "Delete",
                                   "DeleteCommand", this)
                .SetHotKey(ModifierKeys.None, Key.Delete);
            }

            if (Shell.Role == ServiceUserRole.Viewer)
            {
                Shell.AddVMCommand("View", "View task",
                                   "EditTaskCommand", this);
            }

            this.WhenAnyObservable(tmvm => tmvm.cachedService.Tasks.CountChanged)
            .Subscribe(_ => RefreshTaskList());
        }