private string GetExceptionDetails(XmlValidatorException ex) { var sb = new StringBuilder(); for (int i = 0; i < ex.ArgumentCount; i++) { sb.AppendLine(ex.GetArgument(i)); } return(sb.ToString()); }
private IBaseMessage GetValidationErrorResponse(IPipelineContext pContext, IBaseMessage pInMsg, object epmRRCorrelationToken, object correlationToken, object reqRespTransmitPipelineID, XmlValidatorException ex) { var outMsg = pContext.GetMessageFactory().CreateMessage(); outMsg.AddPart("Body", pInMsg.BodyPart, true); outMsg.Context.Promote(new ContextProperty(SystemProperties.RouteDirectToTP), true); outMsg.Context.Write(new ContextProperty(WCFProperties.OutboundHttpStatusCode), "400"); outMsg.Context.Promote(new ContextProperty(SystemProperties.IsRequestResponse), true); outMsg.Context.Promote(new ContextProperty(SystemProperties.EpmRRCorrelationToken), epmRRCorrelationToken); outMsg.Context.Promote(new ContextProperty(SystemProperties.CorrelationToken), correlationToken); outMsg.Context.Promote(new ContextProperty(SystemProperties.ReqRespTransmitPipelineID), reqRespTransmitPipelineID); var ms = new MemoryStream(); var sw = new StreamWriter(ms); sw.Write(GetExceptionDetails(ex)); sw.Flush(); ms.Seek(0, SeekOrigin.Begin); outMsg.BodyPart.Data = ms; return(outMsg); }