// Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information.
namespace WixToolset.Data
{
using System;
using System.Resources;
///
/// Event args for message events.
///
public class Message
{
///
/// Creates a new Message using a format string.
///
/// Source line numbers for the message.
/// Message level.
/// Id for the message.
/// Format .
/// Arguments for the format string.
public Message(SourceLineNumber sourceLineNumbers, MessageLevel level, int id, string format, params object[] messageArgs)
{
this.SourceLineNumbers = sourceLineNumbers;
this.Level = level;
this.Id = id;
this.ResourceNameOrFormat = format;
this.MessageArgs = messageArgs;
}
///
/// Creates a new Message using a format string from a resource manager.
///
/// Source line numbers for the message.
/// Message level.
/// Id for the message.
/// Resource manager.
/// Name of the resource.
/// Arguments for the format string.
public Message(SourceLineNumber sourceLineNumbers, MessageLevel level, int id, ResourceManager resourceManager, string resourceName, params object[] messageArgs)
{
this.SourceLineNumbers = sourceLineNumbers;
this.Level = level;
this.Id = id;
this.ResourceManager = resourceManager;
this.ResourceNameOrFormat = resourceName;
this.MessageArgs = messageArgs;
}
///
/// Gets the source line numbers.
///
/// The source line numbers.
public SourceLineNumber SourceLineNumbers { get; }
///
/// Gets the Id for the message.
///
/// The Id for the message.
public int Id { get; }
///
/// Gets the resource manager for this event args.
///
/// The resource manager for this event args.
public ResourceManager ResourceManager { get; }
///
/// Gets the name of the resource or format string if no resource manager was provided.
///
/// The name of the resource or format string.
public string ResourceNameOrFormat { get; }
///
/// Gets or sets the for the message.
///
/// The for the message.
public MessageLevel Level { get; private set; }
///
/// Gets the arguments for the format string.
///
/// The arguments for the format string.
public object[] MessageArgs { get; }
public override string ToString()
{
if (this.ResourceManager == null)
{
return String.Format(this.ResourceNameOrFormat, this.MessageArgs);
}
else
{
return String.Format(this.ResourceManager.GetString(this.ResourceNameOrFormat), this.MessageArgs);
}
}
}
}