Skip to content

Commit

Permalink
Allowing for using "generic connection string" directly in [mysql.con…
Browse files Browse the repository at this point in the history
…nect]
  • Loading branch information
Thomas Hansen committed Sep 4, 2019
1 parent d84ab50 commit 8562ed3
Showing 1 changed file with 12 additions and 1 deletion.
13 changes: 12 additions & 1 deletion plugins/magic.lambda.mysql/Connect.cs
Expand Up @@ -6,6 +6,7 @@
using System;
using System.Collections.Generic;
using MySql.Data.MySqlClient;
using Microsoft.Extensions.Configuration;
using magic.node;
using ut = magic.utils;
using magic.node.extensions;
Expand All @@ -18,17 +19,27 @@ public class Connect : ISlot, IMeta
{
readonly ISignaler _signaler;
readonly ut.Stack<MySqlConnection> _connections;
readonly IConfiguration _configuration;

public Connect(ISignaler signaler, ut.Stack<MySqlConnection> connections)
public Connect(ISignaler signaler, ut.Stack<MySqlConnection> connections, IConfiguration configuration)
{
_signaler = signaler ?? throw new ArgumentNullException(nameof(signaler));
_connections = connections ?? throw new ArgumentNullException(nameof(connections));
_configuration = configuration ?? throw new ArgumentNullException(nameof(configuration));
}

public void Signal(Node input)
{
var connectionString = input.GetEx<string>(_signaler);

// Checking if this is a "generic connection string".
if (connectionString.StartsWith("[", StringComparison.InvariantCulture) &&
connectionString.EndsWith("]", StringComparison.InvariantCulture))
{
var generic = _configuration["databases:mysql:generic"];
connectionString = generic.Replace("{database}", connectionString.Substring(1, connectionString.Length - 2));
}

using (var connection = new MySqlConnection(connectionString))
{
connection.Open();
Expand Down

0 comments on commit 8562ed3

Please sign in to comment.