Configuration for Broker.
This commit is contained in:
@ -0,0 +1,27 @@
|
||||
using MessengerApi.Configuration.Model.Persistence;
|
||||
using MessengerApi.Configuration.Model.Persistence.Base;
|
||||
using MessengerApi.Configuration.Parsers;
|
||||
using MessengerApi.Configuration.Sources.Environment;
|
||||
using MessengerBroker.Configuration.Sources.Environment;
|
||||
|
||||
namespace MessengerBroker.Configuration.Parsers
|
||||
{
|
||||
public class ApiEnvironmentPersistenceConfigurationParser
|
||||
{
|
||||
public static PersistenceConfiguration Parse(IEnvironmentConfigurationSource config)
|
||||
{
|
||||
var type = PersistenceTypeParser.Parse(config.GetValue<string>(Constants.EnvironmentVariables.API_PERSISTENCE_TYPE));
|
||||
|
||||
if (type == MessengerApi.Configuration.Enums.PersistenceTypes.Sql)
|
||||
{
|
||||
return new SqlPersistenceConfiguration(config);
|
||||
}
|
||||
else if (type == MessengerApi.Configuration.Enums.PersistenceTypes.PostgreSql)
|
||||
{
|
||||
return new NpgPersistenceConfiguration(config);
|
||||
}
|
||||
|
||||
throw new InvalidOperationException("Unrecognized persistence type.");
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,27 @@
|
||||
using MessengerBroker.Configuration.Model.Servers;
|
||||
|
||||
namespace MessengerBroker.Configuration.Parsers
|
||||
{
|
||||
public class MasterServerParser
|
||||
{
|
||||
public static MasterServer[] Parse(string value)
|
||||
{
|
||||
var servers = new List<MasterServer>();
|
||||
var values = value.Split(';', StringSplitOptions.RemoveEmptyEntries | StringSplitOptions.TrimEntries);
|
||||
|
||||
foreach(var v in values)
|
||||
{
|
||||
var props = v.Split(',', StringSplitOptions.RemoveEmptyEntries | StringSplitOptions.TrimEntries);
|
||||
|
||||
servers.Add(new MasterServer
|
||||
{
|
||||
BrokerId = Guid.Parse(props[0]),
|
||||
BrokerUrl = props[1],
|
||||
Name = props[2]
|
||||
});
|
||||
}
|
||||
|
||||
return servers.ToArray();
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,26 @@
|
||||
using MessengerBroker.Configuration.Model.Servers;
|
||||
|
||||
namespace MessengerBroker.Configuration.Parsers
|
||||
{
|
||||
public static class SlaveServerParser
|
||||
{
|
||||
public static SlaveServer[] Parse(string value)
|
||||
{
|
||||
var servers = new List<SlaveServer>();
|
||||
var values = value.Split(';', StringSplitOptions.RemoveEmptyEntries | StringSplitOptions.TrimEntries);
|
||||
|
||||
foreach (var v in values)
|
||||
{
|
||||
var props = v.Split(',', StringSplitOptions.RemoveEmptyEntries | StringSplitOptions.TrimEntries);
|
||||
|
||||
servers.Add(new SlaveServer
|
||||
{
|
||||
BrokerId = Guid.Parse(props[0]),
|
||||
Name = props[1]
|
||||
});
|
||||
}
|
||||
|
||||
return servers.ToArray();
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user