using System; using MediaBrowser.Controller.Library; using MediaBrowser.Model.Activity; using MediaBrowser.Model.Events; using MediaBrowser.Model.Querying; namespace Emby.Server.Implementations.Activity { /// /// The activity log manager. /// public class ActivityManager : IActivityManager { private readonly IActivityRepository _repo; private readonly IUserManager _userManager; /// /// Initializes a new instance of the class. /// /// The activity repository. /// The user manager. public ActivityManager(IActivityRepository repo, IUserManager userManager) { _repo = repo; _userManager = userManager; } /// public event EventHandler> EntryCreated; public void Create(ActivityLogEntry entry) { entry.Date = DateTime.UtcNow; _repo.Create(entry); EntryCreated?.Invoke(this, new GenericEventArgs(entry)); } /// public QueryResult GetActivityLogEntries(DateTime? minDate, bool? hasUserId, int? startIndex, int? limit) { var result = _repo.GetActivityLogEntries(minDate, hasUserId, startIndex, limit); foreach (var item in result.Items) { if (item.UserId == Guid.Empty) { continue; } var user = _userManager.GetUserById(item.UserId); if (user != null) { var dto = _userManager.GetUserDto(user); item.UserPrimaryImageTag = dto.PrimaryImageTag; } } return result; } /// public QueryResult GetActivityLogEntries(DateTime? minDate, int? startIndex, int? limit) { return GetActivityLogEntries(minDate, null, startIndex, limit); } } }