///<summary>Finish work if it's due to be done.</summary> private async Task HandleWorker(WoTDbContext db, CharacterWork worker) { var args = await worker.UpdateAsync(db); if (args != null) { WorkFinished?.Invoke(worker, args); Logger?.LogLine(this, args.ToString(), LogSeverity.Verbose); } }
public async Task UpdateAsync(IServiceProvider services) { WoTDbContext db = services.GetRequiredService <WoTDbContext>(); IQueryable <CharacterWork> workers = db.Set <CharacterWork>().Where(x => x.IsWorking); foreach (CharacterWork worker in workers) { await HandleWorker(db, worker); } }