public static SearchResults <ApiUserLogItem> Search(UserFilters filters, DatabaseContext databaseContext, IUserService userService)
        {
            List <ApiUserLogItem> items = UserLogItem.GetAll(databaseContext, filters)
                                          .Select(i => new ApiUserLogItem(i, userService))
                                          .ToList();

            IEnumerable <ApiUserLogItem> page = items.Skip((filters.Page - 1) * filters.PageSize).Take(filters.PageSize);

            return(new SearchResults <ApiUserLogItem>(page, items.Count, filters.Page, filters.PageSize));
        }
        public ApiUserLogItem(UserLogItem item, IUserService userService)
        {
            PerformingUserId = item.PerformingUserId;
            PerformingUser   = string.IsNullOrEmpty(item.Username)
                ? GetUsername(PerformingUserId, userService)
                : item.Username;

            AffectedUserId = item.AffectedUserId;
            AffectedUser   = GetUsername(AffectedUserId, userService);
            Event          = item.Event.GetDisplayName();
            IpAddress      = item.IpAddress;

            DateTime localTime = item.Timestamp.ToLocalTime();

            Timestamp = $"{localTime.ToShortDateString()} {localTime.ToLongTimeString()}";
        }