public void SetUserInfoSync(List <MediaBrowser.Model.Dto.UserItemDataDto> dtos, List <LibItem> itemRefs, string userName, string userId, CancellationToken cancellationToken)
        {
            var newRecs = new List <UserInfoRec>();
            var upRecs  = new List <UserInfoRec>();

            lock (_userLock)
            {
                dtos.ForEach(dto =>
                {
                    var sJson = json.SerializeToString(dto).ToString();
                    logger.LogDebug("Updating ItemId '{0}' for UserId: '{1}'", dto.ItemId, userId);

                    LibItem itemref = itemRefs.Where(x => x.Id.ToString("N") == dto.ItemId).FirstOrDefault();
                    if (itemref != null)
                    {
                        var oldRec = userInfoRecs.Select(u => u.ItemId == dto.ItemId && u.UserId == userId).FirstOrDefault();
                        var newRec = new UserInfoRec()
                        {
                            ItemId       = dto.ItemId,
                            Json         = sJson,
                            UserId       = userId,
                            LastModified = (long)(DateTime.UtcNow.Subtract(new DateTime(1970, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc)).TotalSeconds),
                            MediaType    = itemref.ItemType,
                            //LibraryName = itemref.CollectionName
                        };
                        if (oldRec == null)
                        {
                            newRecs.Add(newRec);
                        }
                        else
                        {
                            newRec.Id = oldRec.Id;
                            upRecs.Add(newRec);
                        }
                    }
                });

                if (newRecs.Count > 0)
                {
                    userInfoRecs.Insert(newRecs);
                }
                if (upRecs.Count > 0)
                {
                    var data = userInfoRecs.Select();

                    foreach (var rec in upRecs)
                    {
                        data.Where(d => d.Id == rec.Id).ToList().ForEach(u =>
                        {
                            u.ItemId       = rec.ItemId;
                            u.Json         = rec.Json;
                            u.UserId       = rec.UserId;
                            u.LastModified = rec.LastModified;
                            u.MediaType    = rec.MediaType;
                        });
                    }
                    userInfoRecs.Commit(data);
                }
            }
        }
        public void SetUserInfoSync(List <MediaBrowser.Model.Dto.UserItemDataDto> dtos, List <LibItem> itemRefs, string userId)
        {
            var newRecs            = new List <UserInfoRec>();
            var upRecs             = new List <UserInfoRec>();
            var userInfoCollection = _liteDb.GetCollection <UserInfoRec>(UserInfoCollection);

            dtos.ForEach(dto =>
            {
                _logger.LogDebug("Updating ItemId '{0}' for UserId: '{1}'", dto.ItemId, userId);

                Guid dtoItemId  = Guid.Parse(dto.ItemId);
                LibItem itemref = itemRefs.FirstOrDefault(x => x.Id == dtoItemId);
                if (itemref != null)
                {
                    var sJson  = System.Text.Json.JsonSerializer.Serialize(dto, _jsonSerializerOptions);
                    var oldRec = userInfoCollection.Find(u => u.ItemId == dto.ItemId && u.UserId == userId).FirstOrDefault();
                    var newRec = new UserInfoRec
                    {
                        ItemId       = dto.ItemId,
                        Json         = sJson,
                        UserId       = userId,
                        LastModified = DateTimeOffset.Now.ToUnixTimeSeconds(),
                        MediaType    = itemref.ItemType
                    };
                    if (oldRec == null)
                    {
                        newRecs.Add(newRec);
                    }
                    else
                    {
                        newRec.Id = oldRec.Id;
                        upRecs.Add(newRec);
                    }
                }
            });

            if (newRecs.Count > 0)
            {
                userInfoCollection.Insert(newRecs);
            }

            if (upRecs.Count > 0)
            {
                var data = userInfoCollection.FindAll().ToList();

                foreach (var rec in upRecs)
                {
                    data.Where(d => d.Id == rec.Id).ToList().ForEach(u =>
                    {
                        u.ItemId       = rec.ItemId;
                        u.Json         = rec.Json;
                        u.UserId       = rec.UserId;
                        u.LastModified = rec.LastModified;
                        u.MediaType    = rec.MediaType;
                    });
                }

                userInfoCollection.Update(data);
            }
        }