Files
Umbraco-CMS/src/Umbraco.Web/Search/SearchableTreeAttribute.cs

50 lines
2.0 KiB
C#
Raw Normal View History

2017-09-23 10:08:18 +02:00
using System;
2017-09-08 19:39:13 +02:00
using Umbraco.Core.Exceptions;
namespace Umbraco.Web.Search
{
[AttributeUsage(AttributeTargets.Class)]
public sealed class SearchableTreeAttribute : Attribute
{
public const int DefaultSortOrder = 1000;
2017-09-08 19:39:13 +02:00
/// <summary>
/// This constructor defines both the angular service and method name to use
/// </summary>
/// <param name="serviceName"></param>
/// <param name="methodName"></param>
public SearchableTreeAttribute(string serviceName, string methodName) : this(serviceName, methodName, DefaultSortOrder) { }
/// <summary>
/// This constructor defines both the angular service and method name to use and explicitly defines a sort order for the results
/// </summary>
/// <param name="serviceName"></param>
/// <param name="methodName"></param>
/// <param name="sortOrder"></param>
public SearchableTreeAttribute(string serviceName, string methodName, int sortOrder)
2017-09-08 19:39:13 +02:00
{
if (string.IsNullOrWhiteSpace(serviceName)) throw new ArgumentNullOrEmptyException(nameof(serviceName));
if (string.IsNullOrWhiteSpace(methodName)) throw new ArgumentNullOrEmptyException(nameof(methodName));
MethodName = methodName;
SortOrder = sortOrder;
2017-09-08 19:39:13 +02:00
ServiceName = serviceName;
}
/// <summary>
/// This constructor will assume that the method name equals `format(searchResult, appAlias, treeAlias)`
/// </summary>
/// <param name="serviceName"></param>
public SearchableTreeAttribute(string serviceName)
{
if (string.IsNullOrWhiteSpace(serviceName)) throw new ArgumentNullOrEmptyException(nameof(serviceName));
MethodName = "";
ServiceName = serviceName;
SortOrder = DefaultSortOrder;
2017-09-08 19:39:13 +02:00
}
public string MethodName { get; }
public string ServiceName { get; }
public int SortOrder { get; }
2017-09-08 19:39:13 +02:00
}
2017-09-23 10:08:18 +02:00
}