// 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)); } } }