aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Controller/Providers/BaseItemXmlParser.cs
diff options
context:
space:
mode:
authorLuke Pulverenti <luke.pulverenti@gmail.com>2014-12-12 22:56:30 -0500
committerLuke Pulverenti <luke.pulverenti@gmail.com>2014-12-12 22:56:30 -0500
commitab3da461130b0db2f77e7e848c4bbd1280e5524a (patch)
tree0ee0ef36f4d710a491d4e8c5ef083df16c710d42 /MediaBrowser.Controller/Providers/BaseItemXmlParser.cs
parent3fb40eb02e3ab4bf84e34ebed126db8d6f760e92 (diff)
more sync movement
Diffstat (limited to 'MediaBrowser.Controller/Providers/BaseItemXmlParser.cs')
-rw-r--r--MediaBrowser.Controller/Providers/BaseItemXmlParser.cs78
1 files changed, 78 insertions, 0 deletions
diff --git a/MediaBrowser.Controller/Providers/BaseItemXmlParser.cs b/MediaBrowser.Controller/Providers/BaseItemXmlParser.cs
index 307ab3cb8..a37f7eb8a 100644
--- a/MediaBrowser.Controller/Providers/BaseItemXmlParser.cs
+++ b/MediaBrowser.Controller/Providers/BaseItemXmlParser.cs
@@ -819,6 +819,19 @@ namespace MediaBrowser.Controller.Providers
break;
}
+ case "Shares":
+ {
+ using (var subtree = reader.ReadSubtree())
+ {
+ var hasShares = item as IHasShares;
+ if (hasShares != null)
+ {
+ FetchFromSharesNode(subtree, hasShares);
+ }
+ }
+ break;
+ }
+
case "Format3D":
{
var video = item as Video;
@@ -853,6 +866,71 @@ namespace MediaBrowser.Controller.Providers
}
}
+ private void FetchFromSharesNode(XmlReader reader, IHasShares item)
+ {
+ reader.MoveToContent();
+
+ while (reader.Read())
+ {
+ if (reader.NodeType == XmlNodeType.Element)
+ {
+ switch (reader.Name)
+ {
+ case "Share":
+ {
+ using (var subtree = reader.ReadSubtree())
+ {
+ var share = GetShareFromNode(subtree);
+ if (share != null)
+ {
+ item.Shares.Add(share);
+ }
+ }
+ break;
+ }
+
+ default:
+ reader.Skip();
+ break;
+ }
+ }
+ }
+ }
+
+ private Share GetShareFromNode(XmlReader reader)
+ {
+ var share = new Share();
+
+ reader.MoveToContent();
+
+ while (reader.Read())
+ {
+ if (reader.NodeType == XmlNodeType.Element)
+ {
+ switch (reader.Name)
+ {
+ case "UserId":
+ {
+ share.UserId = reader.ReadElementContentAsString();
+ break;
+ }
+
+ case "CanEdit":
+ {
+ share.CanEdit = string.Equals(reader.ReadElementContentAsString(), true.ToString(), StringComparison.OrdinalIgnoreCase);
+ break;
+ }
+
+ default:
+ reader.Skip();
+ break;
+ }
+ }
+ }
+
+ return share;
+ }
+
private void FetchFromCountriesNode(XmlReader reader, T item)
{
reader.MoveToContent();