Beispiel #1
0
        async Task IActionProvider.ProcessDeltaCommandsAsync(
            bool doNotProcessIfDataLoss,
            CommandCollection commands,
            CancellationToken ct)
        {
            var commandGroups = commands
                                .AllCommands
                                .GroupBy(c => c.ScriptPath);

            foreach (var group in commandGroups)
            {
                var fullPath = Path.Combine(_folderPath, $"{group.Key}.kql");
                var builder  = new StringBuilder();

                foreach (var command in group)
                {
                    var script = command.ToScript();

                    builder.Append(script);
                    builder.AppendLine();
                    builder.AppendLine();
                }
                await _fileGateway.SetFileContentAsync(fullPath, builder.ToString(), ct);
            }
        }
Beispiel #2
0
        async Task IActionProvider.ProcessDeltaCommandsAsync(
            bool doNotProcessIfDataLoss,
            CommandCollection commands,
            CancellationToken ct)
        {
            var builder = new StringBuilder();

            foreach (var group in commands.CommandGroups)
            {
                builder.Append("//  ");
                builder.Append(group.HeaderComment);
                builder.AppendLine();
                builder.AppendLine();

                foreach (var command in group.Commands)
                {
                    var script = command.ToScript();

                    builder.Append(script);
                    builder.AppendLine();
                    builder.AppendLine();
                }
            }
            await _fileGateway.SetFileContentAsync(
                _filePath,
                builder.ToString(),
                ct);
        }
        async Task IActionProvider.ProcessDeltaCommandsAsync(
            bool doNotProcessIfDataLoss,
            CommandCollection commands,
            CancellationToken ct)
        {
            using (var stream = new MemoryStream())
                using (var writer = new StreamWriter(stream))
                    using (var csvWriter = new CsvWriter(writer, CultureInfo.InvariantCulture))
                    {
                        csvWriter.WriteHeader <CommandRow>();
                        csvWriter.NextRecord();

                        foreach (var group in commands.CommandGroups)
                        {
                            foreach (var command in group.Commands)
                            {
                                var row = new CommandRow
                                {
                                    Command    = command.CommandFriendlyName,
                                    ScriptPath = command.ScriptPath,
                                    Script     = command.ToScript()
                                };

                                csvWriter.WriteRecord(row);
                            }
                        }
                        csvWriter.Flush();
                        writer.Flush();
                        stream.Flush();

                        var csvContent = ASCIIEncoding.UTF8.GetString(stream.ToArray());

                        await _fileGateway.SetFileContentAsync(
                            _filePath,
                            csvContent,
                            ct);
                    }
        }