diff --git a/TimetableDesigner.Backend.Events/EventQueue.cs b/TimetableDesigner.Backend.Events/EventQueue.cs index 062f6ba..253dc64 100644 --- a/TimetableDesigner.Backend.Events/EventQueue.cs +++ b/TimetableDesigner.Backend.Events/EventQueue.cs @@ -4,8 +4,14 @@ namespace TimetableDesigner.Backend.Events; public abstract class EventQueue where TSelf : EventQueue { - public abstract void Setup(IServiceCollection services, TBuilder configuration) - where TBuilder : EventQueueBuilder; - - public abstract void Setup(IServiceCollection services, string connectionString); + public void Setup(IServiceCollection services, TBuilder configuration) + where TBuilder : EventQueueBuilder => + Setup(services, configuration.GetConnectionParameters()); + + public void Setup(IServiceCollection services, string connectionString) + => Setup(services, connectionString.Split(';') + .Select(x => x.Split('=')) + .ToDictionary(x => x.First(), x => x.Last())); + + protected abstract void Setup(IServiceCollection services, IDictionary connectionParameters); } diff --git a/TimetableDesigner.Backend.Events/EventQueueBuilder.cs b/TimetableDesigner.Backend.Events/EventQueueBuilder.cs index a854ef0..cc149f6 100644 --- a/TimetableDesigner.Backend.Events/EventQueueBuilder.cs +++ b/TimetableDesigner.Backend.Events/EventQueueBuilder.cs @@ -1,3 +1,6 @@ namespace TimetableDesigner.Backend.Events; -public abstract class EventQueueBuilder where TQueue : EventQueue; \ No newline at end of file +public abstract class EventQueueBuilder where TQueue : EventQueue +{ + public abstract IDictionary GetConnectionParameters(); +} \ No newline at end of file