11using AzureDevopsTracker . Adapters ;
22using AzureDevopsTracker . Data ;
33using AzureDevopsTracker . Data . Context ;
4+ using AzureDevopsTracker . Integrations ;
45using AzureDevopsTracker . Interfaces ;
56using AzureDevopsTracker . Interfaces . Internals ;
67using AzureDevopsTracker . Services ;
@@ -13,11 +14,13 @@ namespace AzureDevopsTracker.Configurations
1314{
1415 public static class Configuration
1516 {
16- public static IServiceCollection AddAzureDevopsTracker ( this IServiceCollection services , DataBaseConfig configurations )
17+ public static IServiceCollection AddAzureDevopsTracker ( this IServiceCollection services , DataBaseConfig configurations , MessageConfig messageConfig = null )
1718 {
1819 services . AddDbContext < AzureDevopsTrackerContext > ( options =>
1920 options . UseSqlServer ( DataBaseConfig . ConnectionsString ) ) ;
2021
22+ services . AddMessageIntegrations ( ) ;
23+
2124 services . AddScoped < AzureDevopsTrackerContext > ( ) ;
2225 services . AddScoped < IWorkItemAdapter , WorkItemAdapter > ( ) ;
2326 services . AddScoped < IWorkItemRepository , WorkItemRepository > ( ) ;
@@ -26,6 +29,19 @@ public static IServiceCollection AddAzureDevopsTracker(this IServiceCollection s
2629
2730 services . AddScoped < IChangeLogService , ChangeLogService > ( ) ;
2831 services . AddScoped < IChangeLogItemRepository , ChangeLogItemRepository > ( ) ;
32+ services . AddScoped < IChangeLogRepository , ChangeLogRepository > ( ) ;
33+
34+ return services ;
35+ }
36+
37+ private static IServiceCollection AddMessageIntegrations ( this IServiceCollection services )
38+ {
39+ if ( MessageConfig . Messenger == null ) return services ;
40+
41+ if ( MessageConfig . Messenger == EMessengers . DISCORD )
42+ services . AddScoped < MessageIntegration , DiscordIntegration > ( ) ;
43+ else
44+ services . AddScoped < MessageIntegration , MicrosoftTeamsIntegration > ( ) ;
2945
3046 return services ;
3147 }
0 commit comments