diff options
Diffstat (limited to 'MediaBrowser.Model/Entities')
| -rw-r--r-- | MediaBrowser.Model/Entities/BaseItem.cs | 15 | ||||
| -rw-r--r-- | MediaBrowser.Model/Entities/Folder.cs | 4 |
2 files changed, 16 insertions, 3 deletions
diff --git a/MediaBrowser.Model/Entities/BaseItem.cs b/MediaBrowser.Model/Entities/BaseItem.cs index 01a36593b..ef0ba01dc 100644 --- a/MediaBrowser.Model/Entities/BaseItem.cs +++ b/MediaBrowser.Model/Entities/BaseItem.cs @@ -58,7 +58,10 @@ namespace MediaBrowser.Model.Entities public string Overview { get; set; }
public List<string> Taglines { get; set; }
- public List<PersonInfo> People { get; set; }
+ /// <summary>
+ /// Using a Dictionary to prevent duplicates
+ /// </summary>
+ public Dictionary<string,PersonInfo> People { get; set; }
public List<string> Studios { get; set; }
@@ -152,5 +155,15 @@ namespace MediaBrowser.Model.Entities {
return (DateTime.Now - DateCreated).TotalDays < user.RecentItemDays;
}
+
+ public void AddPerson(PersonInfo person)
+ {
+ if (People == null)
+ {
+ People = new Dictionary<string, PersonInfo>(StringComparer.OrdinalIgnoreCase);
+ }
+
+ People[person.Name] = person;
+ }
}
}
diff --git a/MediaBrowser.Model/Entities/Folder.cs b/MediaBrowser.Model/Entities/Folder.cs index 5f28a9b8f..4ea3afea3 100644 --- a/MediaBrowser.Model/Entities/Folder.cs +++ b/MediaBrowser.Model/Entities/Folder.cs @@ -97,7 +97,7 @@ namespace MediaBrowser.Model.Entities {
if (c.People != null)
{
- return c.People.Any(p => p.Name.Equals(person, StringComparison.OrdinalIgnoreCase));
+ return c.People.ContainsKey(person);
}
return false;
@@ -114,7 +114,7 @@ namespace MediaBrowser.Model.Entities {
if (c.People != null)
{
- return c.People.Any(p => p.Name.Equals(person, StringComparison.OrdinalIgnoreCase) && p.Type == personType);
+ return c.People.ContainsKey(person) && c.People[person].Type.Equals(personType, StringComparison.OrdinalIgnoreCase);
}
return false;
|
