This is cleanup based on both new .NET functionality (in 6 and 7) as well as a ton of simplifications and things that were missed that were caught due to the cleanup.
This change involves safety updates for serialization, better definitions of various classes, renames of some classes for accuracy, missing enum decoration, and various fixes.
* Add DatStatistics class
* Add isDirectory setting
* Add CalculateStatistics method (nw)
* Add separate stats writing
* Use new methods
* Rename Write -> WriteIndividual
* Naive implementation of new writing (nw)
* Remove unncessary calls
* Make writing more DatFile-like
* Add console flag to constructor
* Remove unused stream constructors
* Move to local writers
* Remove inherent filename
* Fix invocation
* Use SeparatedValueWriter
* Fix final directory stats output
* Use XmlTextWriter for HTML
* Don't output separator on last stat output
* Remove now-completed TODOs
* Remove unused using
This had the potential to cause a lot of issues the way it was. Moving the actual functionality for cleaning, filtering, and applying extras to their appropriate classes allows for less redirection when calling into the code. Modification as a class was essentially a shell around things that should have just been a single call.
This change ended up being three-fold:
1. Remove the entirely unused header field filters
2. Move filter running to their appropriate filter classes
3. Separate out DatItem filters into more managable private methods