mirror of
https://github.com/lidarr/lidarr.git
synced 2025-08-14 02:37:08 -07:00
Bind any collection to SignalR with a single call.
This commit is contained in:
parent
87a5dc7869
commit
a6aba16902
13 changed files with 106 additions and 26 deletions
42
NzbDrone.Api/SignalR/Serializer.cs
Normal file
42
NzbDrone.Api/SignalR/Serializer.cs
Normal file
|
@ -0,0 +1,42 @@
|
|||
using System;
|
||||
using System.IO;
|
||||
using Microsoft.AspNet.SignalR.Json;
|
||||
|
||||
namespace NzbDrone.Api.SignalR
|
||||
{
|
||||
public class Serializer : IJsonSerializer
|
||||
{
|
||||
private readonly Common.IJsonSerializer _nzbDroneSerializer;
|
||||
private JsonNetSerializer _signalRSerializer;
|
||||
|
||||
public Serializer(Common.IJsonSerializer nzbDroneSerializer)
|
||||
{
|
||||
_signalRSerializer = new JsonNetSerializer();
|
||||
_nzbDroneSerializer = nzbDroneSerializer;
|
||||
|
||||
}
|
||||
|
||||
public void Serialize(object value, TextWriter writer)
|
||||
{
|
||||
if (value.GetType().FullName.StartsWith("NzbDrone"))
|
||||
{
|
||||
_nzbDroneSerializer.Serialize(value, writer);
|
||||
}
|
||||
else
|
||||
{
|
||||
_signalRSerializer.Serialize(value, writer);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public object Parse(string json, Type targetType)
|
||||
{
|
||||
if (targetType.FullName.StartsWith("NzbDrone"))
|
||||
{
|
||||
return _nzbDroneSerializer.Deserialize(json, targetType);
|
||||
}
|
||||
|
||||
return _signalRSerializer.Parse(json, targetType);
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue