private SubmitResult GetXmlGwSendResult(string result)
{
if (result.IsNullOrWhiteSpace())
{
return null;
}
XElement el;
try
{
el = XElement.Parse(result);
}
catch (Exception ex)
{
Logger.Error("解析XML出错", ex);
return null;
}
var root = el.XPathSelectElement("/");
if (root == null) return null;
var isError = root.XPathSelectElement("errorstatus") != null;
if (isError) return CreateError(root);
return CreateSucc(root);
}
private SubmitResult CreateError(XElement root)
{
var rlt = new SubmitResult
{
Status = false,
Message = root.XPathSelectElement("remark")?.Value,
ErrorCode = root.XPathSelectElement("error")?.Value
};
return rlt;
}
private SubmitResult CreateSucc(XElement root)
{
var status = root.XPathSelectElement("returnstatus")?.Value;
var message = root.XPathSelectElement("message")?.Value;
var balance = root.XPathSelectElement("remainpoint")?.Value;
var taskid = root.XPathSelectElement("taskID")?.Value;
var successCount = root.XPathSelectElement("successCounts")?.Value;
var rlt = new SubmitResult
{
Status = status != null && status.Equals("success", StringComparison.OrdinalIgnoreCase),
Message = message,
Balance = balance.IsNullOrEmpty() ? 0 : Convert.ToInt32(balance),
TaskId = taskid,
SuccessCount = successCount.IsNullOrEmpty() ? 0 : Convert.ToInt32(successCount)
};
return rlt;
}