diff options
Diffstat (limited to 'MediaBrowser.Controller')
| -rw-r--r-- | MediaBrowser.Controller/Providers/BaseItemXmlParser.cs | 12 | ||||
| -rw-r--r-- | MediaBrowser.Controller/Providers/MetadataResult.cs | 21 |
2 files changed, 26 insertions, 7 deletions
diff --git a/MediaBrowser.Controller/Providers/BaseItemXmlParser.cs b/MediaBrowser.Controller/Providers/BaseItemXmlParser.cs index c1a4fa765..383d0881e 100644 --- a/MediaBrowser.Controller/Providers/BaseItemXmlParser.cs +++ b/MediaBrowser.Controller/Providers/BaseItemXmlParser.cs @@ -74,6 +74,8 @@ namespace MediaBrowser.Controller.Providers /// <param name="cancellationToken">The cancellation token.</param> private void Fetch(MetadataResult<T> item, string metadataFile, XmlReaderSettings settings, Encoding encoding, CancellationToken cancellationToken) { + item.ResetPeople(); + using (var streamReader = new StreamReader(metadataFile, encoding)) { // Use XmlReader for best performance @@ -492,7 +494,7 @@ namespace MediaBrowser.Controller.Providers { continue; } - PeopleHelper.AddPerson(itemResult.People, p); + itemResult.AddPerson(p); } break; } @@ -504,7 +506,7 @@ namespace MediaBrowser.Controller.Providers { continue; } - PeopleHelper.AddPerson(itemResult.People, p); + itemResult.AddPerson(p); } break; } @@ -529,7 +531,7 @@ namespace MediaBrowser.Controller.Providers { continue; } - PeopleHelper.AddPerson(itemResult.People, p); + itemResult.AddPerson(p); } } break; @@ -543,7 +545,7 @@ namespace MediaBrowser.Controller.Providers { continue; } - PeopleHelper.AddPerson(itemResult.People, p); + itemResult.AddPerson(p); } break; } @@ -1156,7 +1158,7 @@ namespace MediaBrowser.Controller.Providers { continue; } - PeopleHelper.AddPerson(item.People, person); + item.AddPerson(person); } } break; diff --git a/MediaBrowser.Controller/Providers/MetadataResult.cs b/MediaBrowser.Controller/Providers/MetadataResult.cs index a18dd83e8..68cdf4d72 100644 --- a/MediaBrowser.Controller/Providers/MetadataResult.cs +++ b/MediaBrowser.Controller/Providers/MetadataResult.cs @@ -10,9 +10,26 @@ namespace MediaBrowser.Controller.Providers public bool HasMetadata { get; set; } public T Item { get; set; } - public MetadataResult() + public void AddPerson(PersonInfo p) { - People = new List<PersonInfo>(); + if (People == null) + { + People = new List<PersonInfo>(); + } + + PeopleHelper.AddPerson(People, p); + } + + /// <summary> + /// Not only does this clear, but initializes the list so that services can differentiate between a null list and zero people + /// </summary> + public void ResetPeople() + { + if (People == null) + { + People = new List<PersonInfo>(); + } + People.Clear(); } } }
\ No newline at end of file |
