public IAsyncResult BeginStopMonitoringSession( AsyncCallback userCallback, object state) { SupervisorMonitoringChannel monitoringChannel = _monitoringChannel; if (monitoringChannel == null) { AsyncResultNoResult result = new AsyncResultNoResult(userCallback, state); result.SetAsCompleted(null, true); return(result); } _monitoringChannel = null; requestType request = _requestProcessor.CreateRequest(ContextChannelRequestType.StopMonitoring); request.terminatemonitoringsession = new terminatemonitoringsessionType(); request.terminatemonitoringsession.sessionId = monitoringChannel.SessionId; ProcessRequestAsyncResult requestAsyncResult = new ProcessRequestAsyncResult(request, _requestProcessor, Conversation, ApplicationId, userCallback, state); _requestProcessor.AddPendingRequest(request, requestAsyncResult); requestAsyncResult.Process(); return(requestAsyncResult); }
public void EndStopMonitoringSession(IAsyncResult result) { AsyncResultNoResult asyncResult = result as AsyncResultNoResult; if (asyncResult != null) { asyncResult.EndInvoke(); } else { throw new Exception("Invalid async result"); } }