void Open(ClientSessionUri uri) { var sessionKind = liveInspectionRadioButton.State == NSCellStateValue.On ? ClientSessionKind.LiveInspection : ClientSessionKind.Workbook; if (NSWorkspace.SharedWorkspace.OpenUrl(new NSUrl(uri.WithSessionKind(sessionKind)))) { View.Window.Close(); } }
public Agent Start(AgentStartOptions startOptions = null) { agentServer.Start(); Identity = Identity .WithHost(agentServer.BaseUri.Host) .WithPort((ushort)agentServer.BaseUri.Port); // Default to LiveInspection, and correct later if wrong. // Only inspection extensions respond to InspectorSupport.AgentStarted. ClientSessionUri = new ClientSessionUri( Identity.AgentType, startOptions?.ClientSessionKind ?? ClientSessionKind.LiveInspection, Identity.Host, Identity.Port); startOptions?.AgentStarted?.Invoke(ClientSessionUri); try { var identifyAgentRequest = GetIdentifyAgentRequest(); if (identifyAgentRequest != null) { ClientSessionUri = ClientSessionUri.WithSessionKind(ClientSessionKind.Workbook); WriteAgentIdentityAsync(identifyAgentRequest).ContinueWithOnMainThread(task => { if (task.IsFaulted) { Log.Error( TAG, $"{nameof (WriteAgentIdentityAsync)}", task.Exception); IdentificationFailure?.Invoke(this, EventArgs.Empty); } }); } } catch (Exception e) { Log.Error(TAG, e); IdentificationFailure?.Invoke(this, EventArgs.Empty); } Log.Info(TAG, $"{Identity.AgentType} '{Identity.ApplicationName}' " + $"is available for interaction: {ClientSessionUri}"); return(this); }