public void Complete(SftpResponse response) { if (response is SftpStatusResponse) { this._statusAction(response as SftpStatusResponse); } else if (response is SftpAttrsResponse) { this._attrsAction(response as SftpAttrsResponse); } else if (response is SftpDataResponse) { this._dataAction(response as SftpDataResponse); } else if (response is SftpExtendedReplyResponse) { this._extendedReplyAction(response as SftpExtendedReplyResponse); } else if (response is SftpHandleResponse) { this._handleAction(response as SftpHandleResponse); } else if (response is SftpNameResponse) { this._nameAction(response as SftpNameResponse); } else { throw new InvalidOperationException(string.Format("Response of type '{0}' is not expected.", response.GetType().Name)); } }
private void HandleResponse(SftpResponse response) { SftpRequest request = null; lock (this._requests) { this._requests.TryGetValue(response.ResponseId, out request); if (request != null) { this._requests.Remove(response.ResponseId); } } if (request == null) throw new InvalidOperationException("Invalid response."); request.Complete(response); }