private async Task WritePlaylistMetaData(PlaylistItem playlistItem) { using (var transaction = this.Database.BeginTransaction(this.Database.PreferredIsolationLevel)) { await this.Database.ExecuteAsync(this.Database.Queries.ClearPlaylistMetaDataItems, (parameters, phase) => { switch (phase) { case DatabaseParameterPhase.Fetch: parameters["itemId"] = playlistItem.Id; parameters["type"] = META_DATA_TYPE; break; } }, transaction).ConfigureAwait(false); using (var writer = new MetaDataWriter(this.Database, this.Database.Queries.AddPlaylistMetaDataItem, transaction)) { await writer.Write( playlistItem.Id, playlistItem.MetaDatas, metaDataItem => META_DATA_TYPE.HasFlag(metaDataItem.Type) ).ConfigureAwait(false); } if (transaction.HasTransaction) { transaction.Commit(); } } }
private async Task WriteLibraryMetaData(LibraryItem libraryItem) { using (var transaction = this.Database.BeginTransaction(this.Database.PreferredIsolationLevel)) { await this.Database.ExecuteAsync(this.Database.Queries.ClearLibraryMetaDataItems, (parameters, phase) => { switch (phase) { case DatabaseParameterPhase.Fetch: parameters["itemId"] = libraryItem.Id; parameters["type"] = META_DATA_TYPE; break; } }, transaction).ConfigureAwait(false); using (var writer = new MetaDataWriter(this.Database, this.Database.Queries.AddLibraryMetaDataItem, transaction)) { await writer.Write( libraryItem.Id, libraryItem.MetaDatas, metaDataItem => META_DATA_TYPE.HasFlag(metaDataItem.Type) ).ConfigureAwait(false); } libraryItem.ImportDate = DateTimeHelper.ToString(DateTime.UtcNow.AddSeconds(30)); await LibraryTaskBase.UpdateLibraryItem(this.Database, libraryItem, transaction).ConfigureAwait(false); if (transaction.HasTransaction) { transaction.Commit(); } } }