Archived
Private
Public Access
1
0

Initial commit

This commit is contained in:
2022-09-04 12:45:01 +02:00
commit f4a01d6a69
11601 changed files with 4206660 additions and 0 deletions

View File

@@ -0,0 +1,8 @@
namespace WebDesktopBackend.Options {
public class FileSystemOptions : OptionsFromConfiguration {
public override string Position => "FileSystem";
public string RootDirectory { get; set; }
public int MaxSizePerUserInMb { get; set; }
}
}

View File

@@ -0,0 +1,7 @@
namespace WebDesktopBackend.Options
{
public abstract class OptionsFromConfiguration
{
public abstract string Position { get; }
}
}

View File

@@ -0,0 +1,26 @@
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using System;
namespace WebDesktopBackend.Options
{
public static class OptionsFromConfigurationExtensions
{
public static T AddOptionsFromConfiguration<T>(this IServiceCollection services, IConfiguration configuration)
where T : OptionsFromConfiguration
{
T optionsInstance = (T)Activator.CreateInstance(typeof(T));
if (optionsInstance == null) return null;
string position = optionsInstance.Position;
services.Configure((Action<T>)(options =>
{
IConfigurationSection section = configuration.GetSection(position);
if (section != null)
{
section.Bind(options);
}
}));
return optionsInstance;
}
}
}