Files
messengerapi.Broker/code/MessengerBroker.Configuration/Parsers/ApiEnvironmentPersistenceConfigurationParser.cs

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.");
}
}
}