1
0
Fork 0
mirror of https://github.com/lidarr/Lidarr synced 2024-12-29 02:55:38 +00:00
Lidarr/NzbDrone.Api/SignalR/Serializer.cs
2013-05-12 08:18:17 -07:00

44 lines
No EOL
1.2 KiB
C#

using System;
using System.IO;
using Microsoft.AspNet.SignalR.Json;
using NzbDrone.Common.Composition;
namespace NzbDrone.Api.SignalR
{
[Singleton]
public class Serializer : IJsonSerializer
{
private readonly Common.Serializer.IJsonSerializer _nzbDroneSerializer;
private readonly JsonNetSerializer _signalRSerializer;
public Serializer(Common.Serializer.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);
}
}
}