27 lines
1.2 KiB
C#
27 lines
1.2 KiB
C#
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.GetValue<string>(Constants.EnvironmentVariables.API_SQL_CONNECTIONSTRING));
|
|
}
|
|
else if (type == MessengerApi.Configuration.Enums.PersistenceTypes.PostgreSql)
|
|
{
|
|
return new NpgPersistenceConfiguration(config.GetValue<string>(Constants.EnvironmentVariables.API_NPG_CONNECTIONSTRING));
|
|
}
|
|
|
|
throw new InvalidOperationException("Unrecognized persistence type.");
|
|
}
|
|
}
|
|
} |