AOT Builds
This commit is contained in:
		
							
								
								
									
										72
									
								
								Rename/Models/Binder/AppSettings.cs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										72
									
								
								Rename/Models/Binder/AppSettings.cs
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,72 @@ | ||||
| using Microsoft.Extensions.Configuration; | ||||
| using System.Text.Json; | ||||
| using System.Text.Json.Serialization; | ||||
|  | ||||
| namespace View_by_Distance.Rename.Models.Binder; | ||||
|  | ||||
| public class AppSettings | ||||
| { | ||||
|  | ||||
|     public string? Company { get; set; } | ||||
|     public string? DefaultUnknownDirectoryName { get; set; } | ||||
|     public bool? ForceIdName { get; set; } | ||||
|     public int? MaxDegreeOfParallelism { get; set; } | ||||
|     public int? MaxMinutesDelta { get; set; } | ||||
|     public bool? RenameUndo { get; set; } | ||||
|  | ||||
|     public override string ToString() | ||||
|     { | ||||
|         string result = JsonSerializer.Serialize(this, BinderAppSettingsSourceGenerationContext.Default.AppSettings); | ||||
|         return result; | ||||
|     } | ||||
|  | ||||
|     private static Models.AppSettings Get(AppSettings? appSettings) | ||||
|     { | ||||
|         Models.AppSettings result; | ||||
|         if (appSettings?.Company is null) throw new NullReferenceException(nameof(appSettings.Company)); | ||||
|         if (appSettings?.DefaultUnknownDirectoryName is null) throw new NullReferenceException(nameof(appSettings.DefaultUnknownDirectoryName)); | ||||
|         if (appSettings?.ForceIdName is null) throw new NullReferenceException(nameof(appSettings.ForceIdName)); | ||||
|         if (appSettings?.MaxDegreeOfParallelism is null) throw new NullReferenceException(nameof(appSettings.MaxDegreeOfParallelism)); | ||||
|         if (appSettings?.MaxMinutesDelta is null) throw new NullReferenceException(nameof(appSettings.MaxMinutesDelta)); | ||||
|         if (appSettings?.RenameUndo is null) throw new NullReferenceException(nameof(appSettings.RenameUndo)); | ||||
|         result = new( | ||||
|             appSettings.Company, | ||||
|             appSettings.DefaultUnknownDirectoryName, | ||||
|             appSettings.ForceIdName.Value, | ||||
|             appSettings.MaxDegreeOfParallelism.Value, | ||||
|             appSettings.MaxMinutesDelta.Value, | ||||
|             appSettings.RenameUndo.Value | ||||
|         ); | ||||
|         return result; | ||||
|     } | ||||
|  | ||||
|     public static Models.AppSettings Get(IConfigurationRoot configurationRoot) | ||||
|     { | ||||
|         Models.AppSettings result; | ||||
| #pragma warning disable IL3050, IL2026 | ||||
|         AppSettings? appSettings = configurationRoot.Get<AppSettings>(); | ||||
| #pragma warning restore IL3050, IL2026 | ||||
|         if (appSettings?.Company is null) | ||||
|         { | ||||
|             foreach (IConfigurationProvider configurationProvider in configurationRoot.Providers) | ||||
|             { | ||||
|                 if (configurationProvider is not Microsoft.Extensions.Configuration.Json.JsonConfigurationProvider jsonConfigurationProvider) | ||||
|                     continue; | ||||
|                 if (jsonConfigurationProvider.Source.FileProvider is not Microsoft.Extensions.FileProviders.PhysicalFileProvider physicalFileProvider) | ||||
|                     continue; | ||||
|                 if (!physicalFileProvider.Root.Contains("UserSecrets")) | ||||
|                     continue; | ||||
|                 throw new NotSupportedException(physicalFileProvider.Root); | ||||
|             } | ||||
|         } | ||||
|         result = Get(appSettings); | ||||
|         return result; | ||||
|     } | ||||
|  | ||||
| } | ||||
|  | ||||
| [JsonSourceGenerationOptions(WriteIndented = true)] | ||||
| [JsonSerializable(typeof(AppSettings))] | ||||
| internal partial class BinderAppSettingsSourceGenerationContext : JsonSerializerContext | ||||
| { | ||||
| } | ||||
		Reference in New Issue
	
	Block a user