Ejemplo n.º 1
0
        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));
        }
Ejemplo n.º 2
0
        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)));
        }