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); } }