Exemple #1
0
        private (IConnector Connector, IConnection Connection, string Name) GetConnection(BlockConfig config, IFlowContext context)
        {
            var(connectorName, name) = config.Type.SplitType();
            var connector = connectorRegistry.Get(connectorName);

            if (connector is null)
            {
                throw new FlowException($"Unable to acquire connector \"{connectorName}\".", context);
            }

            var connectionConfiguration = configurationProvider
                                          .GetConnectionConfiguration(connectorName, config.Configuration)
                                          .Map(connector.ConfigurationType);
            var connection = connector.GetConnection(connectionConfiguration);

            if (connection is null)
            {
                throw new FlowException($"Unable to acquire connection for \"{connectorName}\" and configuration {{{connectionConfiguration}}}.", context);
            }

            return(connector, connection, name);
        }