using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Runtime.Serialization;
using GitHub.Services.WebApi.Internal;
namespace GitHub.DistributedTask.ObjectTemplating
{
///
/// Provides information about an error which occurred during validation.
///
[DataContract]
[ClientIgnore]
[EditorBrowsable(EditorBrowsableState.Never)]
public class TemplateValidationError
{
public TemplateValidationError()
{
}
public TemplateValidationError(String message)
: this(null, message)
{
}
public TemplateValidationError(
String code,
String message)
{
Code = code;
Message = message;
}
[DataMember(EmitDefaultValue = false)]
public String Code
{
get;
set;
}
[DataMember(EmitDefaultValue = false)]
public String Message
{
get;
set;
}
public static IEnumerable Create(Exception exception)
{
for (int i = 0; i < 50; i++)
{
yield return new TemplateValidationError(exception.Message);
if (exception.InnerException == null)
{
break;
}
exception = exception.InnerException;
}
}
}
}