public static async Task RunOrchestrator(
            [OrchestrationTrigger] IDurableOrchestrationContext context,
            CancellationToken token)
        {
            var  timeSince = DateTime.UtcNow.AddDays(-1);
            bool needToContinue;
            var  page = 0;

            do
            {
                needToContinue = false;
                //TODO check assignment
                var query  = new GetUpdatesEmailUsersQuery(timeSince, page++);
                var result = await context.CallActivityAsync <IEnumerable <UpdateUserEmailDto> >("EmailUpdateFunction_UserQuery", query);

                foreach (var emailDto in result)
                {
                    if (token.IsCancellationRequested)
                    {
                        break;
                    }
                    needToContinue = true;
                    emailDto.Since = timeSince;
                    await context.CallActivityAsync <string>("EmailUpdateFunction_Process", emailDto);
                }
            } while (needToContinue);
        }
        public static async Task <IEnumerable <UpdateUserEmailDto> > GetUserQuery(
            [ActivityTrigger] GetUpdatesEmailUsersQuery query,
            [Inject] IQueryBus queryBus,
            CancellationToken token)
        {
            var result = await queryBus.QueryAsync(query, token);

            return(result);
        }
Example #3
0
 public async Task GetUpdatesEmailUsersQuery_Ok()
 {
     var query = new GetUpdatesEmailUsersQuery(DateTime.UtcNow.AddDays(-1), 0);
     var _     = await fixture.QueryBus.QueryAsync(query, default);
 }