private IImmutableDictionary AppendExtent()

in code/KustoCopyConsole/Entity/InMemory/RowItemInMemoryCache.cs [286:323]


        private IImmutableDictionary<string, ActivityCache> AppendExtent(ExtentRowItem item)
        {
            var activityName = item.ActivityName;

            if (ActivityMap.ContainsKey(activityName))
            {
                var activity = ActivityMap[activityName];

                if (activity.IterationMap.ContainsKey(item.IterationId))
                {
                    var iteration = activity.IterationMap[item.IterationId];

                    if (iteration.BlockMap.ContainsKey(item.BlockId))
                    {
                        var block = iteration.BlockMap[item.BlockId];
                        var newActivityMap = ActivityMap.SetItem(
                            activityName,
                            activity.AppendIteration(
                                iteration.AppendBlock(
                                    block.AppendExtent(new ExtentCache(item)))));

                        return newActivityMap;
                    }
                    else
                    {
                        throw new NotSupportedException("Block should come before extent in logs");
                    }
                }
                else
                {
                    throw new NotSupportedException("Iteration should come before block in logs");
                }
            }
            else
            {
                throw new NotSupportedException("Activity should come before iteration in logs");
            }
        }