diff --git a/Program.cs b/Program.cs index b980fa4..85a48e0 100644 --- a/Program.cs +++ b/Program.cs @@ -26,6 +26,7 @@ using System.Diagnostics; using System.Reflection; using Spectre.Console; using System.Text.Json; +using System.Text.Json.Serialization; namespace csSiteGen; @@ -153,14 +154,16 @@ class Program List siteFiles = new(); - Utils.GetFiles(settings.InputDirectory).ForEach(x => siteFiles.Add(new SiteFile(x))); - Log.Information("SiteFiles: {@sf} {count}", siteFiles, siteFiles.Count); + Utils.GetFiles(settings.InputDirectory).ForEach(x => { + siteFiles.Add(new SiteFile(x)); + Log.Debug("Found file {file}",x.FullName); + }); + Log.Information("SiteFiles Found {count}", siteFiles, siteFiles.Count); Console.WriteLine($"Converting {siteFiles.Count} files from {settings.InputDirectory.FullName} to {settings.OutputDirectory.FullName}"); Dictionary fileStatus = new(); - Log.Debug("fileStatus {@fileStatus}",fileStatus); AnsiConsole.Progress() .AutoRefresh(true) @@ -190,15 +193,12 @@ class Program Log.Warning("{name} Failed...",siteFiles[i].FullName); tasks[i].Description += " [red]FAILED[/]"; } - Log.Information("adding {@siteFile} conversion status to fileStatus", siteFiles[i]); - Log.Debug("FileStatus {@fileStatus}",fileStatus); + Log.Information("adding {siteFile} conversion status to fileStatus", siteFiles[i].FullName); fileStatus.Add(siteFiles[i].FullName,res); overallTask.Increment(1); } }); - Log.Information("Conversion Status {@status}", fileStatus); - var Failed = fileStatus.Where(x => x.Value == false); if ( Failed.Count() > 0) { @@ -289,7 +289,8 @@ class Program .Deserialize( projectFile .OpenText() - .ReadToEnd() + .ReadToEnd(), + SourceGenerationContext.Default.ProjectSettings ); if (projectSettings is null) @@ -299,8 +300,13 @@ class Program } projectSettings.setProjectRoot(ProjectDirectory); - Log.Information("{@ps}",projectSettings); - return projectSettings; } + +} + +[JsonSourceGenerationOptions(WriteIndented = true)] +[JsonSerializable(typeof(ProjectSettings))] +internal partial class SourceGenerationContext : JsonSerializerContext +{ } diff --git a/SiteFile/SiteFile.cs b/SiteFile/SiteFile.cs index e8020f4..c4745e2 100644 --- a/SiteFile/SiteFile.cs +++ b/SiteFile/SiteFile.cs @@ -1,4 +1,5 @@ using System.Text.Json; +using System.Text.Json.Serialization; using Serilog; namespace csSiteGen; @@ -58,7 +59,7 @@ public partial class SiteFile { Metadata.Add(info.FullName,info.LastWriteTimeUtc); } - Log.Debug("Metadata Dictionary now {@Metadata}", Metadata); + Log.Debug("Metadata Dictionary now has {Metadata} items", Metadata.Count); SaveMetadata(settings); } @@ -95,8 +96,8 @@ public partial class SiteFile { string metaJson = File.ReadAllText(metaFile); Log.Debug("Read Json {metaJson}", metaJson); - Metadata = JsonSerializer.Deserialize>(metaJson); - Log.Debug("Deserialized to {@Metadata}",Metadata); + Metadata = JsonSerializer.Deserialize>(metaJson,SerializeMetadataContext.Default.DictionaryStringDateTime); + Log.Debug("Deserialized Metadata with {c} items",Metadata!.Count); } catch (IOException e) { @@ -124,7 +125,7 @@ public partial class SiteFile string metaJson; try { - metaJson = JsonSerializer.Serialize>(Metadata); + metaJson = JsonSerializer.Serialize>(Metadata,SerializeMetadataContext.Default.DictionaryStringDateTime); Log.Debug("metaJson: {metaJson}",metaJson); } catch (JsonException e) @@ -136,3 +137,9 @@ public partial class SiteFile File.WriteAllText(metaFile, metaJson); } } + +[JsonSourceGenerationOptions(GenerationMode = JsonSourceGenerationMode.Serialization)] +[JsonSerializable(typeof(Dictionary))] +internal partial class SerializeMetadataContext : JsonSerializerContext +{ +} diff --git a/Utils/Utils.PathSearch.cs b/Utils/Utils.PathSearch.cs index d28c910..9aae1f9 100644 --- a/Utils/Utils.PathSearch.cs +++ b/Utils/Utils.PathSearch.cs @@ -48,7 +48,7 @@ public static partial class Utils { result = candidateExecutables.First(); PathSearchMemo.Add(Program,result); Log.Information("Found {program} at {path}",Program, result); - Log.Debug("Adding {@entry} to PathSearchMemo", PathSearchMemo.Last()); + Log.Debug("Adding to PathSearchMemo", PathSearchMemo.Last().Value); return result; } } diff --git a/csSiteGen.csproj b/csSiteGen.csproj index 9751fb6..0b3dde4 100644 --- a/csSiteGen.csproj +++ b/csSiteGen.csproj @@ -16,10 +16,10 @@ - + - + @@ -37,8 +37,8 @@ NOTE: This build requires specifying a platform --> true - true - true - true + true + false + false