SignalR/Nancy/Owin/Mono

This commit is contained in:
kay.one
2013-05-05 14:24:33 -07:00
parent 45b4972091
commit 87a5dc7869
40 changed files with 2375 additions and 76 deletions
+15 -10
View File
@@ -1,26 +1,31 @@
using System;
using System.Collections.Generic;
using System.Threading.Tasks;
using Nancy.Bootstrapper;
using Nancy.Owin;
using Microsoft.AspNet.SignalR;
using NzbDrone.Api.SignalR;
using Owin;
using TinyIoC;
namespace NzbDrone.Owin.MiddleWare
{
public class SignalRMiddleWare : IOwinMiddleWare
{
private readonly INancyBootstrapper _nancyBootstrapper;
private readonly IEnumerable<NzbDronePersistentConnection> _persistentConnections;
public SignalRMiddleWare(INancyBootstrapper nancyBootstrapper)
public int Order { get { return 0; } }
public SignalRMiddleWare(IEnumerable<NzbDronePersistentConnection> persistentConnections, TinyIoCContainer container)
{
_nancyBootstrapper = nancyBootstrapper;
_persistentConnections = persistentConnections;
SignalrDependencyResolver.Register(container);
}
public void Attach(IAppBuilder appBuilder)
{
return;
var nancyOwinHost = new NancyOwinHost(null, _nancyBootstrapper);
appBuilder.Use((Func<Func<IDictionary<string, object>, Task>, Func<IDictionary<string, object>, Task>>)(next => (Func<IDictionary<string, object>, Task>)nancyOwinHost.Invoke), new object[0]);
foreach (var nzbDronePersistentConnection in _persistentConnections)
{
appBuilder.MapConnection("signalr/series", nzbDronePersistentConnection.GetType(), new ConnectionConfiguration { EnableCrossDomain = true });
}
}
}
}