private ISshApiResponse <T> Deserialize <T>(ISshRequest request, ISshApiResponse raw) { //request.OnBeforeDeserialization(raw); var restResponse = (ISshApiResponse <T>) new SshApiResponse <T>(); try { restResponse = raw.ToAsyncResponse <T>(); restResponse.Request = request; if (restResponse.ErrorException == null) { var handler = request.Handler; if (handler != null) { restResponse.Data = handler.Deserialize <T>(raw); } } } catch (Exception ex) { Logger.Error(ex); restResponse.ResponseStatus = ResponseStatus.Error; restResponse.ErrorMessage = ex.Message; restResponse.ErrorException = ex; } return(restResponse); }
private void LogError(ISshApiResponse apiResponse) { if (apiResponse.ResponseStatus == ResponseStatus.Error) { if (apiResponse.ErrorException != null) { Logger.Error(apiResponse.Request.CommandText + Environment.NewLine + Environment.NewLine + apiResponse.Content + Environment.NewLine + apiResponse.ErrorException.Message); return; } var omvError = apiResponse.Request.Handler.DeserializeError <ResponseError <OMVError> >(apiResponse); if (omvError != null) { Logger.Error(apiResponse.Request.CommandText + Environment.NewLine + Environment.NewLine + omvError.Error.Message); } else if (apiResponse.ErrorMessage != null) { Logger.Error(apiResponse.Request.CommandText + Environment.NewLine + Environment.NewLine + apiResponse.ErrorMessage); } } }
public static ISshApiResponse <T> ToAsyncResponse <T>(this ISshApiResponse apiResponse) { return(new SshApiResponse <T> { //ContentEncoding = apiResponse.ContentEncoding, ContentLength = apiResponse.ContentLength, //ContentType = apiResponse.ContentType, //Cookies = apiResponse.Cookies, ErrorException = apiResponse.ErrorException, ErrorMessage = apiResponse.ErrorMessage, StatusCode = apiResponse.StatusCode, //Headers = apiResponse.Headers, //RawBytes = apiResponse.RawBytes, ResponseStatus = apiResponse.ResponseStatus, //ResponseUri = apiResponse.ResponseUri, //Server = apiResponse.Server, //StatusCode = apiResponse.StatusCode, //StatusDescription = apiResponse.StatusDescription Content = apiResponse.Content }); }
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); }