private void ProcessResponse(ISshRequest request, SshApiResponse sshApiResponse, SshRequestAsyncHandle asyncHandle, Action <ISshApiResponse, SshRequestAsyncHandle> callback) { // SshApiResponse restResponse = ConvertToRestResponse(request, httpResponse); //var sshApiResponse = httpResponse; sshApiResponse.Request = request; callback(sshApiResponse, asyncHandle); }
private SshRequestAsyncHandle ExecuteAsync(ISshRequest request, Action <ISshApiResponse, SshRequestAsyncHandle> callback, Func <SshClient, ISshRequest, Action <SshApiResponse>, SshCommand> getSshRequest) { //ISsh ssh= this.ConfigureSsh(request); var asyncHandle = new SshRequestAsyncHandle(); var action = (Action <SshApiResponse>)(r => ProcessResponse(request, r, asyncHandle, callback)); //if (this.UseSynchronizationContext && SynchronizationContext.Current != null) //{ // SynchronizationContext ctx = SynchronizationContext.Current; // Action<HttpResponse> cb = action; // action = (Action<HttpResponse>)(resp => ctx.Post((SendOrPostCallback)(s => cb(resp)), (object)null)); //} asyncHandle.SshRequest = getSshRequest(Client, request, action); return(asyncHandle); }
private void DeserializeResponse <T>(ISshRequest request, Action <ISshApiResponse <T>, SshRequestAsyncHandle> callback, ISshApiResponse apiResponse, SshRequestAsyncHandle asyncHandle) { ISshApiResponse <T> sshApiResponse1; try { sshApiResponse1 = Deserialize <T>(request, apiResponse); } catch (Exception ex) { Logger.Error(ex); var restResponse2 = new SshApiResponse <T>(); restResponse2.Request = request; restResponse2.ResponseStatus = ResponseStatus.Error; restResponse2.ErrorMessage = ex.Message; restResponse2.ErrorException = ex; sshApiResponse1 = restResponse2; } callback(sshApiResponse1, asyncHandle); }