Example #1
0
        public async Task SaveItem(MediaItem item)
        {
            if (_cacheRepository != null)
            {
                var wasFavorite = await _database.IsFavorite(item.Name);

                if (item.Favorite)
                {
                    if (wasFavorite)
                    {
                        AddToBackgroundTasks(_cacheRepository.UpdateCache(item));
                    }
                    else
                    {
                        AddToBackgroundTasks(_cacheRepository.AddToCache(item, GetMediaPath(item), GetThumbnailPath(item)));
                    }
                }

                if (!item.Favorite && wasFavorite)
                {
                    AddToBackgroundTasks(_cacheRepository.RemoveFromCache(item));
                }
            }

            await _database.UpdateMediaItem(item);

            foreach (var newTag in item.Tags.Where(x => !Tags.Contains(x)))
            {
                Tags.Add(newTag);
            }
        }