public async Task Startup() { if (IsEnabled) { await session.SendLocal(new BeginScheduledTask { TaskTypeFullName = this.GetType().FullName, WaitDuration = WaitDuration }).ConfigureAwait(false); } else { await session.SendLocal(new StopScheduledTask { TaskTypeFullName = this.GetType().FullName }).ConfigureAwait(false); } }
protected override async Task Handle(UpdateLevyDeclarationSagaProgressCommand request, CancellationToken cancellationToken) { var saga = await _db.LevyDeclarationSagas.SingleAsync(j => j.Id == request.SagaId, cancellationToken); var tasks = await _db.LevyDeclarationSagaTasks.Include(t => t.AccountPayeScheme).AsNoTracking().Where(t => t.SagaId == saga.Id).ToListAsync(cancellationToken); saga.UpdateProgress(tasks); if (!saga.IsComplete) { await _uniformSession.SendLocal(new UpdateLevyDeclarationSagaProgressCommand(saga.Id), LevyDeclarationSaga.Timeout); } }