// Copyright (c) Microsoft Open Technologies, Inc. All rights reserved.
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
using System;
using System.Collections.Generic;
using System.Linq;
using Microsoft.Framework.Runtime;
using Microsoft.Framework.Internal;
namespace Microsoft.AspNet.Mvc.Razor.Compilation
{
///
/// An thrown when accessing the result of a failed compilation.
///
public class CompilationFailedException : Exception, ICompilationException
{
///
/// Instantiates a new instance of .
///
/// s containing
/// details of the compilation failure.
public CompilationFailedException(
[NotNull] IEnumerable compilationFailures)
: base(FormatMessage(compilationFailures))
{
CompilationFailures = compilationFailures;
}
///
public IEnumerable CompilationFailures { get; }
private static string FormatMessage(IEnumerable compilationFailures)
{
return Resources.CompilationFailed + Environment.NewLine +
string.Join(
Environment.NewLine,
compilationFailures.SelectMany(f => f.Messages).Select(message => message.FormattedMessage));
}
}
}