Example #1
0
 /// <summary>
 ///     Анализ ошибок в ответе службы WSL
 /// </summary>
 private void Verify(Reply reply, RequestMessage message)
 {
     if (reply.ErrorCode != 0)
     {
         var errorMessage = string.Format(
             "{0}: Служба WSL вернула ошибку #{1} \"{2}\". Адрес службы: \"{3}\"",
             message.GetFormattedMethodName(),
             reply.ErrorCode,
             reply.ErrorDescription,
             uri
             );
         throw new WslException(errorMessage);
     }
 }
Example #2
0
        /// <summary>
        ///     Анализ ошбок
        /// </summary>
        private static Reply ParseReply(HttpResult result)
        {
            var processedResponse = ProcessResponse(result);
            var reply = new Reply
            {
                Data = processedResponse.Data,
                ErrorCode = 0
            };

            if (processedResponse.StatusCode != HttpStatusCode.OK)
            {
                reply.ErrorCode = -1;

                var faultNode = processedResponse.Xml.GetNodeByLocalName("Fault");
                if (faultNode != null)
                {
                    var faultstringNode = faultNode.SelectSingleNode("faultstring");
                    var reason = faultstringNode != null ? faultstringNode.InnerText : "?";
                    var faultcodeNode = faultNode.SelectSingleNode("faultcode");
                    var code = faultcodeNode != null ? faultcodeNode.InnerText : "?";

                    reply.ErrorDescription = string.Format("FaultException. Code = {0}; Reason = {1};", code, reason);

                    var detailNode = faultNode.SelectSingleNode("detail");
                    if (detailNode != null)
                    {
                        reply.ErrorDescription += " Detail = " + detailNode.InnerText;
                    }
                }
                else
                {
                    reply.ErrorDescription = "Не удалось получить подробности ошибки";
                }
            }
            else
            {
                var responseNode = processedResponse.Xml.GetNodeByLocalName("return");
                reply.Xml = responseNode == null ? null : responseNode.InnerText;
            }

            return reply;
        }