@@ -10,17 +10,9 @@ namespace SnackTime.Core
10
10
{
11
11
public class DependencyModule : Module
12
12
{
13
- private readonly SonarrConfig _sonarrConfig ;
14
-
15
- public DependencyModule ( SonarrConfig sonarrConfig )
16
- {
17
- _sonarrConfig = sonarrConfig ;
18
- }
19
-
20
13
protected override void Load ( ContainerBuilder builder )
21
14
{
22
- var sonarrClient = new SonarrClient ( _sonarrConfig . Host , _sonarrConfig . Port , _sonarrConfig . ApiKey ) ;
23
- builder . RegisterInstance ( sonarrClient ) . As < SonarrClient > ( ) ;
15
+ builder . RegisterType < SonarrFactory > ( ) . AsSelf ( ) ;
24
16
25
17
builder . RegisterType < DatabaseFactory > ( ) . AsSelf ( ) ;
26
18
@@ -45,4 +37,31 @@ public class SonarrConfig
45
37
public string ApiKey { get ; set ; }
46
38
}
47
39
}
40
+
41
+ public class SonarrFactory
42
+ {
43
+ private readonly SettingsService _settingsService ;
44
+
45
+ public SonarrFactory ( SettingsService settingsService )
46
+ {
47
+ _settingsService = settingsService ;
48
+ }
49
+
50
+ public SonarrClient GetClient ( )
51
+ {
52
+ var host = "localhost" ;
53
+ var port = 8989 ;
54
+ var apiKey = "2e8fcac32bf147608239cab343617485" ;
55
+
56
+ var settings = _settingsService . Get ( ) ;
57
+
58
+ if ( ! string . IsNullOrWhiteSpace ( settings . MediaServerAddress ) )
59
+ {
60
+ host = settings . MediaServerAddress ;
61
+ }
62
+
63
+
64
+ return new SonarrClient ( host , port , apiKey ) ;
65
+ }
66
+ }
48
67
}
0 commit comments