diff --git a/MediaBrowser.Api/ApiService.cs b/MediaBrowser.Api/ApiService.cs
index 6da5071dfb..1b2ddd0b85 100644
--- a/MediaBrowser.Api/ApiService.cs
+++ b/MediaBrowser.Api/ApiService.cs
@@ -38,6 +38,7 @@ namespace MediaBrowser.Api
dto.HasPrimaryImage = !string.IsNullOrEmpty(item.LogoImagePath);
dto.HasThumb = !string.IsNullOrEmpty(item.ThumbnailImagePath);
dto.Id = item.Id;
+ dto.IsRecentlyAdded = item.IsRecentlyAdded(user);
dto.IndexNumber = item.IndexNumber;
dto.IsFolder = item is Folder;
dto.LocalTrailerCount = item.LocalTrailers == null ? 0 : item.LocalTrailers.Count();
diff --git a/MediaBrowser.Model/DTO/DTOBaseItem.cs b/MediaBrowser.Model/DTO/DTOBaseItem.cs
index c9f16ed1d7..777d03b8ad 100644
--- a/MediaBrowser.Model/DTO/DTOBaseItem.cs
+++ b/MediaBrowser.Model/DTO/DTOBaseItem.cs
@@ -96,5 +96,7 @@ namespace MediaBrowser.Model.DTO
{
return Type.Equals(type, StringComparison.OrdinalIgnoreCase);
}
+
+ public bool IsRecentlyAdded { get; set; }
}
}
diff --git a/MediaBrowser.Model/Entities/BaseItem.cs b/MediaBrowser.Model/Entities/BaseItem.cs
index 7d3663fb23..3e14c1abe9 100644
--- a/MediaBrowser.Model/Entities/BaseItem.cs
+++ b/MediaBrowser.Model/Entities/BaseItem.cs
@@ -130,5 +130,13 @@ namespace MediaBrowser.Model.Entities
return null;
}
+
+ ///
+ /// Determines if the item is considered new based on user settings
+ ///
+ public bool IsRecentlyAdded(User user)
+ {
+ return (DateTime.Now - DateCreated).TotalDays < user.RecentItemDays;
+ }
}
}
diff --git a/MediaBrowser.Model/Entities/Folder.cs b/MediaBrowser.Model/Entities/Folder.cs
index 50ce9d45ef..7ba6fbeeac 100644
--- a/MediaBrowser.Model/Entities/Folder.cs
+++ b/MediaBrowser.Model/Entities/Folder.cs
@@ -51,7 +51,7 @@ namespace MediaBrowser.Model.Entities
counts.RecentlyAddedItemCount = GetRecentlyAddedItems(recursiveChildren, user).Count();
counts.RecentlyAddedUnPlayedItemCount = GetRecentlyAddedUnplayedItems(recursiveChildren, user).Count();
counts.InProgressItemCount = GetInProgressItems(recursiveChildren, user).Count();
- counts.WatchedPercentage = GetWatchedPercentage(recursiveChildren, user);
+ counts.PlayedPercentage = GetPlayedPercentage(recursiveChildren, user);
return counts;
}
@@ -139,9 +139,7 @@ namespace MediaBrowser.Model.Entities
private static IEnumerable GetRecentlyAddedItems(IEnumerable itemSet, User user)
{
- DateTime now = DateTime.Now;
-
- return itemSet.Where(i => !(i is Folder) && (now - i.DateCreated).TotalDays < user.RecentItemDays);
+ return itemSet.Where(i => !(i is Folder) && i.IsRecentlyAdded(user));
}
private static IEnumerable GetRecentlyAddedUnplayedItems(IEnumerable itemSet, User user)
@@ -169,7 +167,7 @@ namespace MediaBrowser.Model.Entities
});
}
- private static decimal GetWatchedPercentage(IEnumerable itemSet, User user)
+ private static decimal GetPlayedPercentage(IEnumerable itemSet, User user)
{
itemSet = itemSet.Where(i => !(i is Folder));
@@ -203,7 +201,7 @@ namespace MediaBrowser.Model.Entities
return totalPercent / itemSet.Count();
}
-
+
///
/// Finds an item by ID, recursively
///
diff --git a/MediaBrowser.Model/Entities/ItemSpecialCounts.cs b/MediaBrowser.Model/Entities/ItemSpecialCounts.cs
index 8dd9a2fbd9..d5989ef1d5 100644
--- a/MediaBrowser.Model/Entities/ItemSpecialCounts.cs
+++ b/MediaBrowser.Model/Entities/ItemSpecialCounts.cs
@@ -9,6 +9,6 @@ namespace MediaBrowser.Model.Entities
public int RecentlyAddedItemCount { get; set; }
public int RecentlyAddedUnPlayedItemCount { get; set; }
public int InProgressItemCount { get; set; }
- public decimal WatchedPercentage { get; set; }
+ public decimal PlayedPercentage { get; set; }
}
}