示例#1
0
        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();
            }
        }
示例#2
0
        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);
        }