Exemplo n.º 1
0
        private void ResponseCallback(IAsyncResult result, Action <SshApiResponse> callback, SshCommand sshCommand)
        {
            var response = new SshApiResponse
            {
                ResponseStatus = ResponseStatus.None
            };

            //var str = string.Empty;
            try
            {
                //WaitHandle.WaitAny(new[] {result.AsyncWaitHandle});


                //var cmd = (SshCommand) result.AsyncState;

                //str = cmd.EndExecute(result);

                //var b = result.IsCompleted;

                //apiResponse.Content = str;
                using (sshCommand)
                {
                    ExtractResponseData(response, sshCommand);
                    PopulateErrorForIncompleteResponse(response, sshCommand);
                }
            }
            catch (Exception e)
            {
                response = ResponseCallbackError(e);
            }

            callback(response);
        }
Exemplo n.º 2
0
        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);
        }
Exemplo n.º 3
0
        private void PopulateErrorForIncompleteResponse(SshApiResponse apiResponse, SshCommand sshCommand)
        {
            if (sshCommand.ExitStatus > 0)
            {
                apiResponse.ResponseStatus = ResponseStatus.Error;
                apiResponse.ErrorMessage   = sshCommand.Error;
                apiResponse.ExitStatus     = sshCommand.ExitStatus;
            }

            //apiResponse.ErrorException = (Exception)apiResponse.ResponseStatus.ToWebException();
            //apiResponse.ErrorMessage = apiResponse.ErrorException.Message;
        }
        public void Create()
        {
            var obj = new SshApiResponse();

            Assert.IsNotNull(obj);
            Assert.IsNull(obj.Content);
            Assert.AreEqual(0L, obj.ContentLength);
            Assert.IsNull(obj.ErrorException);
            Assert.IsNull(obj.ErrorMessage);
            Assert.AreEqual(0, obj.ExitStatus);
            Assert.AreEqual(ResponseStatus.None, obj.ResponseStatus);
            Assert.IsNull(obj.Request);
        }
Exemplo n.º 5
0
        private SshApiResponse CreateErrorResponse(Exception ex)
        {
            var sshResponse = new SshApiResponse();

            //WebException webException;
            //if ((webException = ex as WebException) != null && webException.Status == WebExceptionStatus.RequestCanceled)
            //{
            //    httpResponse.ResponseStatus = this.timeoutState.TimedOut ? ResponseStatus.TimedOut : ResponseStatus.Aborted;
            //    return httpResponse;
            //}
            sshResponse.ErrorMessage   = ex.Message;
            sshResponse.ErrorException = ex;
            sshResponse.ResponseStatus = ResponseStatus.Error;
            return(sshResponse);
        }
        public void SetValues()
        {
            var content    = "toto";
            var errorMsg   = "My errors _";
            var statExit   = 42;
            var StatusCode = 12;
            var obj        = new SshApiResponse()
            {
                Content       = content,
                ContentLength = content.Length,
                ErrorMessage  = errorMsg,
                ExitStatus    = statExit,
                StatusCode    = StatusCode,
            };

            Assert.IsNotNull(obj);
            Assert.AreEqual(content, obj.Content);
            Assert.AreEqual(content.Length, obj.ContentLength);
            Assert.AreEqual(errorMsg, obj.ErrorMessage);
            Assert.AreEqual(statExit, obj.ExitStatus);
            Assert.AreEqual(StatusCode, obj.StatusCode);
        }
Exemplo n.º 7
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);
        }
Exemplo n.º 8
0
 private void ExtractResponseData(SshApiResponse apiResponse, SshCommand sshCommand)
 {
     apiResponse.Content        = sshCommand.Result;
     apiResponse.ResponseStatus = ResponseStatus.Completed;
     apiResponse.StatusCode     = sshCommand.ExitStatus;
 }
Exemplo n.º 9
0
 private void ExecuteCallback(SshApiResponse apiResponse, Action <SshApiResponse> callback)
 {
     callback(apiResponse);
 }