This commit is contained in:
2023-10-15 09:51:56 -07:00
parent 2cd2c2b434
commit cd5ab223c9
75 changed files with 895 additions and 722 deletions

View File

@ -3,25 +3,21 @@ using System.Text.Json.Serialization;
namespace View_by_Distance.Compare.Models;
public class AppSettings
public record AppSettings(string Company,
int MaxDegreeOfParallelism,
string WorkingDirectoryName)
{
public string Company { init; get; }
public int MaxDegreeOfParallelism { init; get; }
public string WorkingDirectoryName { init; get; }
[JsonConstructor]
public AppSettings(string company, int maxDegreeOfParallelism, string workingDirectoryName)
{
Company = company;
MaxDegreeOfParallelism = maxDegreeOfParallelism;
WorkingDirectoryName = workingDirectoryName;
}
public override string ToString()
{
string result = JsonSerializer.Serialize(this, new JsonSerializerOptions() { WriteIndented = true });
string result = JsonSerializer.Serialize(this, AppSettingsSourceGenerationContext.Default.AppSettings);
return result;
}
}
[JsonSourceGenerationOptions(WriteIndented = true)]
[JsonSerializable(typeof(AppSettings))]
internal partial class AppSettingsSourceGenerationContext : JsonSerializerContext
{
}

View File

@ -0,0 +1,2 @@
[*.cs]
csharp_preserve_single_line_statements = true

View File

@ -1,4 +1,3 @@
using System.ComponentModel.DataAnnotations;
using System.Text.Json;
namespace View_by_Distance.Compare.Models.Binder;
@ -7,12 +6,12 @@ public class Configuration
{
#nullable disable
[Display(Name = "Diff Property Directory"), Required] public string DiffPropertyDirectory { get; set; }
[Display(Name = "Property Configuration"), Required] public Property.Models.Configuration PropertyConfiguration { get; set; }
[Display(Name = "Rename"), Required] public string[] Rename { get; set; }
[Display(Name = "Rename B"), Required] public string[] RenameB { get; set; }
[Display(Name = "Rename C"), Required] public string[] RenameC { get; set; }
[Display(Name = "Spelling"), Required] public string[] Spelling { get; set; }
public string DiffPropertyDirectory { get; set; }
public Property.Models.Configuration PropertyConfiguration { get; set; }
public string[] Rename { get; set; }
public string[] RenameB { get; set; }
public string[] RenameC { get; set; }
public string[] Spelling { get; set; }
#nullable restore

View File

@ -16,8 +16,7 @@ public abstract class Configuration
Binder.Configuration? configuration = configurationSection.Get<Binder.Configuration>();
string json = JsonSerializer.Serialize(configuration, new JsonSerializerOptions() { WriteIndented = true });
result = JsonSerializer.Deserialize<Models.Configuration>(json);
if (result is null)
throw new Exception(json);
if (result is null) throw new Exception(json);
string jsonThis = result.ToString();
if (jsonThis != json)
{
@ -30,11 +29,10 @@ public abstract class Configuration
check = i;
break;
}
if (check is null)
throw new Exception();
if (check is null) throw new Exception();
string a = json[..check.Value].Split(',')[^1];
string b = json[check.Value..].Split(',')[0];
throw new Exception($"{a}{b}");
throw new Exception($"{a}{b}");
}
return result;
}