private void CompleteActivities()

in code/KustoCopyConsole/Runner/IterationCompletingRunner.cs [83:106]


        private void CompleteActivities()
        {
            var candidateActivities = RowItemGateway.InMemoryCache
                .ActivityMap
                .Values
                .Where(a => a.RowItem.State != ActivityState.Completed)
                //  There is at least one iteration:  exclude iteration-less activities
                .Where(a => a.IterationMap.Any())
                //  All iterations are completed
                .Where(a => !a.IterationMap.Values.Any(i => i.RowItem.State != IterationState.Completed))
                .Select(a => a.RowItem);

            foreach (var activity in candidateActivities)
            {
                if (!Parameterization.IsContinuousRun
                    || Parameterization.Activities[activity.ActivityName].TableOption.ExportMode
                    == ExportMode.BackfillOnly)
                {
                    var newActivity = activity.ChangeState(ActivityState.Completed);

                    RowItemGateway.Append(newActivity);
                }
            }
        }