diff --git a/Application/Application.csproj b/Application/Application.csproj index e1d9a0d..ac3e192 100644 --- a/Application/Application.csproj +++ b/Application/Application.csproj @@ -6,7 +6,7 @@ enable Musify.Application Musify.Application - 0.1.0 + 0.1.1 NotS1mp https://github.com/XShine555/MusifyBackend diff --git a/Application/Configuration/ConfigurationDependencyInjection.cs b/Application/Configuration/ConfigurationDependencyInjection.cs new file mode 100644 index 0000000..c7e2504 --- /dev/null +++ b/Application/Configuration/ConfigurationDependencyInjection.cs @@ -0,0 +1,45 @@ +using Microsoft.Extensions.Configuration; +using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.Options; + +namespace Musify.Application.Configuration +{ + public static class ConfigurationDependencyInjection + { + public static IServiceCollection AddApplicationStorageConfiguration(this IServiceCollection serviceDescriptors, IConfiguration configuration) + { + serviceDescriptors + .AddOptionsWithValidateOnStart() + .Bind(configuration.GetRequiredSection(ApplicationStorageConfiguration.SectionName)) + .ValidateDataAnnotations(); + serviceDescriptors.AddSingleton(serviceProvider => + serviceProvider.GetRequiredService>().Value); + + return serviceDescriptors; + } + + public static IServiceCollection AddPlayListConfiguration(this IServiceCollection serviceDescriptors, IConfiguration configuration) + { + serviceDescriptors + .AddOptionsWithValidateOnStart() + .Bind(configuration.GetRequiredSection(PlayListConfiguration.SectionName)) + .ValidateDataAnnotations(); + serviceDescriptors.AddSingleton(serviceProvider => + serviceProvider.GetRequiredService>().Value); + + return serviceDescriptors; + } + + public static IServiceCollection AddTrackConfiguration(this IServiceCollection serviceDescriptors, IConfiguration configuration) + { + serviceDescriptors + .AddOptionsWithValidateOnStart() + .Bind(configuration.GetRequiredSection(TrackConfiguration.SectionName)) + .ValidateDataAnnotations(); + serviceDescriptors.AddSingleton(serviceProvider => + serviceProvider.GetRequiredService>().Value); + + return serviceDescriptors; + } + } +} \ No newline at end of file