mirror of
https://github.com/Readarr/Readarr.git
synced 2026-04-20 21:54:25 -04:00
imported signalr 1.1.3 into NzbDrone.
This commit is contained in:
@@ -0,0 +1,64 @@
|
||||
// Copyright (c) Microsoft Open Technologies, Inc. All rights reserved. See License.md in the project root for license information.
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Diagnostics;
|
||||
using System.Globalization;
|
||||
using Microsoft.AspNet.SignalR.Infrastructure;
|
||||
|
||||
namespace Microsoft.AspNet.SignalR.Hubs
|
||||
{
|
||||
public static class HubManagerExtensions
|
||||
{
|
||||
public static HubDescriptor EnsureHub(this IHubManager hubManager, string hubName, params IPerformanceCounter[] counters)
|
||||
{
|
||||
if (hubManager == null)
|
||||
{
|
||||
throw new ArgumentNullException("hubManager");
|
||||
}
|
||||
|
||||
if (String.IsNullOrEmpty(hubName))
|
||||
{
|
||||
throw new ArgumentNullException("hubName");
|
||||
}
|
||||
|
||||
if (counters == null)
|
||||
{
|
||||
throw new ArgumentNullException("counters");
|
||||
}
|
||||
|
||||
var descriptor = hubManager.GetHub(hubName);
|
||||
|
||||
if (descriptor == null)
|
||||
{
|
||||
for (var i = 0; i < counters.Length; i++)
|
||||
{
|
||||
counters[i].Increment();
|
||||
}
|
||||
throw new InvalidOperationException(String.Format(CultureInfo.CurrentCulture, Resources.Error_HubCouldNotBeResolved, hubName));
|
||||
}
|
||||
|
||||
return descriptor;
|
||||
}
|
||||
|
||||
public static IEnumerable<HubDescriptor> GetHubs(this IHubManager hubManager)
|
||||
{
|
||||
if (hubManager == null)
|
||||
{
|
||||
throw new ArgumentNullException("hubManager");
|
||||
}
|
||||
|
||||
return hubManager.GetHubs(d => true);
|
||||
}
|
||||
|
||||
public static IEnumerable<MethodDescriptor> GetHubMethods(this IHubManager hubManager, string hubName)
|
||||
{
|
||||
if (hubManager == null)
|
||||
{
|
||||
throw new ArgumentNullException("hubManager");
|
||||
}
|
||||
|
||||
return hubManager.GetHubMethods(hubName, m => true);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,30 @@
|
||||
// Copyright (c) Microsoft Open Technologies, Inc. All rights reserved. See License.md in the project root for license information.
|
||||
|
||||
using System;
|
||||
|
||||
namespace Microsoft.AspNet.SignalR.Hubs
|
||||
{
|
||||
internal static class HubTypeExtensions
|
||||
{
|
||||
internal static string GetHubName(this Type type)
|
||||
{
|
||||
if (!typeof(IHub).IsAssignableFrom(type))
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
return GetHubAttributeName(type) ?? type.Name;
|
||||
}
|
||||
|
||||
internal static string GetHubAttributeName(this Type type)
|
||||
{
|
||||
if (!typeof(IHub).IsAssignableFrom(type))
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
// We can still return null if there is no attribute name
|
||||
return ReflectionHelper.GetAttributeValue<HubNameAttribute, string>(type, attr => attr.HubName);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,30 @@
|
||||
// Copyright (c) Microsoft Open Technologies, Inc. All rights reserved. See License.md in the project root for license information.
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Diagnostics.CodeAnalysis;
|
||||
using Microsoft.AspNet.SignalR.Json;
|
||||
using Newtonsoft.Json.Linq;
|
||||
|
||||
namespace Microsoft.AspNet.SignalR.Hubs
|
||||
{
|
||||
public static class MethodExtensions
|
||||
{
|
||||
[SuppressMessage("Microsoft.Design", "CA1062:Validate arguments of public methods", MessageId = "1", Justification = "The condition checks for null parameters")]
|
||||
public static bool Matches(this MethodDescriptor methodDescriptor, IList<IJsonValue> parameters)
|
||||
{
|
||||
if (methodDescriptor == null)
|
||||
{
|
||||
throw new ArgumentNullException("methodDescriptor");
|
||||
}
|
||||
|
||||
if ((methodDescriptor.Parameters.Count > 0 && parameters == null)
|
||||
|| methodDescriptor.Parameters.Count != parameters.Count)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user