private void ProcessSchemaValidationError(CodedStatusMessageType errorMessage, SchemaValidationException e) { foreach (string error in e.GetValidationErrors()) { TextType text = new TextType(); errorMessage.Text.Add(text); text.TypedValue = error; } }
/// <summary> /// Build error response. /// </summary> /// <param name="errorCode"> /// The error code. /// </param> /// <returns> /// The <see cref="Error"/>. /// </returns> public Error BuildErrorResponse(SdmxErrorCode errorCode) { var errorDoc = new Error(); ErrorType error = errorDoc.Content; // FUNC Standard error codes var errorMessage = new CodedStatusMessageType(); error.ErrorMessage.Add(errorMessage); errorMessage.code = errorCode.ClientErrorCode.ToString(CultureInfo.InvariantCulture); var text = new TextType(); errorMessage.Text.Add(text); text.TypedValue = errorCode.ErrorString; return errorDoc; }
/// <summary> /// Build error response. /// </summary> /// <param name="exception"> /// The exception. /// </param> /// <returns> /// The <see cref="Error"/>. /// </returns> public Error BuildErrorResponse(Exception exception) { var errorDoc = new Error(); ErrorType error = errorDoc.Content; // FUNC Standard error codes var errorMessage = new CodedStatusMessageType(); error.ErrorMessage.Add(errorMessage); errorMessage.code = "1000"; var text = new TextType(); errorMessage.Text.Add(text); var uncheckedException = exception as SdmxException; text.TypedValue = uncheckedException != null ? uncheckedException.FullMessage : exception.Message; return errorDoc; }
/// <summary> /// Build error response. /// </summary> /// <param name="exception"> /// The exception. /// </param> /// <param name="exceptionCode"> /// The exception code. /// </param> /// <returns> /// The <see cref="XTypedElement"/>. /// </returns> public virtual XTypedElement BuildErrorResponse(Exception exception, string exceptionCode) { var errorDocument = new Error(); var errorMessage = new CodedStatusMessageType(); errorDocument.ErrorMessage.Add(errorMessage); errorMessage.code = exceptionCode; while (exception != null) { var text = new TextType(); errorMessage.Text.Add(text); if (string.IsNullOrEmpty(exception.Message)) { if (exception.InnerException != null) { text.TypedValue = exception.InnerException.Message; } } else { text.TypedValue = exception.Message; } if (exception.GetType() == typeof(SchemaValidationException)) { ProcessSchemaValidationError(errorMessage, (SchemaValidationException)exception); } else { ProcessThrowable(errorMessage, exception); } exception = exception.InnerException; } return errorDocument; }
private void ProcessThrowable(CodedStatusMessageType errorMessage, Exception th) { TextType text = new TextType(); errorMessage.Text.Add(text); if (th.Message == null) { if (th.GetBaseException() != null) { text.TypedValue = th.GetBaseException().Message; } else { if (th.GetType() == typeof(NullReferenceException)) { text.TypedValue = "Null Reference Exception"; } else { text.TypedValue = "No Error Message Provided"; } } } else { text.TypedValue = th.Message; } }