private IImmutableDictionary AppendBlock()

in code/KustoCopyConsole/Entity/InMemory/RowItemInMemoryCache.cs [197:236]


        private IImmutableDictionary<string, ActivityCache> AppendBlock(BlockRowItem 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];

                        return ActivityMap.SetItem(
                            activityName,
                            activity.AppendIteration(
                                iteration.AppendBlock(
                                    new BlockCache(item, block.UrlMap, block.ExtentMap))));
                    }
                    else
                    {
                        return ActivityMap.SetItem(
                            activityName,
                            activity.AppendIteration(
                                iteration.AppendBlock(new BlockCache(item))));
                    }
                }
                else
                {
                    throw new NotSupportedException("Iteration should come before block in logs");
                }
            }
            else
            {
                throw new NotSupportedException("Activity should come before block in logs");
            }
        }