public static object Convert(JsonTemplate template)
        {
            if (template == null)
            {
                throw new ArgumentNullException(nameof(template));
            }

            return(template switch
            {
                JsonTemplateNull _ => null,
                JsonTemplateBoolean b => b.Value,
                JsonTemplateNumber n => ConvertNumber(n),
                JsonTemplateString s => s.Value,
                JsonTemplateArray a => ConvertArray(a),
                JsonTemplateObject o => ConvertObject(o),
                JsonTemplateCall c => throw new ArgumentException($"The call `{c.Name}` was not evaluated."),
                _ => throw new ArgumentOutOfRangeException(nameof(template)),
            });
Пример #2
0
        protected override async Task <int> Run()
        {
            var connection = _connectionFactory.Connect(_connection);

            var(url, _) = _connectionFactory.GetConnectionDetails(_connection);
            if (!_confirm.TryConfirm($"This will apply sample configuration items to the Seq server at {url}."))
            {
                await Console.Error.WriteLineAsync("Canceled by user.");

                return(1);
            }

            var templateArgs = new Dictionary <string, JsonTemplate>();

            templateArgs["ownerId"] = new JsonTemplateNull();

            var templatesPath = Content.GetPath(Path.Combine("Sample", "Templates"));
            var templateFiles = Directory.GetFiles(templatesPath);
            var templates     = new List <EntityTemplate>();

            foreach (var templateFile in templateFiles)
            {
                if (!EntityTemplateLoader.Load(templateFile, out var template, out var error))
                {
                    await Console.Error.WriteLineAsync(error);

                    return(1);
                }

                templates.Add(template);
            }

            var err = await TemplateSetImporter.ImportAsync(templates, connection, templateArgs, new TemplateImportState(), merge : false);

            if (err != null)
            {
                await Console.Error.WriteLineAsync(err);

                return(1);
            }

            return(0);
        }