// Задать выбранную зону как активную рабочую зону. private void View_InvokeSetActiveWorkspace(object sender, WorkspaceEventArgs e) { if (view.IsEditWorkspaceMode) { return; } try { var workspace = workspaceManager.RobotWorkspaces[e.Index]; var action = new Action(() => { workspaceManager.ActiveWorkspace = workspace; messageService.ShowMessage(string.Format("Рабочая зона «{0}» установлена в качестве активной", workspace.Name)); }); if (workspaceManager.IsRobotInWorkspace(workspace)) { action(); return; } if (messageService.ShowExclamation("Робот находится вне выбранной рабочей зоны. Переместить плечи робота в рабочую зону ?") == UserResponse.OK) { movement.MoveRobotByPath(workspaceManager.GetLeversPositionToWorkspaceRange(workspace), action); } } catch (Exception ex) { messageService.ShowError(ex.Message); } }