private static JsonSchema CreateAddonAdapter(JsonSchema docSchema, IProviderProcessorAdapter inputOutputAdapter) { var connectionParameterSchema = JsonSchema .FromType(inputOutputAdapter.ConnectionParametersType) .AddAsDefinition(docSchema); var adapterSchema = JsonSchemaEx .CreateObject($"Adapter_{inputOutputAdapter.Name}") .AddProperty("Type", new JsonSchemaProperty { Pattern = $"^{inputOutputAdapter.Name}$" }, true) .AddProperty("Connection", connectionParameterSchema, false); if (inputOutputAdapter.ProviderParametersType != null) { var providerParameterSchema = JsonSchema .FromType(inputOutputAdapter.ProviderParametersType) .AddStringProperty("Name", false); var providersSchema = JsonSchemaEx .CreateDictionary($"Sources_{inputOutputAdapter.Name}", providerParameterSchema) .AddAsDefinition(docSchema); adapterSchema .AddProperty("Providers", providersSchema, false); } if (inputOutputAdapter.ProcessorParametersType != null) { var processorParameterSchema = JsonSchema .FromType(inputOutputAdapter.ProcessorParametersType) .AddStringProperty("Name", false); var processorsSchema = JsonSchemaEx .CreateDictionary($"Processes_{inputOutputAdapter.Name}", processorParameterSchema) .AddAsDefinition(docSchema); adapterSchema .AddProperty("Processors", processorsSchema, false); } return(adapterSchema.AddAsDefinition(docSchema)); }
private IFileValueProvider ParseProvider(string connectionName, object connectionParameters, IProviderProcessorAdapter adapter, JProperty i) { var code = i.Name; var value = i.Value; var connectorNode = (JObject)i.Value; var name = ((string)connectorNode["Name"]) ?? code; return(adapter.CreateProvider(code, name, connectionName, connectionParameters, connectorNode.ToObject(adapter.ProviderParametersType))); }