You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
28 lines
895 B
28 lines
895 B
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Reflection;
|
|
using System.Threading;
|
|
using ServiceStack;
|
|
|
|
namespace ServiceStack.Support.WebHost
|
|
{
|
|
public static class FilterAttributeCache
|
|
{
|
|
public static MediaBrowser.Model.Services.IHasRequestFilter[] GetRequestFilterAttributes(Type requestDtoType)
|
|
{
|
|
var attributes = requestDtoType.AllAttributes().OfType<MediaBrowser.Model.Services.IHasRequestFilter>().ToList();
|
|
|
|
var serviceType = ServiceStackHost.Instance.Metadata.GetServiceTypeByRequest(requestDtoType);
|
|
if (serviceType != null)
|
|
{
|
|
attributes.AddRange(serviceType.AllAttributes().OfType<MediaBrowser.Model.Services.IHasRequestFilter>());
|
|
}
|
|
|
|
attributes.Sort((x,y) => x.Priority - y.Priority);
|
|
|
|
return attributes.ToArray();
|
|
}
|
|
}
|
|
}
|