From b3f79bd143371149c208a9f972c4a441e7fd59ea Mon Sep 17 00:00:00 2001 From: Mike Phares Date: Sat, 30 Jul 2022 17:26:32 -0700 Subject: [PATCH] Switch to PredictorModel from string --- Compare/Compare.cs | 21 ++++++++-------- Date-Group/DateGroup.cs | 11 +++++---- Instance/DlibDotNet.cs | 22 ++++++++--------- Instance/Models/_D_Face.cs | 21 +++++++++------- Instance/Models/_E2_Navigate.cs | 16 ++++++------- Instance/Models/_E3_Rename.cs | 32 ++++++++++++------------- Instance/Models/_E_Distance.cs | 8 +++---- Instance/Models/_G_Index.cs | 6 ++--- Not-Copy-Copy/Not-Copy-Copy.cs | 9 +++---- PrepareForOld/PrepareForOld.cs | 2 -- Property/Models/PropertyLogic.cs | 14 +++++------ Property/Models/Stateless/A_Property.cs | 5 ++-- Property/Models/Stateless/IResult.cs | 8 ++++--- Property/Models/Stateless/Result.cs | 10 ++++---- Tests/UnitTestResize.cs | 17 ++++++------- 15 files changed, 106 insertions(+), 96 deletions(-) diff --git a/Compare/Compare.cs b/Compare/Compare.cs index 1aa8192..0b2bd84 100644 --- a/Compare/Compare.cs +++ b/Compare/Compare.cs @@ -5,6 +5,7 @@ using System.Text.Json; using View_by_Distance.Compare.Models; using View_by_Distance.Property.Models; using View_by_Distance.Shared.Models.Methods; +using View_by_Distance.Shared.Models.Stateless; using WindowsShortcutFactory; namespace View_by_Distance.Compare; @@ -52,8 +53,8 @@ public class Compare Models.Configuration configuration = Models.Stateless.Configuration.Get(isEnvironment, configurationRoot, workingDirectory, propertyConfiguration); Verify(configuration); bool reverse = false; - string modelName = nameof(modelName); - string predictorModelName = nameof(predictorModelName); + Model model = Model.Hog; + PredictorModel predictorModel = PredictorModel.Large; if (propertyConfiguration.PopulatePropertyId is null) throw new Exception($"{nameof(propertyConfiguration.PopulatePropertyId)} is null!"); foreach (string spelling in configuration.Spelling) @@ -162,7 +163,7 @@ public class Compare PropertyLogic propertyLogic = GetPropertyLogic(); if (_IsEnvironment.Development && propertyConfiguration.PopulatePropertyId.Value && !propertyLogic.KeyValuePairs.Any()) throw new Exception("Copy keyValuePairs-####.json file"); - List propertyHolderCollections = Property.Models.Stateless.A_Property.Get(propertyConfiguration, reverse, modelName, predictorModelName, propertyLogic); + List propertyHolderCollections = Property.Models.Stateless.A_Property.Get(propertyConfiguration, reverse, model, predictorModel, propertyLogic); if (!isSilent) { _Log.Information("First pass completed"); @@ -204,7 +205,7 @@ public class Compare _Log.Information(". . ."); } string aPropertyContentCollectionDirectory = Property.Models.Stateless.IResult.GetResultsDateGroupDirectory(propertyConfiguration, nameof(A_Property), "[()]"); - ThirdPassToMove(propertyConfiguration, modelName, predictorModelName, propertyLogic, propertyHolderCollections, aPropertyContentCollectionDirectory); + ThirdPassToMove(propertyConfiguration, model, predictorModel, propertyLogic, propertyHolderCollections, aPropertyContentCollectionDirectory); if (!isSilent) { _Log.Information("Third pass completed"); @@ -216,7 +217,7 @@ public class Compare } _Log.Information(". . ."); } - FourthPassCreateWindowsShortcuts(propertyConfiguration, modelName, predictorModelName, propertyLogic, propertyHolderCollections, saveToCollection: false, keepAll: false); + FourthPassCreateWindowsShortcuts(propertyConfiguration, model, predictorModel, propertyLogic, propertyHolderCollections, saveToCollection: false, keepAll: false); if (!isSilent) { _Log.Information("Fourth pass completed"); @@ -749,7 +750,7 @@ public class Compare } } - private void ThirdPassToMove(Property.Models.Configuration configuration, string modelName, string predictorModelName, PropertyLogic propertyLogic, List propertyHolderCollections, string aPropertyContentCollectionDirectory) + private void ThirdPassToMove(Property.Models.Configuration configuration, Model model, PredictorModel predictorModel, PropertyLogic propertyLogic, List propertyHolderCollections, string aPropertyContentCollectionDirectory) { if (_Log is null) throw new Exception($"{nameof(_Log)} is null!"); @@ -768,7 +769,7 @@ public class Compare List distinctDirectories = new(); List> valueCollection = new(); List directoryInfoCollection = new(); - propertyLogic.ParallelWork(configuration, modelName, predictorModelName, ticks, propertyHolderCollections, firstPass: false); + propertyLogic.ParallelWork(configuration, model, predictorModel, ticks, propertyHolderCollections, firstPass: false); if (propertyLogic.ExceptionsDirectories.Any()) throw new Exception(); foreach (Property.Models.DirectoryInfo group in directoryInfoCollection) @@ -827,7 +828,7 @@ public class Compare } } - private void FourthPassCreateWindowsShortcuts(Property.Models.Configuration configuration, string modelName, string predictorModelName, PropertyLogic propertyLogic, List propertyHolderCollections, bool saveToCollection, bool keepAll) + private void FourthPassCreateWindowsShortcuts(Property.Models.Configuration configuration, Model model, PredictorModel predictorModel, PropertyLogic propertyLogic, List propertyHolderCollections, bool saveToCollection, bool keepAll) { if (_Log is null) throw new Exception($"{nameof(_Log)} is null!"); @@ -840,7 +841,7 @@ public class Compare List> valueCollection = new(); (long Ticks, string FilteredSourceDirectoryFile, string PropertyDirectory, int PropertyId)[] collection; List directoryInfoCollection = new(); - propertyLogic.ParallelWork(configuration, modelName, predictorModelName, ticks, propertyHolderCollections, firstPass: false); + propertyLogic.ParallelWork(configuration, model, predictorModel, ticks, propertyHolderCollections, firstPass: false); if (propertyLogic.ExceptionsDirectories.Any()) throw new Exception(); foreach (Property.Models.DirectoryInfo group in directoryInfoCollection) @@ -858,7 +859,7 @@ public class Compare fileMoveCollection.Add(filteredSourceDirectoryFile); } } - collection = propertyLogic.GetPropertyIds(configuration, modelName, predictorModelName, directoryInfoCollection, saveToCollection); + collection = propertyLogic.GetPropertyIds(configuration, model, predictorModel, directoryInfoCollection, saveToCollection); _Log.Information($"{stay} file(s) are staying and {fileMoveCollection.Count} file(s) will be moved"); for (int x = 0; x < int.MaxValue; x++) { diff --git a/Date-Group/DateGroup.cs b/Date-Group/DateGroup.cs index d00c531..3c632cd 100644 --- a/Date-Group/DateGroup.cs +++ b/Date-Group/DateGroup.cs @@ -5,6 +5,7 @@ using System.Text; using View_by_Distance.Date.Group.Models; using View_by_Distance.Property.Models; using View_by_Distance.Shared.Models.Methods; +using View_by_Distance.Shared.Models.Stateless; using WindowsShortcutFactory; namespace View_by_Distance.Date.Group; @@ -41,8 +42,8 @@ public class DateGroup Models.Configuration configuration = Models.Stateless.Configuration.Get(isEnvironment, configurationRoot, workingDirectory, propertyConfiguration); Verify(configuration); bool reverse = false; - string modelName = nameof(modelName); - string predictorModelName = nameof(predictorModelName); + Model model = Model.Hog; + PredictorModel predictorModel = PredictorModel.Large; _Configuration = configuration; if (configuration.ByHash is null) throw new Exception($"{nameof(configuration.ByHash)} is null!"); @@ -63,14 +64,14 @@ public class DateGroup _ = Property.Models.Stateless.IPath.DeleteEmptyDirectories(propertyConfiguration.RootDirectory); if (true || appSettings.MaxDegreeOfParallelism.Value < 2) ticks = LogDelta(ticks, nameof(Property.Models.Stateless.IPath.DeleteEmptyDirectories)); - List propertyHolderCollections = Property.Models.Stateless.A_Property.Get(propertyConfiguration, reverse, modelName, predictorModelName, propertyLogic); + List propertyHolderCollections = Property.Models.Stateless.A_Property.Get(propertyConfiguration, reverse, model, predictorModel, propertyLogic); if (configuration.ByCreateDateShortcut.HasValue && configuration.ByCreateDateShortcut.Value) CreateDateShortcut(propertyConfiguration, propertyHolderCollections); else { List topDirectories = new(); List directoryInfoCollection = new(); - propertyLogic.ParallelWork(propertyConfiguration, modelName, predictorModelName, ticks, propertyHolderCollections, firstPass: true); + propertyLogic.ParallelWork(propertyConfiguration, model, predictorModel, ticks, propertyHolderCollections, firstPass: true); if (appSettings.MaxDegreeOfParallelism.Value < 2) ticks = LogDelta(ticks, nameof(PropertyLogic.ParallelWork)); if (propertyLogic.ExceptionsDirectories.Any()) @@ -78,7 +79,7 @@ public class DateGroup if (propertyConfiguration.PopulatePropertyId.Value && (configuration.ByCreateDateShortcut.Value || configuration.ByHash.Value)) { if (Property.Models.Stateless.A_Property.Any(propertyHolderCollections)) - propertyLogic.ParallelWork(propertyConfiguration, modelName, predictorModelName, ticks, propertyHolderCollections, firstPass: false); + propertyLogic.ParallelWork(propertyConfiguration, model, predictorModel, ticks, propertyHolderCollections, firstPass: false); if (appSettings.MaxDegreeOfParallelism.Value < 2) ticks = LogDelta(ticks, nameof(PropertyLogic.ParallelWork)); if (propertyLogic.ExceptionsDirectories.Any()) diff --git a/Instance/DlibDotNet.cs b/Instance/DlibDotNet.cs index affd173..f7cc1b1 100644 --- a/Instance/DlibDotNet.cs +++ b/Instance/DlibDotNet.cs @@ -606,8 +606,8 @@ public class DlibDotNet _FaceLandmarks.AngleBracketCollection.Clear(); sourceDirectory = filteredPropertyHolderCollection[0].SourceDirectory; propertyLogic.AngleBracketCollection.AddRange(Property.Models.Stateless.IResult.GetDirectoryInfoCollection(configuration, - modelName, - predictorModelName, + model, + predictorModel, sourceDirectory, nameof(A_Property), outputResolution, @@ -618,8 +618,8 @@ public class DlibDotNet singletonDescription: "Properties for each image", collectionDescription: string.Empty)); _Metadata.AngleBracketCollection.AddRange(Property.Models.Stateless.IResult.GetDirectoryInfoCollection(configuration, - modelName, - predictorModelName, + model, + predictorModel, sourceDirectory, nameof(B_Metadata), outputResolution, @@ -630,8 +630,8 @@ public class DlibDotNet singletonDescription: "Metadata as key value pairs", collectionDescription: string.Empty)); _Resize.AngleBracketCollection.AddRange(Property.Models.Stateless.IResult.GetDirectoryInfoCollection(configuration, - modelName, - predictorModelName, + model, + predictorModel, sourceDirectory, nameof(C_Resize), outputResolution, @@ -643,8 +643,8 @@ public class DlibDotNet collectionDescription: string.Empty)); if (_Configuration.LoadOrCreateThenSaveImageFacesResults.HasValue && _Configuration.LoadOrCreateThenSaveImageFacesResults.Value) _Faces.AngleBracketCollection.AddRange(Property.Models.Stateless.IResult.GetDirectoryInfoCollection(configuration, - modelName, - predictorModelName, + model, + predictorModel, sourceDirectory, nameof(D_Face), outputResolution, @@ -656,8 +656,8 @@ public class DlibDotNet collectionDescription: "For each image a json file with all faces found")); if (_Configuration.SaveFaceLandmarkForOutputResolutions.Contains(outputResolution)) _FaceLandmarks.AngleBracketCollection.AddRange(Property.Models.Stateless.IResult.GetDirectoryInfoCollection(configuration, - modelName, - predictorModelName, + model, + predictorModel, sourceDirectory, nameof(D2_FaceLandmarks), outputResolution, @@ -734,7 +734,7 @@ public class DlibDotNet { PropertyLogic propertyLogic = GetPropertyLogic(); Dictionary> peopleCollection = A2_People.Convert(people); - List propertyHolderCollections = Property.Models.Stateless.A_Property.Get(configuration, reverse, model.ToString(), predictorModel.ToString(), propertyLogic); + List propertyHolderCollections = Property.Models.Stateless.A_Property.Get(configuration, reverse, model, predictorModel, propertyLogic); FullDoWork(configuration, juliePhares, model, predictorModel, argZero, peopleCollection, propertyLogic, propertyHolderCollections); } diff --git a/Instance/Models/_D_Face.cs b/Instance/Models/_D_Face.cs index 60c7b31..4c4a48d 100644 --- a/Instance/Models/_D_Face.cs +++ b/Instance/Models/_D_Face.cs @@ -25,9 +25,9 @@ public class D_Face : Shared.Models.Properties.IFace, IFace private readonly Model _Model; private readonly string _ArgZero; private readonly Serilog.ILogger? _Log; + private readonly Configuration _Configuration; private readonly ModelParameter _ModelParameter; private readonly PredictorModel _PredictorModel; - private readonly Configuration _Configuration; private readonly JsonSerializerOptions _WriteIndentedJsonSerializerOptions; protected double? _Α; @@ -291,11 +291,11 @@ public class D_Face : Shared.Models.Properties.IFace, IFace D_Face? face = null; Rectangle rectangle; double[] rawEncoding; + IEnumerable facePoints; + Shared.Models.FaceEncoding faceEncoding; FaceRecognitionDotNet.Image? knownImage; FaceRecognitionDotNet.Image? rotatedImage; - Shared.Models.FaceEncoding faceEncoding; FaceRecognitionDotNet.FaceEncoding[] faceEncodings; - IEnumerable facePoints; IDictionary>[] faceLandmarks; using Bitmap source = unknownImage.ToBitmap(); padding = (int)((source.Width + source.Height) / 2 * .01); @@ -303,7 +303,6 @@ public class D_Face : Shared.Models.Properties.IFace, IFace { for (int p = 0; p <= _Configuration.PaddingLoops.Value; p++) { - //Location(double confidence, int bottom, int left, int right, int top) location = new(locations[i].Confidence, locations[i].Bottom + (padding * p), locations[i].Left - (padding * p), @@ -320,9 +319,11 @@ public class D_Face : Shared.Models.Properties.IFace, IFace // source.Save(Path.Combine(_Configuration.RootDirectory, "source.jpg")); // preRotated.Save(Path.Combine(_Configuration.RootDirectory, $"{p} - preRotated.jpg")); using (knownImage = FaceRecognition.LoadImage(preRotated)) - if (knownImage is null) + { + if (knownImage is null || knownImage.IsDisposed) throw new Exception($"{nameof(knownImage)} is null"); - faceLandmarks = faceRecognition.FaceLandmark(knownImage, faceLocations: null, _PredictorModel, _Model).ToArray(); + faceLandmarks = faceRecognition.FaceLandmark(knownImage, faceLocations: null, _PredictorModel, _Model).ToArray(); + } if (faceLandmarks.Length == 0 && p < _Configuration.PaddingLoops.Value) continue; else if (faceLandmarks.Length != 1) @@ -342,9 +343,11 @@ public class D_Face : Shared.Models.Properties.IFace, IFace { // rotated.Save(Path.Combine(_Configuration.RootDirectory, $"{p} - rotated.jpg")); using (rotatedImage = FaceRecognition.LoadImage(rotated)) - if (rotatedImage is null) + { + if (rotatedImage is null || rotatedImage.IsDisposed) throw new Exception($"{nameof(rotatedImage)} is null"); - faceEncodings = faceRecognition.FaceEncodings(rotatedImage, knownFaceLocation: null, _Configuration.NumJitters.Value, _PredictorModel, _Model).ToArray(); + faceEncodings = faceRecognition.FaceEncodings(rotatedImage, knownFaceLocation: null, _Configuration.NumJitters.Value, _PredictorModel, _Model).ToArray(); + } if (faceEncodings.Length == 0 && p < _Configuration.PaddingLoops.Value) continue; else if (faceEncodings.Length != 1) @@ -520,7 +523,7 @@ public class D_Face : Shared.Models.Properties.IFace, IFace PropertyHolder propertyHolder; WindowsShortcut windowsShortcut; const string pattern = @"[\\,\/,\:,\*,\?,\"",\<,\>,\|]"; - string dFacesContentDirectory = Path.Combine(Property.Models.Stateless.IResult.GetResultsFullGroupDirectory(configuration, model.ToString(), predictorModel.ToString(), nameof(D_Face), outputResolution, includeResizeGroup: true, includeModel: true, includePredictorModel: true), "(_)"); + string dFacesContentDirectory = Path.Combine(Property.Models.Stateless.IResult.GetResultsFullGroupDirectory(configuration, model, predictorModel, nameof(D_Face), outputResolution, includeResizeGroup: true, includeModel: true, includePredictorModel: true), "(_)"); for (int i = 0; i < filteredPropertyHolderCollection.Length; i++) { personKey = string.Empty; diff --git a/Instance/Models/_E2_Navigate.cs b/Instance/Models/_E2_Navigate.cs index b63792f..fd48bd8 100644 --- a/Instance/Models/_E2_Navigate.cs +++ b/Instance/Models/_E2_Navigate.cs @@ -48,9 +48,9 @@ internal class E2_Navigate string modelName = model.ToString(); string predictorModelName = predictorModel.ToString(); string rootResultsDirectoryAbsoluteUri = new Uri(rootResultsDirectory).AbsoluteUri; - string dFacesContentDirectory = Path.Combine(Property.Models.Stateless.IResult.GetResultsFullGroupDirectory(configuration, modelName, predictorModelName, nameof(D_Face), outputResolution, includeResizeGroup: true, includeModel: true, includePredictorModel: true), "()"); - string cResizeContentDirectory = Path.Combine(Property.Models.Stateless.IResult.GetResultsFullGroupDirectory(configuration, modelName, predictorModelName, nameof(C_Resize), outputResolution, includeResizeGroup: true, includeModel: false, includePredictorModel: false), "()"); - string eDistanceCollectionDirectory = Path.Combine(Property.Models.Stateless.IResult.GetResultsFullGroupDirectory(configuration, modelName, predictorModelName, nameof(E_Distance), outputResolution, includeResizeGroup: true, includeModel: true, includePredictorModel: true), "[]"); + string dFacesContentDirectory = Path.Combine(Property.Models.Stateless.IResult.GetResultsFullGroupDirectory(configuration, model, predictorModel, nameof(D_Face), outputResolution, includeResizeGroup: true, includeModel: true, includePredictorModel: true), "()"); + string cResizeContentDirectory = Path.Combine(Property.Models.Stateless.IResult.GetResultsFullGroupDirectory(configuration, model, predictorModel, nameof(C_Resize), outputResolution, includeResizeGroup: true, includeModel: false, includePredictorModel: false), "()"); + string eDistanceCollectionDirectory = Path.Combine(Property.Models.Stateless.IResult.GetResultsFullGroupDirectory(configuration, model, predictorModel, nameof(E_Distance), outputResolution, includeResizeGroup: true, includeModel: true, includePredictorModel: true), "[]"); (string RootResultsDirectoryAbsoluteUri, string C_ResizeContentDirectory, string D_FacesContentDirectory, string E_DistanceCollectionDirectory) tuple = new(rootResultsDirectoryAbsoluteUri, cResizeContentDirectory, dFacesContentDirectory, eDistanceCollectionDirectory); List fileSystemCollection = Shared.Models.Stateless.Methods.IFileSystem.GetFileSystemCollection(requestPath, tuple, directories, files, all); Queue queue = new(fileSystemCollection); @@ -81,9 +81,9 @@ internal class E2_Navigate string modelName = model.ToString(); string predictorModelName = predictorModel.ToString(); string rootResultsDirectoryAbsoluteUri = new Uri(rootResultsDirectory).AbsoluteUri; - string dFacesContentDirectory = Path.Combine(Property.Models.Stateless.IResult.GetResultsFullGroupDirectory(configuration, modelName, predictorModelName, nameof(D_Face), outputResolution, includeResizeGroup: true, includeModel: true, includePredictorModel: true), "()"); - string cResizeContentDirectory = Path.Combine(Property.Models.Stateless.IResult.GetResultsFullGroupDirectory(configuration, modelName, predictorModelName, nameof(C_Resize), outputResolution, includeResizeGroup: true, includeModel: false, includePredictorModel: false), "()"); - string eDistanceCollectionDirectory = Path.Combine(Property.Models.Stateless.IResult.GetResultsFullGroupDirectory(configuration, modelName, predictorModelName, nameof(E_Distance), outputResolution, includeResizeGroup: true, includeModel: true, includePredictorModel: true), "[]"); + string dFacesContentDirectory = Path.Combine(Property.Models.Stateless.IResult.GetResultsFullGroupDirectory(configuration, model, predictorModel, nameof(D_Face), outputResolution, includeResizeGroup: true, includeModel: true, includePredictorModel: true), "()"); + string cResizeContentDirectory = Path.Combine(Property.Models.Stateless.IResult.GetResultsFullGroupDirectory(configuration, model, predictorModel, nameof(C_Resize), outputResolution, includeResizeGroup: true, includeModel: false, includePredictorModel: false), "()"); + string eDistanceCollectionDirectory = Path.Combine(Property.Models.Stateless.IResult.GetResultsFullGroupDirectory(configuration, model, predictorModel, nameof(E_Distance), outputResolution, includeResizeGroup: true, includeModel: true, includePredictorModel: true), "[]"); (string RootResultsDirectoryAbsoluteUri, string C_ResizeContentDirectory, string D_FacesContentDirectory, string E_DistanceCollectionDirectory) tuple = new(rootResultsDirectoryAbsoluteUri, cResizeContentDirectory, dFacesContentDirectory, eDistanceCollectionDirectory); FaceFileSystem[] faceFileSystemCollection = Shared.Models.Stateless.Methods.IFaceFileSystem.GetFaceFileSystemCollection(requestPath, tuple, selectedFileFullName); for (int i = 0; i < faceFileSystemCollection.Length; i++) @@ -114,7 +114,7 @@ internal class E2_Navigate else { _Log.Warn(string.Empty); - string eDistanceCollectionDirectory = Path.Combine(Property.Models.Stateless.IResult.GetResultsFullGroupDirectory(configuration, model.ToString(), predictorModel.ToString(), nameof(E_Distance), _Configuration.ValidResolutions[0], includeResizeGroup: true, includeModel: true, includePredictorModel: true), "[]"); + string eDistanceCollectionDirectory = Path.Combine(Property.Models.Stateless.IResult.GetResultsFullGroupDirectory(configuration, model, predictorModel, nameof(E_Distance), _Configuration.ValidResolutions[0], includeResizeGroup: true, includeModel: true, includePredictorModel: true), "[]"); string relativePath = Property.Models.Stateless.IPath.GetRelativePath(subSourceDirectory, eDistanceCollectionDirectory.Length); if (relativePath.Length == 1) throw new Exception(); @@ -148,7 +148,7 @@ internal class E2_Navigate string? subSourceDirectory = string.Empty; Dictionary fileKeyValuePairs = new(); Dictionary directoryKeyValuePairs = new(); - string eDistanceCollectionDirectory = Path.Combine(Property.Models.Stateless.IResult.GetResultsFullGroupDirectory(configuration, model.ToString(), predictorModel.ToString(), nameof(E_Distance), _Configuration.OutputResolutions[0], includeResizeGroup: true, includeModel: true, includePredictorModel: true), "[]"); + string eDistanceCollectionDirectory = Path.Combine(Property.Models.Stateless.IResult.GetResultsFullGroupDirectory(configuration, model, predictorModel, nameof(E_Distance), _Configuration.OutputResolutions[0], includeResizeGroup: true, includeModel: true, includePredictorModel: true), "[]"); if (!Directory.Exists(eDistanceCollectionDirectory)) _ = Directory.CreateDirectory(eDistanceCollectionDirectory); for (int z = 0; z < int.MaxValue; z++) diff --git a/Instance/Models/_E3_Rename.cs b/Instance/Models/_E3_Rename.cs index a8f5bd7..be7c796 100644 --- a/Instance/Models/_E3_Rename.cs +++ b/Instance/Models/_E3_Rename.cs @@ -46,7 +46,7 @@ internal class E3_Rename string g2IdentifyCollectionDirectory; string d2FaceLandmarksContentDirectory; string predictorModelName = predictorModel.ToString(); - add = Directory.Exists(string.Concat(Path.Combine(Property.Models.Stateless.IResult.GetResultsFullGroupDirectory(configuration, modelName, predictorModelName, nameof(C_Resize), _Configuration.ValidResolutions[0], includeResizeGroup: true, includeModel: false, includePredictorModel: false), "()"), relativePath)); + add = Directory.Exists(string.Concat(Path.Combine(Property.Models.Stateless.IResult.GetResultsFullGroupDirectory(configuration, model, predictorModel, nameof(C_Resize), _Configuration.ValidResolutions[0], includeResizeGroup: true, includeModel: false, includePredictorModel: false), "()"), relativePath)); bMetadataSingletonDirectory = Property.Models.Stateless.IResult.GetResultsDateGroupDirectory(configuration, nameof(B_Metadata), "{}"); if (Directory.Exists(bMetadataSingletonDirectory)) { @@ -59,7 +59,7 @@ internal class E3_Rename to = Path.Combine(string.Concat(aPropertySingletonDirectory, Path.GetDirectoryName(relativePath)), newDirectoryName); results.Add(to); } - cResizeContentDirectory = Path.Combine(Property.Models.Stateless.IResult.GetResultsFullGroupDirectory(configuration, modelName, predictorModelName, nameof(C_Resize), _Configuration.ValidResolutions[0], includeResizeGroup: true, includeModel: false, includePredictorModel: false), "()"); + cResizeContentDirectory = Path.Combine(Property.Models.Stateless.IResult.GetResultsFullGroupDirectory(configuration, model, predictorModel, nameof(C_Resize), _Configuration.ValidResolutions[0], includeResizeGroup: true, includeModel: false, includePredictorModel: false), "()"); if (Directory.Exists(cResizeContentDirectory)) { to = Path.Combine(string.Concat(cResizeContentDirectory, Path.GetDirectoryName(relativePath)), newDirectoryName); @@ -67,37 +67,37 @@ internal class E3_Rename } foreach (string outputResolution in _Configuration.ValidResolutions) { - cResizeSingletonDirectory = Path.Combine(Property.Models.Stateless.IResult.GetResultsFullGroupDirectory(configuration, modelName, predictorModelName, nameof(C_Resize), outputResolution, includeResizeGroup: true, includeModel: false, includePredictorModel: false), "{}"); + cResizeSingletonDirectory = Path.Combine(Property.Models.Stateless.IResult.GetResultsFullGroupDirectory(configuration, model, predictorModel, nameof(C_Resize), outputResolution, includeResizeGroup: true, includeModel: false, includePredictorModel: false), "{}"); if (Directory.Exists(cResizeSingletonDirectory)) { to = Path.Combine(string.Concat(cResizeSingletonDirectory, Path.GetDirectoryName(relativePath)), newDirectoryName); results.Add(to); } - dFacesContentDirectory = Path.Combine(Property.Models.Stateless.IResult.GetResultsFullGroupDirectory(configuration, modelName, predictorModelName, nameof(D_Face), outputResolution, includeResizeGroup: true, includeModel: true, includePredictorModel: true), "()"); + dFacesContentDirectory = Path.Combine(Property.Models.Stateless.IResult.GetResultsFullGroupDirectory(configuration, model, predictorModel, nameof(D_Face), outputResolution, includeResizeGroup: true, includeModel: true, includePredictorModel: true), "()"); if (Directory.Exists(dFacesContentDirectory)) { to = Path.Combine(string.Concat(dFacesContentDirectory, Path.GetDirectoryName(relativePath)), newDirectoryName); results.Add(to); } - dFacesCollectionDirectory = Path.Combine(Property.Models.Stateless.IResult.GetResultsFullGroupDirectory(configuration, modelName, predictorModelName, nameof(D_Face), outputResolution, includeResizeGroup: true, includeModel: true, includePredictorModel: true), "[]"); + dFacesCollectionDirectory = Path.Combine(Property.Models.Stateless.IResult.GetResultsFullGroupDirectory(configuration, model, predictorModel, nameof(D_Face), outputResolution, includeResizeGroup: true, includeModel: true, includePredictorModel: true), "[]"); if (Directory.Exists(dFacesCollectionDirectory)) { to = Path.Combine(string.Concat(dFacesCollectionDirectory, Path.GetDirectoryName(relativePath)), newDirectoryName); results.Add(to); } - d2FaceLandmarksContentDirectory = Path.Combine(Property.Models.Stateless.IResult.GetResultsFullGroupDirectory(configuration, modelName, predictorModelName, nameof(D2_FaceLandmarks), outputResolution, includeResizeGroup: true, includeModel: true, includePredictorModel: true), "()"); + d2FaceLandmarksContentDirectory = Path.Combine(Property.Models.Stateless.IResult.GetResultsFullGroupDirectory(configuration, model, predictorModel, nameof(D2_FaceLandmarks), outputResolution, includeResizeGroup: true, includeModel: true, includePredictorModel: true), "()"); if (add && _Configuration.SaveFaceLandmarkForOutputResolutions.Contains(outputResolution) && Directory.Exists(d2FaceLandmarksContentDirectory)) { to = Path.Combine(string.Concat(d2FaceLandmarksContentDirectory, Path.GetDirectoryName(relativePath)), newDirectoryName); results.Add(to); } - eDistanceContentDirectory = Path.Combine(Property.Models.Stateless.IResult.GetResultsFullGroupDirectory(configuration, modelName, predictorModelName, nameof(E_Distance), outputResolution, includeResizeGroup: true, includeModel: true, includePredictorModel: true), "()"); + eDistanceContentDirectory = Path.Combine(Property.Models.Stateless.IResult.GetResultsFullGroupDirectory(configuration, model, predictorModel, nameof(E_Distance), outputResolution, includeResizeGroup: true, includeModel: true, includePredictorModel: true), "()"); if (Directory.Exists(eDistanceContentDirectory)) { to = Path.Combine(string.Concat(eDistanceContentDirectory, Path.GetDirectoryName(relativePath)), newDirectoryName); results.Add(to); } - eDistanceCollectionDirectory = Path.Combine(Property.Models.Stateless.IResult.GetResultsFullGroupDirectory(configuration, modelName, predictorModelName, nameof(E_Distance), outputResolution, includeResizeGroup: true, includeModel: true, includePredictorModel: true), "[]"); + eDistanceCollectionDirectory = Path.Combine(Property.Models.Stateless.IResult.GetResultsFullGroupDirectory(configuration, model, predictorModel, nameof(E_Distance), outputResolution, includeResizeGroup: true, includeModel: true, includePredictorModel: true), "[]"); if (Directory.Exists(eDistanceCollectionDirectory)) { to = Path.Combine(string.Concat(eDistanceCollectionDirectory, Path.GetDirectoryName(relativePath)), newDirectoryName); @@ -142,7 +142,7 @@ internal class E3_Rename } foreach (string outputResolution in _Configuration.ValidResolutions) { - add = Directory.Exists(string.Concat(Path.Combine(Property.Models.Stateless.IResult.GetResultsFullGroupDirectory(configuration, modelName, predictorModelName, nameof(C_Resize), outputResolution, includeResizeGroup: true, includeModel: false, includePredictorModel: false), "()"), relativePath)); + add = Directory.Exists(string.Concat(Path.Combine(Property.Models.Stateless.IResult.GetResultsFullGroupDirectory(configuration, model, predictorModel, nameof(C_Resize), outputResolution, includeResizeGroup: true, includeModel: false, includePredictorModel: false), "()"), relativePath)); bMetadataSingletonDirectory = Property.Models.Stateless.IResult.GetResultsDateGroupDirectory(configuration, nameof(B_Metadata), "{}"); from = string.Concat(bMetadataSingletonDirectory, relativePath); exists = Directory.Exists(bMetadataSingletonDirectory); @@ -159,7 +159,7 @@ internal class E3_Rename to = Path.Combine(string.Concat(aPropertySingletonDirectory, Path.GetDirectoryName(relativePath)), newDirectoryName); results.Add(new string[] { from, to }); } - cResizeContentDirectory = Path.Combine(Property.Models.Stateless.IResult.GetResultsFullGroupDirectory(configuration, modelName, predictorModelName, nameof(C_Resize), outputResolution, includeResizeGroup: true, includeModel: false, includePredictorModel: false), "()"); + cResizeContentDirectory = Path.Combine(Property.Models.Stateless.IResult.GetResultsFullGroupDirectory(configuration, model, predictorModel, nameof(C_Resize), outputResolution, includeResizeGroup: true, includeModel: false, includePredictorModel: false), "()"); from = string.Concat(cResizeContentDirectory, relativePath); exists = Directory.Exists(cResizeContentDirectory); if (exists) @@ -167,7 +167,7 @@ internal class E3_Rename to = Path.Combine(string.Concat(cResizeContentDirectory, Path.GetDirectoryName(relativePath)), newDirectoryName); results.Add(new string[] { from, to }); } - cResizeSingletonDirectory = Path.Combine(Property.Models.Stateless.IResult.GetResultsFullGroupDirectory(configuration, modelName, predictorModelName, nameof(C_Resize), outputResolution, includeResizeGroup: true, includeModel: false, includePredictorModel: false), "{}"); + cResizeSingletonDirectory = Path.Combine(Property.Models.Stateless.IResult.GetResultsFullGroupDirectory(configuration, model, predictorModel, nameof(C_Resize), outputResolution, includeResizeGroup: true, includeModel: false, includePredictorModel: false), "{}"); from = string.Concat(cResizeSingletonDirectory, relativePath); exists = Directory.Exists(cResizeSingletonDirectory); if (exists) @@ -175,7 +175,7 @@ internal class E3_Rename to = Path.Combine(string.Concat(cResizeSingletonDirectory, Path.GetDirectoryName(relativePath)), newDirectoryName); results.Add(new string[] { from, to }); } - dFacesContentDirectory = Path.Combine(Property.Models.Stateless.IResult.GetResultsFullGroupDirectory(configuration, modelName, predictorModelName, nameof(D_Face), outputResolution, includeResizeGroup: true, includeModel: true, includePredictorModel: true), "()"); + dFacesContentDirectory = Path.Combine(Property.Models.Stateless.IResult.GetResultsFullGroupDirectory(configuration, model, predictorModel, nameof(D_Face), outputResolution, includeResizeGroup: true, includeModel: true, includePredictorModel: true), "()"); from = string.Concat(dFacesContentDirectory, relativePath); exists = Directory.Exists(dFacesContentDirectory); if (exists) @@ -183,7 +183,7 @@ internal class E3_Rename to = Path.Combine(string.Concat(dFacesContentDirectory, Path.GetDirectoryName(relativePath)), newDirectoryName); results.Add(new string[] { from, to }); } - dFacesCollectionDirectory = Path.Combine(Property.Models.Stateless.IResult.GetResultsFullGroupDirectory(configuration, modelName, predictorModelName, nameof(D_Face), outputResolution, includeResizeGroup: true, includeModel: true, includePredictorModel: true), "[]"); + dFacesCollectionDirectory = Path.Combine(Property.Models.Stateless.IResult.GetResultsFullGroupDirectory(configuration, model, predictorModel, nameof(D_Face), outputResolution, includeResizeGroup: true, includeModel: true, includePredictorModel: true), "[]"); from = string.Concat(dFacesCollectionDirectory, relativePath); exists = Directory.Exists(dFacesCollectionDirectory); if (exists) @@ -191,7 +191,7 @@ internal class E3_Rename to = Path.Combine(string.Concat(dFacesCollectionDirectory, Path.GetDirectoryName(relativePath)), newDirectoryName); results.Add(new string[] { from, to }); } - d2FaceLandmarksContentDirectory = Path.Combine(Property.Models.Stateless.IResult.GetResultsFullGroupDirectory(configuration, modelName, predictorModelName, nameof(D2_FaceLandmarks), outputResolution, includeResizeGroup: true, includeModel: true, includePredictorModel: true), "()"); + d2FaceLandmarksContentDirectory = Path.Combine(Property.Models.Stateless.IResult.GetResultsFullGroupDirectory(configuration, model, predictorModel, nameof(D2_FaceLandmarks), outputResolution, includeResizeGroup: true, includeModel: true, includePredictorModel: true), "()"); from = string.Concat(d2FaceLandmarksContentDirectory, relativePath); exists = Directory.Exists(d2FaceLandmarksContentDirectory); if (!exists && add && _Configuration.SaveFaceLandmarkForOutputResolutions.Contains(outputResolution)) @@ -201,7 +201,7 @@ internal class E3_Rename to = Path.Combine(string.Concat(d2FaceLandmarksContentDirectory, Path.GetDirectoryName(relativePath)), newDirectoryName); results.Add(new string[] { from, to }); } - eDistanceContentDirectory = Path.Combine(Property.Models.Stateless.IResult.GetResultsFullGroupDirectory(configuration, modelName, predictorModelName, nameof(E_Distance), outputResolution, includeResizeGroup: true, includeModel: true, includePredictorModel: true), "()"); + eDistanceContentDirectory = Path.Combine(Property.Models.Stateless.IResult.GetResultsFullGroupDirectory(configuration, model, predictorModel, nameof(E_Distance), outputResolution, includeResizeGroup: true, includeModel: true, includePredictorModel: true), "()"); from = string.Concat(eDistanceContentDirectory, relativePath); exists = Directory.Exists(eDistanceContentDirectory); if (exists) @@ -209,7 +209,7 @@ internal class E3_Rename to = Path.Combine(string.Concat(eDistanceContentDirectory, Path.GetDirectoryName(relativePath)), newDirectoryName); results.Add(new string[] { from, to }); } - eDistanceCollectionDirectory = Path.Combine(Property.Models.Stateless.IResult.GetResultsFullGroupDirectory(configuration, modelName, predictorModelName, nameof(E_Distance), outputResolution, includeResizeGroup: true, includeModel: true, includePredictorModel: true), "[]"); + eDistanceCollectionDirectory = Path.Combine(Property.Models.Stateless.IResult.GetResultsFullGroupDirectory(configuration, model, predictorModel, nameof(E_Distance), outputResolution, includeResizeGroup: true, includeModel: true, includePredictorModel: true), "[]"); from = string.Concat(eDistanceCollectionDirectory, relativePath); exists = Directory.Exists(eDistanceCollectionDirectory); if (exists) diff --git a/Instance/Models/_E_Distance.cs b/Instance/Models/_E_Distance.cs index 9a25094..c7de784 100644 --- a/Instance/Models/_E_Distance.cs +++ b/Instance/Models/_E_Distance.cs @@ -211,8 +211,8 @@ internal class E_Distance string[] changesFrom = new string[] { nameof(A_Property), nameof(B_Metadata), nameof(C_Resize), nameof(D_Face) }; List dateTimes = (from l in sourceDirectoryChanges where changesFrom.Contains(l.Item1) select l.Item2).ToList(); List directoryInfoCollection = Property.Models.Stateless.IResult.GetDirectoryInfoCollection(configuration, - model.ToString(), - predictorModel.ToString(), + model, + predictorModel, sourceDirectory, nameof(E_Distance), outputResolution, @@ -274,7 +274,7 @@ internal class E_Distance string json; List>? facesKeyValuePairCollection; List<(string, List>)> results = new(); - string dFacesCollectionDirectory = Path.Combine(Property.Models.Stateless.IResult.GetResultsFullGroupDirectory(configuration, model.ToString(), predictorModel.ToString(), nameof(D_Face), outputResolution, includeResizeGroup: true, includeModel: true, includePredictorModel: true), "[[]]"); + string dFacesCollectionDirectory = Path.Combine(Property.Models.Stateless.IResult.GetResultsFullGroupDirectory(configuration, model, predictorModel, nameof(D_Face), outputResolution, includeResizeGroup: true, includeModel: true, includePredictorModel: true), "[[]]"); string[] dFacesCollectionFiles = Directory.GetFiles(dFacesCollectionDirectory, "*.json", SearchOption.TopDirectoryOnly); foreach (string dFacesCollectionFile in dFacesCollectionFiles) { @@ -327,7 +327,7 @@ internal class E_Distance private void Save(Property.Models.Configuration configuration, Model model, PredictorModel predictorModel, string outputResolution, string eDistanceCollectionDirectory, int k, string relativePath, Shared.Models.Face face, List> faceAndFaceDistanceCollection) { if (string.IsNullOrEmpty(eDistanceCollectionDirectory)) - eDistanceCollectionDirectory = Path.Combine(Property.Models.Stateless.IResult.GetResultsFullGroupDirectory(configuration, model.ToString(), predictorModel.ToString(), nameof(E_Distance), outputResolution, includeResizeGroup: true, includeModel: true, includePredictorModel: true), "[]"); + eDistanceCollectionDirectory = Path.Combine(Property.Models.Stateless.IResult.GetResultsFullGroupDirectory(configuration, model, predictorModel, nameof(E_Distance), outputResolution, includeResizeGroup: true, includeModel: true, includePredictorModel: true), "[]"); string fileNameWithoutExtension = Path.GetFileNameWithoutExtension(face.RelativePath); string jsonDirectory = string.Concat(eDistanceCollectionDirectory, Path.Combine(relativePath, fileNameWithoutExtension)); if (!Directory.Exists(jsonDirectory)) diff --git a/Instance/Models/_G_Index.cs b/Instance/Models/_G_Index.cs index 4e699f2..c582993 100644 --- a/Instance/Models/_G_Index.cs +++ b/Instance/Models/_G_Index.cs @@ -112,7 +112,7 @@ public class G_Index : Shared.Models.Properties.IIndex, IIndex foreach (Tuple> tuple in indexInfoTuples) { indices = (from l in tuple.Item2 select l.Value).ToArray(); - directoryInfoCollection = Property.Models.Stateless.IResult.GetDirectoryInfoCollection(configuration, model.ToString(), predictorModel.ToString(), tuple.Item1, nameof(G_Index), outputResolution, includeResizeGroup: false, includeModel: false, includePredictorModel: false, contentDescription: string.Empty, singletonDescription: string.Empty, collectionDescription: "Unknown A"); + directoryInfoCollection = Property.Models.Stateless.IResult.GetDirectoryInfoCollection(configuration, model, predictorModel, tuple.Item1, nameof(G_Index), outputResolution, includeResizeGroup: false, includeModel: false, includePredictorModel: false, contentDescription: string.Empty, singletonDescription: string.Empty, collectionDescription: "Unknown A"); json = JsonSerializer.Serialize(indices, _WriteIndentedJsonSerializerOptions); if (!Property.Models.Stateless.IPath.WriteAllText(string.Concat(directoryInfoCollection[0].Replace("<>", "[]"), ".json"), json, compareBeforeWrite: true)) continue; @@ -138,7 +138,7 @@ public class G_Index : Shared.Models.Properties.IIndex, IIndex maximumDateTime = (from l in dateTimes where l.HasValue select l.Value).Max(); minimumDateTime = (from l in dateTimes where l.HasValue select l.Value).Min(); } - directoryInfoCollection = Property.Models.Stateless.IResult.GetDirectoryInfoCollection(configuration, model.ToString(), predictorModel.ToString(), tuples.Key, nameof(G_Index), outputResolution, includeResizeGroup: false, includeModel: false, includePredictorModel: false, contentDescription: string.Empty, singletonDescription: "Unkown B", collectionDescription: string.Empty); + directoryInfoCollection = Property.Models.Stateless.IResult.GetDirectoryInfoCollection(configuration, model, predictorModel, tuples.Key, nameof(G_Index), outputResolution, includeResizeGroup: false, includeModel: false, includePredictorModel: false, contentDescription: string.Empty, singletonDescription: "Unkown B", collectionDescription: string.Empty); } } @@ -169,7 +169,7 @@ public class G_Index : Shared.Models.Properties.IIndex, IIndex foreach (KeyValuePair>> tuples in filePropertiesKeyValuePairs) { valuePairs = new Dictionary(); - directoryInfoCollection = Property.Models.Stateless.IResult.GetDirectoryInfoCollection(configuration, model.ToString(), predictorModel.ToString(), tuples.Key, nameof(G_Index), outputResolution, includeResizeGroup: false, includeModel: false, includePredictorModel: false, contentDescription: string.Empty, singletonDescription: "Unknown C", collectionDescription: string.Empty); + directoryInfoCollection = Property.Models.Stateless.IResult.GetDirectoryInfoCollection(configuration, model, predictorModel, tuples.Key, nameof(G_Index), outputResolution, includeResizeGroup: false, includeModel: false, includePredictorModel: false, contentDescription: string.Empty, singletonDescription: "Unknown C", collectionDescription: string.Empty); foreach (Tuple tuple in tuples.Value) { fileInfo = new FileInfo(Path.Combine(directoryInfoCollection[0].Replace("<>", "{}"), string.Concat(Path.GetFileNameWithoutExtension(tuple.Item1), ".json"))); diff --git a/Not-Copy-Copy/Not-Copy-Copy.cs b/Not-Copy-Copy/Not-Copy-Copy.cs index c510046..9bd2bfd 100644 --- a/Not-Copy-Copy/Not-Copy-Copy.cs +++ b/Not-Copy-Copy/Not-Copy-Copy.cs @@ -3,6 +3,7 @@ using Phares.Shared; using View_by_Distance.Not.Copy.Copy.Models; using View_by_Distance.Property.Models; using View_by_Distance.Shared.Models.Methods; +using View_by_Distance.Shared.Models.Stateless; namespace View_by_Distance.Not.Copy.Copy; @@ -38,8 +39,8 @@ public class NotCopyCopy Models.Configuration configuration = Models.Stateless.Configuration.Get(isEnvironment, configurationRoot, workingDirectory, propertyConfiguration); Verify(configuration); bool reverse = false; - string modelName = nameof(modelName); - string predictorModelName = nameof(predictorModelName); + Model model = Model.Hog; + PredictorModel predictorModel = PredictorModel.Large; _Configuration = configuration; if (propertyConfiguration.PopulatePropertyId is null) throw new Exception($"{nameof(propertyConfiguration.PopulatePropertyId)} is null!"); @@ -47,9 +48,9 @@ public class NotCopyCopy throw new Exception("This program only allows development environments!"); PropertyLogic propertyLogic = GetPropertyLogic(); propertyConfiguration.ChangeRootDirectory(configuration.CompareSource); - List comparePropertyHolderCollections = Property.Models.Stateless.A_Property.Get(propertyConfiguration, reverse, modelName, predictorModelName, propertyLogic); + List comparePropertyHolderCollections = Property.Models.Stateless.A_Property.Get(propertyConfiguration, reverse, model, predictorModel, propertyLogic); propertyConfiguration.ChangeRootDirectory(configuration.SelectedSource); - List selectedPropertyHolderCollections = Property.Models.Stateless.A_Property.Get(propertyConfiguration, reverse, modelName, predictorModelName, propertyLogic); + List selectedPropertyHolderCollections = Property.Models.Stateless.A_Property.Get(propertyConfiguration, reverse, model, predictorModel, propertyLogic); if (comparePropertyHolderCollections.Count == selectedPropertyHolderCollections.Count) throw new Exception(); string directoryName; diff --git a/PrepareForOld/PrepareForOld.cs b/PrepareForOld/PrepareForOld.cs index b7d7c82..ca28c10 100644 --- a/PrepareForOld/PrepareForOld.cs +++ b/PrepareForOld/PrepareForOld.cs @@ -41,8 +41,6 @@ public class PrepareForOld Property.Models.Configuration.Verify(propertyConfiguration); Models.Configuration configuration = Models.Stateless.Configuration.Get(isEnvironment, configurationRoot, workingDirectory, propertyConfiguration); Verify(configuration); - string modelName = nameof(modelName); - string predictorModelName = nameof(predictorModelName); if (propertyConfiguration.IgnoreExtensions is null) throw new Exception($"{nameof(propertyConfiguration.IgnoreExtensions)} is null!"); for (int i = 0; i < configuration.Spelling.Length; i++) diff --git a/Property/Models/PropertyLogic.cs b/Property/Models/PropertyLogic.cs index 836ceec..3aa666f 100644 --- a/Property/Models/PropertyLogic.cs +++ b/Property/Models/PropertyLogic.cs @@ -691,13 +691,13 @@ public class PropertyLogic }); } - private string SetAngleBracketCollectionAndGetZero(Configuration configuration, string modelName, string predictorModelName, string sourceDirectory) + private string SetAngleBracketCollectionAndGetZero(Configuration configuration, Model model, PredictorModel predictorModel, string sourceDirectory) { string result; AngleBracketCollection.Clear(); AngleBracketCollection.AddRange(IResult.GetDirectoryInfoCollection(configuration, - modelName, - predictorModelName, + model, + predictorModel, sourceDirectory, nameof(A_Property), string.Empty, @@ -711,7 +711,7 @@ public class PropertyLogic return result; } - public void ParallelWork(Configuration configuration, string modelName, string predictorModelName, long ticks, List propertyHolderCollections, bool firstPass) + public void ParallelWork(Configuration configuration, Model model, PredictorModel predictorModel, long ticks, List propertyHolderCollections, bool firstPass) { if (_Log is null) throw new Exception($"{nameof(_Log)} is null!"); @@ -743,7 +743,7 @@ public class PropertyLogic r = filteredPropertyHolderCollection[0].R; sourceDirectory = filteredPropertyHolderCollection[0].SourceDirectory; totalSeconds = (int)Math.Truncate(new TimeSpan(DateTime.Now.Ticks - ticks).TotalSeconds); - angleBracket = SetAngleBracketCollectionAndGetZero(configuration, modelName, predictorModelName, sourceDirectory); + angleBracket = SetAngleBracketCollectionAndGetZero(configuration, model, predictorModel, sourceDirectory); ParallelWork(firstPass, exceptions, sourceDirectoryChanges, propertyHolderCollectionsCount, g, sourceDirectory, r, filteredPropertyHolderCollection, totalSeconds, angleBracket); foreach (Exception exception in exceptions) _Log.Error(string.Concat(sourceDirectory, Environment.NewLine, exception.Message, Environment.NewLine, exception.StackTrace), exception); @@ -786,7 +786,7 @@ public class PropertyLogic return result; } - public (long Ticks, string FilteredSourceDirectoryFile, string PropertyDirectory, int PropertyId)[] GetPropertyIds(Configuration configuration, string modelName, string predictorModelName, List groupCollection, bool saveToCollection) + public (long Ticks, string FilteredSourceDirectoryFile, string PropertyDirectory, int PropertyId)[] GetPropertyIds(Configuration configuration, Model model, PredictorModel predictorModel, List groupCollection, bool saveToCollection) { List<(long Ticks, string FilteredSourceDirectoryFile, string PropertyDirectory, int PropertyId)> results = new(); int level; @@ -797,7 +797,7 @@ public class PropertyLogic string propertyDirectory; foreach (DirectoryInfo group in groupCollection) { - angleBracket = SetAngleBracketCollectionAndGetZero(configuration, modelName, predictorModelName, group.SourceDirectory); + angleBracket = SetAngleBracketCollectionAndGetZero(configuration, model, predictorModel, group.SourceDirectory); if (string.IsNullOrEmpty(group.SourceDirectory)) throw new Exception(); if (!saveToCollection) diff --git a/Property/Models/Stateless/A_Property.cs b/Property/Models/Stateless/A_Property.cs index 4d56dc3..64bde75 100644 --- a/Property/Models/Stateless/A_Property.cs +++ b/Property/Models/Stateless/A_Property.cs @@ -1,4 +1,5 @@ using System.Text.Json; +using View_by_Distance.Shared.Models.Stateless; namespace View_by_Distance.Property.Models.Stateless; @@ -235,7 +236,7 @@ public static class A_Property results.Add(new(g, sourceDirectory, collection, r)); } - public static List Get(Models.Configuration configuration, bool reverse, string modelName, string predictorModelName, PropertyLogic propertyLogic) + public static List Get(Models.Configuration configuration, bool reverse, Model model, PredictorModel predictorModel, PropertyLogic propertyLogic) { List results; string searchPattern = "*"; @@ -249,7 +250,7 @@ public static class A_Property fileInfoGroupCollection = GetFileInfoGroupCollection(configuration, reverse, searchPattern, topDirectories); collectionFromJson = GetCollection(aPropertySingletonDirectory, jsonCollection); results = Populate(configuration, aPropertySingletonDirectory, fileInfoGroupCollection, collectionFromJson); - propertyLogic.ParallelWork(configuration, modelName, predictorModelName, ticks, results, firstPass: false); + propertyLogic.ParallelWork(configuration, model, predictorModel, ticks, results, firstPass: false); if (propertyLogic.ExceptionsDirectories.Any()) throw new Exception(); return results; diff --git a/Property/Models/Stateless/IResult.cs b/Property/Models/Stateless/IResult.cs index d576802..c67ea15 100644 --- a/Property/Models/Stateless/IResult.cs +++ b/Property/Models/Stateless/IResult.cs @@ -1,3 +1,5 @@ +using View_by_Distance.Shared.Models.Stateless; + namespace View_by_Distance.Property.Models.Stateless; public interface IResult @@ -15,10 +17,10 @@ public interface IResult string TestStatic_GetResultsDateGroupDirectory(Models.Configuration configuration, string description, string jsonGroup); static string GetResultsDateGroupDirectory(Models.Configuration configuration, string description, string jsonGroup) => Result.GetResultsDateGroupDirectory(configuration, description, jsonGroup); - string TestStatic_GetResultsFullGroupDirectory(Models.Configuration configuration, string modelName, string predictorModelName, string description, string outputResolution, bool includeResizeGroup, bool includeModel, bool includePredictorModel); - static string GetResultsFullGroupDirectory(Models.Configuration configuration, string modelName, string predictorModelName, string description, string outputResolution, bool includeResizeGroup, bool includeModel, bool includePredictorModel) => Result.GetResultsFullGroupDirectory(configuration, modelName, predictorModelName, description, outputResolution, includeResizeGroup, includeModel, includePredictorModel); + string TestStatic_GetResultsFullGroupDirectory(Models.Configuration configuration, Model model, PredictorModel predictorModel, string description, string outputResolution, bool includeResizeGroup, bool includeModel, bool includePredictorModel); + static string GetResultsFullGroupDirectory(Models.Configuration configuration, Model model, PredictorModel predictorModel, string description, string outputResolution, bool includeResizeGroup, bool includeModel, bool includePredictorModel) => Result.GetResultsFullGroupDirectory(configuration, model, predictorModel, description, outputResolution, includeResizeGroup, includeModel, includePredictorModel); List TestStatic_GetDirectoryInfoCollection(Models.Configuration configuration, string sourceDirectory, string description, string outputResolution, bool includeResizeGroup, bool includeModel, bool includePredictorModel, string contentDescription, string singletonDescription, string collectionDescription); - static List GetDirectoryInfoCollection(Models.Configuration configuration, string modelName, string predictorModelName, string sourceDirectory, string description, string outputResolution, bool includeResizeGroup, bool includeModel, bool includePredictorModel, string contentDescription, string singletonDescription, string collectionDescription) => Result.GetDirectoryInfoCollection(configuration, modelName, predictorModelName, sourceDirectory, description, outputResolution, includeResizeGroup, includeModel, includePredictorModel, contentDescription, singletonDescription, collectionDescription); + static List GetDirectoryInfoCollection(Models.Configuration configuration, Model model, PredictorModel predictorModel, string sourceDirectory, string description, string outputResolution, bool includeResizeGroup, bool includeModel, bool includePredictorModel, string contentDescription, string singletonDescription, string collectionDescription) => Result.GetDirectoryInfoCollection(configuration, model, predictorModel, sourceDirectory, description, outputResolution, includeResizeGroup, includeModel, includePredictorModel, contentDescription, singletonDescription, collectionDescription); } \ No newline at end of file diff --git a/Property/Models/Stateless/Result.cs b/Property/Models/Stateless/Result.cs index 3de00a7..dc5b33c 100644 --- a/Property/Models/Stateless/Result.cs +++ b/Property/Models/Stateless/Result.cs @@ -1,3 +1,5 @@ +using View_by_Distance.Shared.Models.Stateless; + namespace View_by_Distance.Property.Models.Stateless; internal class Result @@ -33,14 +35,14 @@ internal class Result return result; } - internal static string GetResultsFullGroupDirectory(Models.Configuration configuration, string modelName, string predictorModelName, string description, string outputResolution, bool includeResizeGroup, bool includeModel, bool includePredictorModel) + internal static string GetResultsFullGroupDirectory(Models.Configuration configuration, Model model, PredictorModel predictorModel, string description, string outputResolution, bool includeResizeGroup, bool includeModel, bool includePredictorModel) { string result = GetResultsDateGroupDirectory(configuration, description); if (includeResizeGroup) result = Path.Combine(result, outputResolution); if (includeModel && includePredictorModel) { - string dateGroupDirectory = string.Concat(outputResolution.Replace(" ", string.Empty), " - ", modelName, " - ", predictorModelName); + string dateGroupDirectory = string.Concat(outputResolution.Replace(" ", string.Empty), " - ", model, " - ", predictorModel.ToString()); result = Path.Combine(result, dateGroupDirectory); } else if (includeModel) @@ -52,13 +54,13 @@ internal class Result return result; } - internal static List GetDirectoryInfoCollection(Models.Configuration configuration, string modelName, string predictorModelName, string sourceDirectory, string description, string outputResolution, bool includeResizeGroup, bool includeModel, bool includePredictorModel, string contentDescription, string singletonDescription, string collectionDescription) + internal static List GetDirectoryInfoCollection(Models.Configuration configuration, Model model, PredictorModel predictorModel, string sourceDirectory, string description, string outputResolution, bool includeResizeGroup, bool includeModel, bool includePredictorModel, string contentDescription, string singletonDescription, string collectionDescription) { List results = new(); string result = string.Empty; string checkDirectory; string sourceDirectorySegment = GetRelativePath(configuration, sourceDirectory); - string dateGroupDirectory = IResult.GetResultsFullGroupDirectory(configuration, modelName, predictorModelName, description, outputResolution, includeResizeGroup, includeModel, includePredictorModel); + string dateGroupDirectory = IResult.GetResultsFullGroupDirectory(configuration, model, predictorModel, description, outputResolution, includeResizeGroup, includeModel, includePredictorModel); if (!string.IsNullOrEmpty(contentDescription)) { result = string.Concat(Path.Combine(dateGroupDirectory, "<>"), sourceDirectorySegment); diff --git a/Tests/UnitTestResize.cs b/Tests/UnitTestResize.cs index c61df4d..1759eee 100644 --- a/Tests/UnitTestResize.cs +++ b/Tests/UnitTestResize.cs @@ -7,6 +7,7 @@ using System.Drawing.Imaging; using System.Reflection; using View_by_Distance.Metadata.Models; using View_by_Distance.Resize.Models; +using View_by_Distance.Shared.Models.Stateless; using View_by_Distance.Shared.Models.Stateless.Methods; using View_by_Distance.Tests.Models; @@ -103,15 +104,15 @@ public class UnitTestResize throw new Exception($"{nameof(_Configuration.PropertiesChangedForResize)} is null!"); int g = 1; int r = 1; + Model model = Model.Hog; string original = "Original"; List parseExceptions = new(); - string modelName = "model.ToString()"; Property.Models.A_Property? property = null; Property.Models.PropertyHolder propertyHolder; Dictionary imageResizeKeyValuePairs; List> subFileTuples = new(); + PredictorModel predictorModel = PredictorModel.Large; List> metadataCollection; - string predictorModelName = "predictorModel.ToString()"; int length = _PropertyConfiguration.RootDirectory.Length; string outputResolution = _Configuration.OutputResolutions[0]; Property.Models.PropertyLogic propertyLogic = GetPropertyLogic(); @@ -121,8 +122,8 @@ public class UnitTestResize (ImageCodecInfo imageCodecInfo, EncoderParameters encoderParameters) = C_Resize.GetTuple(_Configuration.OutputExtension, _Configuration.OutputQuality.Value); C_Resize resize = new(_Configuration.ForceResizeLastWriteTimeToCreationTime.Value, _Configuration.OverrideForResizeImages.Value, _Configuration.PropertiesChangedForResize.Value, _Configuration.ValidResolutions, imageCodecInfo, encoderParameters); propertyLogic.AngleBracketCollection.AddRange(Property.Models.Stateless.IResult.GetDirectoryInfoCollection(_PropertyConfiguration, - modelName, - predictorModelName, + model, + predictorModel, sourceDirectory, nameof(Property.Models.A_Property), outputResolution, @@ -133,8 +134,8 @@ public class UnitTestResize singletonDescription: "Properties for each image", collectionDescription: string.Empty)); metadata.AngleBracketCollection.AddRange(Property.Models.Stateless.IResult.GetDirectoryInfoCollection(_PropertyConfiguration, - modelName, - predictorModelName, + model, + predictorModel, sourceDirectory, nameof(B_Metadata), outputResolution, @@ -145,8 +146,8 @@ public class UnitTestResize singletonDescription: "Metadata as key value pairs", collectionDescription: string.Empty)); resize.AngleBracketCollection.AddRange(Property.Models.Stateless.IResult.GetDirectoryInfoCollection(_PropertyConfiguration, - modelName, - predictorModelName, + model, + predictorModel, sourceDirectory, nameof(C_Resize), outputResolution,