Ejemplo n.º 1
0
        /// <summary>
        /// Checks that response does not containt errors.
        /// </summary>
        /// <param name="response">The response.</param>
        /// <exception cref="ReviewBoardException">Throw if the REST call was unsuccesful.</exception>
        private void CheckResponse(IRestResponse response)
        {
            if (response == null)
            {
                throw new ReviewBoardException("Null response from review board.");
            }

            if (response.Content.IndexOf("\"err\":", StringComparison.Ordinal) >= 0)
            {
                ReviewBoardErrorResponse error;
                try
                {
                    var deserializer = new JsonDeserializer {
                        RootElement = "err"
                    };
                    error = deserializer.Deserialize <ReviewBoardErrorResponse>(response);
                }
                catch (Exception e)
                {
                    throw new ReviewBoardException("Unable to deserialize error response.", e);
                }

                if (error != null)
                {
                    switch (error.Code)
                    {
                    case "103":
                    case "101":
                    case "218": ClearCookieFile(); throw new ReviewBoardAuthenticationException();

                    default:
                        var e = new ReviewBoardException("A Review Board error occured. Code: " + error.Code + ". Message: " + error.Msg);
                        e.Data.Add("Error details", response.Content);
                        throw e;
                    }
                }
            }

            ProcessResponseCookies(response);
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Checks that response does not containt errors.
        /// </summary>
        /// <param name="response">The response.</param>
        /// <exception cref="ReviewBoardException">Throw if the REST call was unsuccesful.</exception>
        private void CheckResponse(IRestResponse response)
        {
            if (response == null)
            {
                throw new ReviewBoardException("Null response from review board.");
            }

            if (response.Content.IndexOf("\"err\":", StringComparison.Ordinal) >= 0)
            {
                ReviewBoardErrorResponse error;
                try
                {
                    var deserializer = new JsonDeserializer { RootElement = "err" };
                    error = deserializer.Deserialize<ReviewBoardErrorResponse>(response);
                }
                catch (Exception e)
                {
                    throw new ReviewBoardException("Unable to deserialize error response.", e);
                }

                if (error != null)
                {
                    switch (error.Code)
                    {
                        case "103":
                        case "101":
                        case "218": ClearCookieFile(); throw new ReviewBoardAuthenticationException();
                        default:
                            var e = new ReviewBoardException("A Review Board error occured. Code: " + error.Code + ". Message: " + error.Msg);
                            e.Data.Add("Error details", response.Content);
                            throw e;
                    }
                }
            }

            ProcessResponseCookies(response);
        }