Source/NuGetGallery.Operations/Attributes/CommandAttribute.cs (97 lines of code) (raw):
using System;
namespace NuGetGallery.Operations
{
[AttributeUsage(AttributeTargets.Class, AllowMultiple = false, Inherited = true)]
public sealed class CommandAttribute : Attribute
{
private string _description;
private string _usageSummary;
private string _usageDescription;
private string _example;
public string CommandName { get; private set; }
public Type ResourceType { get; private set; }
public string DescriptionResourceName { get; private set; }
public string AltName { get; set; }
public int MinArgs { get; set; }
public int MaxArgs { get; set; }
public string UsageSummaryResourceName { get; set; }
public string UsageDescriptionResourceName { get; set; }
public string UsageExampleResourceName { get; set; }
public bool IsSpecialPurpose { get; set; }
public string Description
{
get
{
if (ResourceType != null && !String.IsNullOrEmpty(DescriptionResourceName))
{
return ResourceHelper.GetLocalizedString(ResourceType, DescriptionResourceName);
}
return _description;
}
private set
{
_description = value;
}
}
public string UsageSummary
{
get
{
if (ResourceType != null && !String.IsNullOrEmpty(UsageSummaryResourceName))
{
return ResourceHelper.GetLocalizedString(ResourceType, UsageSummaryResourceName);
}
return _usageSummary;
}
set
{
_usageSummary = value;
}
}
public string UsageDescription
{
get
{
if (ResourceType != null && !String.IsNullOrEmpty(UsageDescriptionResourceName))
{
return ResourceHelper.GetLocalizedString(ResourceType, UsageDescriptionResourceName);
}
return _usageDescription;
}
set
{
_usageDescription = value;
}
}
public string UsageExample
{
get
{
if (ResourceType != null && !String.IsNullOrEmpty(UsageExampleResourceName))
{
return ResourceHelper.GetLocalizedString(ResourceType, UsageExampleResourceName);
}
return _example;
}
set
{
_example = value;
}
}
public CommandAttribute(string commandName, string description)
{
CommandName = commandName;
Description = description;
MinArgs = 0;
MaxArgs = Int32.MaxValue;
}
public CommandAttribute(Type resourceType, string commandName, string descriptionResourceName)
{
ResourceType = resourceType;
CommandName = commandName;
DescriptionResourceName = descriptionResourceName;
MinArgs = 0;
MaxArgs = Int32.MaxValue;
}
}
}