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)), });
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); }