public async Task WriteLatestViewAsync()

in code/KustoCopyConsole/Storage/LogStorage.cs [230:280]


        public async Task WriteLatestViewAsync(IEnumerable<byte> content, CancellationToken ct)
        {
            var completedShards = await SealShardAsync(ct);

            if (completedShards >= 1)
            {
                await AtomicReplaceAsync(
                    LATEST_PATH,
                    async tempStorage =>
                    {
                        using (var memoryStream = new MemoryStream())
                        {   //  Headers for the view
                            var header = new VersionHeader { AppVersion = _appVersion };
                            var viewInfo = new ViewInfo
                            {
                                LastShardIncluded = completedShards
                            };

                            JsonSerializer.Serialize(
                                memoryStream,
                                header,
                                HeaderJsonContext.Default.VersionHeader);
                            memoryStream.WriteByte((byte)'\n');
                            JsonSerializer.Serialize(
                                memoryStream,
                                viewInfo,
                                HeaderJsonContext.Default.ViewInfo);
                            memoryStream.WriteByte((byte)'\n');
                            await tempStorage.AtomicAppendAsync(memoryStream.ToArray(), ct);
                        }
                        var appendBlock = new List<byte>(MaxBufferSize);

                        //  Content of the view
                        foreach (var character in content)
                        {
                            appendBlock.Add(character);
                            if (appendBlock.Count == MaxBufferSize)
                            {
                                await tempStorage.AtomicAppendAsync(appendBlock, ct);
                                appendBlock.Clear();
                            }
                        }
                        //  Push the remainder of content
                        if (appendBlock.Any())
                        {
                            await tempStorage.AtomicAppendAsync(appendBlock, ct);
                        }
                    },
                    ct);
            }
        }