Esempio n. 1
0
        public async Task Set(LibraryItemStatus status)
        {
            using (var task = new UpdateLibraryTask(status))
            {
                task.InitializeComponent(this.Core);
                await this.OnBackgroundTask(task).ConfigureAwait(false);

                await task.Run().ConfigureAwait(false);
            }
        }
        public async Task Populate(LibraryItemStatus libraryItemStatus, CancellationToken cancellationToken)
        {
            var query = this.Database
                        .AsQueryable <LibraryItem>(this.Database.Source(new DatabaseQueryComposer <LibraryItem>(this.Database), this.Transaction))
                        .Where(libraryItem => libraryItem.Status == libraryItemStatus && !libraryItem.MetaDatas.Any());

            await this.Populate(query, cancellationToken).ConfigureAwait(false);

            await new LibraryVariousArtistsPopulator(this.Database).Populate(libraryItemStatus, this.Transaction).ConfigureAwait(false);
        }
 public Task Clear(LibraryItemStatus libraryItemStatus, ITransactionSource transaction)
 {
     return(this.Database.ExecuteAsync(this.Database.Queries.RemoveLibraryVariousArtists, (parameters, phase) =>
     {
         switch (phase)
         {
         case DatabaseParameterPhase.Fetch:
             parameters["name"] = CustomMetaData.VariousArtists;
             parameters["type"] = MetaDataItemType.Tag;
             parameters["status"] = libraryItemStatus;
             break;
         }
     }, transaction));
 }
Esempio n. 4
0
        public static async Task SetLibraryItemsStatus(IDatabaseComponent database, LibraryItemStatus status)
        {
            var query = database.QueryFactory.Build();

            query.Update.SetTable(database.Tables.LibraryItem);
            query.Update.AddColumn(database.Tables.LibraryItem.Column("Status"));
            using (var transaction = database.BeginTransaction(database.PreferredIsolationLevel))
            {
                await database.ExecuteAsync(query, (parameters, phase) =>
                {
                    switch (phase)
                    {
                    case DatabaseParameterPhase.Fetch:
                        parameters["status"] = status;
                        break;
                    }
                }, transaction).ConfigureAwait(false);

                transaction.Commit();
            }
        }
 public LibraryItemsAdapter(ILibraryItem item, int daysTillDue)
 {
     Item        = item;
     DaysTillDue = daysTillDue;
     ItemStatus  = CalculateItemStatus(item, daysTillDue);
 }
Esempio n. 6
0
 public UpdateLibraryTask(LibraryItemStatus status) : base()
 {
     this.Status = status;
 }
Esempio n. 7
0
 public UpdateLibraryTask(IEnumerable <LibraryItem> libraryItems, LibraryItemStatus status) : this(status)
 {
     this.LibraryItems = libraryItems;
 }