private static void AddConsoleLoggerOptionsSubSchema <TOptions>(GenerationContext context, ConsoleLoggerFormat consoleLoggerFormat) { JsonSchema consoleLoggerOptionsSchema = new JsonSchema(); consoleLoggerOptionsSchema.RequiredProperties.Add(nameof(ConsoleLoggerOptions.FormatterName)); JsonSchemaProperty formatterOptionsProperty = AddDiscriminatedSubSchema( context.Schema.Definitions[nameof(ConsoleLoggerOptions)], nameof(ConsoleLoggerOptions.FormatterName), consoleLoggerFormat.ToString(), nameof(ConsoleLoggerOptions.FormatterOptions), consoleLoggerOptionsSchema); formatterOptionsProperty.Reference = context.AddTypeIfNotExist <TOptions>(); }
private static void AddDefaultConsoleLoggerOptionsSubSchema(GenerationContext context) { JsonSchema consoleLoggerOptionsSchema = new JsonSchema(); JsonSchemaProperty formatterNameProperty = new JsonSchemaProperty(); JsonSchemaProperty formatterOptionsProperty = new JsonSchemaProperty(); formatterOptionsProperty.Reference = context.AddTypeIfNotExist <SimpleConsoleFormatterOptions>(); formatterNameProperty.Type = JsonObjectType.Null; formatterNameProperty.Default = "Simple"; consoleLoggerOptionsSchema.Properties.Add(nameof(ConsoleLoggerOptions.FormatterName), formatterNameProperty); consoleLoggerOptionsSchema.Properties.Add(nameof(ConsoleLoggerOptions.FormatterOptions), formatterOptionsProperty); context.Schema.Definitions[nameof(ConsoleLoggerOptions)].OneOf.Add(consoleLoggerOptionsSchema); }
private static void AddCollectionRuleTriggerSchema <TOptions>(GenerationContext context, JsonSchema triggerTypeSchema, string triggerType) { JsonSchema subSchema = new JsonSchema(); subSchema.RequiredProperties.Add(nameof(CollectionRuleTriggerOptions.Settings)); JsonSchemaProperty settingsProperty = AddDiscriminatedSubSchema( context.Schema.Definitions[nameof(CollectionRuleTriggerOptions)], nameof(CollectionRuleTriggerOptions.Type), triggerType, nameof(CollectionRuleTriggerOptions.Settings), subSchema); settingsProperty.Reference = context.AddTypeIfNotExist <TOptions>(); triggerTypeSchema.Enumeration.Add(triggerType); }