예제 #1
0
 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);
            }
        }