public async Task Run([OrchestrationTrigger] DurableOrchestrationContext context,
                              ILogger log)
        {
            var weekModel = context.GetInput <WeekModel>();

            var resultModel = new ResultModel();

            do
            {
                var weekResultModel = await context.CallActivityAsync <ResultModel>(nameof(WeekActivity), weekModel);

                resultModel.AddResult(weekResultModel);
            }while (!resultModel.Finished);

            if (_options.DraftShiftsEnabled && resultModel.CreatedCount > 0)
            {
                var shareModel = new ShareModel
                {
                    TeamId    = weekModel.TeamId,
                    StartDate = weekModel.StartDate,
                    EndDate   = weekModel.StartDate.AddWeek()
                };
                await context.CallActivityAsync(nameof(ShareActivity), shareModel);
            }
        }
Exemple #2
0
        public async Task Run(
            [OrchestrationTrigger] DurableOrchestrationContext context,
            ILogger log)
        {
            var clearScheduleModel = context.GetInput <ClearScheduleModel>();

            log.LogClearStart(clearScheduleModel);

            var resultModel = new ResultModel();

            do
            {
                var activityResultModel = await context.CallActivityAsync <ResultModel>(nameof(ClearShiftsActivity), clearScheduleModel);

                resultModel.AddResult(activityResultModel);
            }while (!resultModel.Finished && ++resultModel.IterationCount < _options.ClearScheduleMaxAttempts);

            log.LogClearEnd(clearScheduleModel, resultModel);
        }