Ejemplo n.º 1
0
 internal static IRequestShim Make(string resource, RestMethod method, D7UserSession sess, string usr, string pwd)
 {
     var req = new RequestShim(resource, method);
     req.UserName = usr;
     req.Password = pwd;
     req.CsrfToken = sess.token;
     req.Cookies.Add(sess.session_name, sess.sessid);
     return req;
 }
Ejemplo n.º 2
0
        private static RestServiceException ParseByMessage(Exception ex, RestSharpClientShim client, RequestShim req)
        {
            if (ex == null) return null;

            if (ex.Message.Contains("remote name could not be resolved"))
                return RestServiceException.Unresolvable(
                    req.Method, client.BaseUrl, req.Resource, ex);

            if (ex.Message.Contains("Missing required argument "))
                return RestServiceException.BadRequest("Missing required argument :  " +
                    ex.Message.Between("Missing required argument ", ").", true).Quotify(),
                        req.Method, client.BaseUrl, req.Resource, ex);

            if (ex.Message.Contains("401"))
                return RestServiceException.Unauthorized(
                    req.Method, client.BaseUrl, req.Resource, ex);

            if (ex.Message.Contains("403"))
                return RestServiceException.Forbidden(
                    req.Method, client.BaseUrl, req.Resource, ex);

            if (ex.Message.Contains("404"))
                return RestServiceException.NotFound(
                    req.Method, client.BaseUrl, req.Resource, ex);

            if (ex.Message.Contains("406"))
                return RestServiceException.NotAcceptable(
                    req.Method, client.BaseUrl, req.Resource, ex);

            if (ex.Message.Contains("Integrity constraint violation: "))
                return RestServiceException.Conflict(ex.Message
                    .Between("constraint violation: ", ").", true) + ".",
                        req.Method, client.BaseUrl, req.Resource, ex);

            if (ex.Message.Contains("Unknown data property"))
                return RestServiceException.BadRequest("Unknown data property " +
                    ex.Message.Between("Unknown data property ", ".).", true).Quotify(),
                        req.Method, client.BaseUrl, req.Resource, ex);

            if (ex.Message.Contains("value list does not match column list: "))
                return RestServiceException.BadRequest(ex.Message
                    .Between("value list does not match column list: ", ").", true) + ".",
                        req.Method, client.BaseUrl, req.Resource, ex);

            if (ex.Message.Contains("Internal Server Error : An error occurred"))
                return RestServiceException.InternalServer(ex.Message
                    .Between("An error occurred ", ").", true) + ".",
                        req.Method, client.BaseUrl, req.Resource, ex);

            if (ex.Message.Contains("Could not create destination directory"))
                return RestServiceException.InternalServer(
                    "Could not create destination directory for file.",
                        req.Method, client.BaseUrl, req.Resource, ex);

            return null;
        }
Ejemplo n.º 3
0
        public static RestServiceException Parse(HttpRequestException ex, RestSharpClientShim client, RequestShim req)
        {
            var err = ParseByMessage(ex, client, req);
            if (err == null)
                err = ParseByMessage(ex.InnerException, client, req);
            if (err != null) return err;


            var inr = ex.InnerException;

            if (inr == null)
                return Unknown("No inner exception", ex, client, req);

            if (inr is WebException)
                return CastWebException((WebException)inr, client, req);

            return Unknown("None of the Parse-ables", ex, client, req);
        }
Ejemplo n.º 4
0
        private static RestServiceException ParseByMessage(Exception ex, RestSharpClientShim client, RequestShim req)
        {
            if (ex == null)
            {
                return(null);
            }

            if (ex.Message.Contains("remote name could not be resolved"))
            {
                return(RestServiceException.Unresolvable(
                           req.Method, client.BaseUrl, req.Resource, ex));
            }

            if (ex.Message.Contains("Missing required argument "))
            {
                return(RestServiceException.BadRequest("Missing required argument :  " +
                                                       ex.Message.Between("Missing required argument ", ").", true).Quotify(),
                                                       req.Method, client.BaseUrl, req.Resource, ex));
            }

            if (ex.Message.Contains("401"))
            {
                return(RestServiceException.Unauthorized(
                           req.Method, client.BaseUrl, req.Resource, ex));
            }

            if (ex.Message.Contains("403"))
            {
                return(RestServiceException.Forbidden(
                           req.Method, client.BaseUrl, req.Resource, ex));
            }

            if (ex.Message.Contains("404"))
            {
                return(RestServiceException.NotFound(
                           req.Method, client.BaseUrl, req.Resource, ex));
            }

            if (ex.Message.Contains("406"))
            {
                return(RestServiceException.NotAcceptable(
                           req.Method, client.BaseUrl, req.Resource, ex));
            }

            if (ex.Message.Contains("Integrity constraint violation: "))
            {
                return(RestServiceException.Conflict(ex.Message
                                                     .Between("constraint violation: ", ").", true) + ".",
                                                     req.Method, client.BaseUrl, req.Resource, ex));
            }

            if (ex.Message.Contains("Unknown data property"))
            {
                return(RestServiceException.BadRequest("Unknown data property " +
                                                       ex.Message.Between("Unknown data property ", ".).", true).Quotify(),
                                                       req.Method, client.BaseUrl, req.Resource, ex));
            }

            if (ex.Message.Contains("value list does not match column list: "))
            {
                return(RestServiceException.BadRequest(ex.Message
                                                       .Between("value list does not match column list: ", ").", true) + ".",
                                                       req.Method, client.BaseUrl, req.Resource, ex));
            }

            if (ex.Message.Contains("Internal Server Error : An error occurred"))
            {
                return(RestServiceException.InternalServer(ex.Message
                                                           .Between("An error occurred ", ").", true) + ".",
                                                           req.Method, client.BaseUrl, req.Resource, ex));
            }

            if (ex.Message.Contains("Could not create destination directory"))
            {
                return(RestServiceException.InternalServer(
                           "Could not create destination directory for file.",
                           req.Method, client.BaseUrl, req.Resource, ex));
            }

            return(null);
        }
Ejemplo n.º 5
0
 private static RestServiceException Unknown(string clue, Exception ex, RestSharpClientShim client, RequestShim req)
 {
     return(RestServiceException.Unknown(clue,
                                         req.Method, client.BaseUrl, req.Resource, ex));
 }
Ejemplo n.º 6
0
        private static RestServiceException CastWebException(WebException ex, RestSharpClientShim client, RequestShim req)
        {
            var inr = ex.InnerException;

            if (inr == null)
            {
                return(Unknown("A WebException with NO innards", ex, client, req));
            }

            if (inr.GetType().Name == "AuthenticationException")
            {
                return(RestServiceException.InvalidSsl(
                           req.Method, client.BaseUrl, req.Resource, ex));
            }

            if (inr.GetType().Name == "SocketException")
            {
                return(RestServiceException.Unavailable(
                           req.Method, client.BaseUrl, req.Resource, ex));
            }

            return(Unknown("A WebException with UNKNOWN innards", ex, client, req));
        }
Ejemplo n.º 7
0
        public static RestServiceException Parse(HttpRequestException ex, RestSharpClientShim client, RequestShim req)
        {
            var err = ParseByMessage(ex, client, req);

            if (err == null)
            {
                err = ParseByMessage(ex.InnerException, client, req);
            }
            if (err != null)
            {
                return(err);
            }


            var inr = ex.InnerException;

            if (inr == null)
            {
                return(Unknown("No inner exception", ex, client, req));
            }

            if (inr is WebException)
            {
                return(CastWebException((WebException)inr, client, req));
            }

            return(Unknown("None of the Parse-ables", ex, client, req));
        }
Ejemplo n.º 8
0
 private RestServiceException RestErr(HttpRequestException ex, RequestShim req)
 {
     //Error_o("HTTP request failed.");
     return(RestError.Parse(ex, this, req));
 }
Ejemplo n.º 9
0
        private async Task<D7UserSession> ValidateCredentials(IClientShim client, RequestShim req, CancellationToken cancelToken)
        {
            req.Body = new { username = _userName, password = _password };
            req.UserName = _userName;
            req.Password = _password;
            D7UserSession ret = null;

            try {
                ret = await client.Send<D7UserSession>(req, cancelToken);
            }
            catch (Exception ex) {
                LogError("client.Send<D7UserSession>", ex);
                return null;
            }
            return ret;
        }
Ejemplo n.º 10
0
        private static RestServiceException CastWebException(WebException ex, RestSharpClientShim client, RequestShim req)
        {
            var inr = ex.InnerException;

            if (inr == null)
                return Unknown("A WebException with NO innards", ex, client, req);

            if (inr.GetType().Name == "AuthenticationException")
                return RestServiceException.InvalidSsl(
                    req.Method, client.BaseUrl, req.Resource, ex);

            if (inr.GetType().Name == "SocketException")
                return RestServiceException.Unavailable(
                    req.Method, client.BaseUrl, req.Resource, ex);

            return Unknown("A WebException with UNKNOWN innards", ex, client, req);
        }
Ejemplo n.º 11
0
 private static RestServiceException Unknown(string clue, Exception ex, RestSharpClientShim client, RequestShim req)
 {
     return RestServiceException.Unknown(clue,
         req.Method, client.BaseUrl, req.Resource, ex);
 }