From baedafbeb92db3ddf434f038984970bf0a6ac0c1 Mon Sep 17 00:00:00 2001 From: LukePulverenti Luke Pulverenti luke pulverenti Date: Sun, 15 Jul 2012 16:27:07 -0400 Subject: Switched to service stack json. Added more api enhancements. --- MediaBrowser.Common/Model/DictionaryBaseItem.cs | 227 ++++++++++++++++++++++++ 1 file changed, 227 insertions(+) create mode 100644 MediaBrowser.Common/Model/DictionaryBaseItem.cs (limited to 'MediaBrowser.Common/Model/DictionaryBaseItem.cs') diff --git a/MediaBrowser.Common/Model/DictionaryBaseItem.cs b/MediaBrowser.Common/Model/DictionaryBaseItem.cs new file mode 100644 index 000000000..8bdcf1460 --- /dev/null +++ b/MediaBrowser.Common/Model/DictionaryBaseItem.cs @@ -0,0 +1,227 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using MediaBrowser.Model.Entities; +using System.IO; +using MediaBrowser.Common.Json; + +namespace MediaBrowser.Common.Model +{ + public class DictionaryBaseItem : BaseItem + { + private Dictionary Dictionary { get; set; } + + public DictionaryBaseItem(Dictionary dictionary) + { + Dictionary = dictionary; + } + + public override string Name + { + get + { + return GetString("Name"); + } + set + { + SetValue("Name", value); + } + } + + public override string ArtImagePath + { + get + { + return GetString("ArtImagePath"); + } + set + { + SetValue("ArtImagePath", value); + } + } + + public override string AspectRatio + { + get + { + return GetString("AspectRatio"); + } + set + { + SetValue("AspectRatio", value); + } + } + + public override string BannerImagePath + { + get + { + return GetString("BannerImagePath"); + } + set + { + SetValue("BannerImagePath", value); + } + } + + public override string CustomPin + { + get + { + return GetString("CustomPin"); + } + set + { + SetValue("CustomPin", value); + } + } + + public override string CustomRating + { + get + { + return GetString("CustomRating"); + } + set + { + SetValue("CustomRating", value); + } + } + + public override string DisplayMediaType + { + get + { + return GetString("DisplayMediaType"); + } + set + { + SetValue("DisplayMediaType", value); + } + } + + public override string LogoImagePath + { + get + { + return GetString("LogoImagePath"); + } + set + { + SetValue("LogoImagePath", value); + } + } + + public override string OfficialRating + { + get + { + return GetString("OfficialRating"); + } + set + { + SetValue("OfficialRating", value); + } + } + + public override string Overview + { + get + { + return GetString("Overview"); + } + set + { + SetValue("Overview", value); + } + } + + public override string Path + { + get + { + return GetString("Path"); + } + set + { + SetValue("Path", value); + } + } + + public override string PrimaryImagePath + { + get + { + return GetString("PrimaryImagePath"); + } + set + { + SetValue("PrimaryImagePath", value); + } + } + + public override string SortName + { + get + { + return GetString("SortName"); + } + set + { + SetValue("SortName", value); + } + } + + public override string Tagline + { + get + { + return GetString("Tagline"); + } + set + { + SetValue("Tagline", value); + } + } + + public override string TrailerUrl + { + get + { + return GetString("TrailerUrl"); + } + set + { + SetValue("TrailerUrl", value); + } + } + + private string GetString(string name) + { + return Dictionary[name] as string; + } + + private void SetValue(string name, T value) + { + Dictionary[name] = value; + } + + public static DictionaryBaseItem FromApiOutput(Stream stream) + { + Dictionary data = JsonSerializer.DeserializeFromStream>(stream); + + if (data.ContainsKey("BaseItem")) + { + string baseItem = data["BaseItem"] as string; + + data = JsonSerializer.DeserializeFromString>(baseItem); + + return new DictionaryBaseItem(data); + } + + return new DictionaryBaseItem(data); + } + } +} -- cgit v1.2.3