public void FilterParserTest006() { var minRating = "4"; var maxLastPlayed = DateTimeHelper.ToString(DateTime.Now.AddDays(-30).Date); var filter = string.Format("rating>:{0} lastplayed<{1}", minRating, maxLastPlayed); var expected = new FilterParserResult( new[] { new FilterParserResultGroup( new[] { new FilterParserResultEntry(CommonStatistics.Rating, FilterParserEntryOperator.GreaterEqual, "4"), } ), new FilterParserResultGroup( new[] { new FilterParserResultEntry(CommonStatistics.LastPlayed, FilterParserEntryOperator.Less, maxLastPlayed) } ) } ); var actual = default(IFilterParserResult); Assert.IsTrue(this.Core.Components.FilterParser.TryParse( filter, out actual )); Assert.AreEqual(expected, actual); }
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(); } } }
protected virtual void UpdateLastPlayed(IDictionary <string, MetaDataItem> metaDatas) { var metaDataItem = default(MetaDataItem); if (!metaDatas.TryGetValue(CommonStatistics.LastPlayed, out metaDataItem)) { metaDataItem = new MetaDataItem(CommonStatistics.LastPlayed, MetaDataItemType.Tag); this.PlaylistItem.MetaDatas.Add(metaDataItem); } //TODO: I can't work out what the standard is for this value. //TODO: I've seen DateTime.ToFileTime() but that seems a little too windows-ish. //TODO: Using yyyy/MM/dd HH:mm:ss for now. metaDataItem.Value = DateTimeHelper.ToString(DateTime.UtcNow); }
protected virtual async Task Deschedule(PlaylistItem playlistItem) { playlistItem.Flags &= ~PlaylistItemFlags.Export; if (playlistItem.LibraryItem_Id.HasValue) { await LibraryTaskBase.UpdateLibraryItem( this.Database, playlistItem.LibraryItem_Id.Value, libraryItem => { libraryItem.ImportDate = DateTimeHelper.ToString(DateTime.UtcNow.AddSeconds(30)); libraryItem.Flags &= ~LibraryItemFlags.Export; } ).ConfigureAwait(false); } await PlaylistTaskBase.UpdatePlaylistItem(this.Database, playlistItem).ConfigureAwait(false); }
protected virtual Task Deschedule(LibraryItem libraryItem) { libraryItem.ImportDate = DateTimeHelper.ToString(DateTime.UtcNow.AddSeconds(30)); libraryItem.Flags &= ~LibraryItemFlags.Export; return(LibraryTaskBase.UpdateLibraryItem(this.Database, libraryItem)); }
public void SetImportDate(DateTime value) { this.ImportDate = DateTimeHelper.ToString(value); }