Aspectacular.ExceptionExtensions.Consolidate C# (CSharp) Method

Consolidate() public static method

Joins text information from the chain of exceptions including inner ones.
public static Consolidate ( this ex, string separator, bool innerFirst, string>.Func converter ) : string
ex this
separator string
innerFirst bool True to put innermost exception on top, false for outermost.
converter string>.Func
return string
        public static string Consolidate(this Exception ex, string separator, bool innerFirst, Func<Exception, string> converter)
        {
            if(separator == null)
                separator = defaultItemSeparator;

            separator = "\r\n{0}\r\n".SmartFormat(separator);

            Func<Exception, IEnumerable<Exception>> iterator = innerFirst ? AllExceptions : new Func<Exception, IEnumerable<Exception>>(AllExceptionsBack);

            NonEmptyString retVal = string.Join(separator, iterator(ex).Select(converter));
            return retVal;
        }