Exemple #1
0
        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);
        }
Exemple #2
0
        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);
                }
            }
        }
Exemple #3
0
 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
     });
 }
Exemple #4
0
        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);
        }