diff --git a/Distance/Models/_E_Distance.cs b/Distance/Models/_E_Distance.cs index 7ba0bec..0e9d90f 100644 --- a/Distance/Models/_E_Distance.cs +++ b/Distance/Models/_E_Distance.cs @@ -269,7 +269,7 @@ public partial class E_Distance return results; } - public void LookForMatchFacesAndPossiblyRename(string facesFileNameExtension, string? eDistanceContentDirectory, MappingFromItem mappingFromItem, List faces, List<(string MappedFaceFile, int NormalizedRectangle, IReadOnlyList? Directories)> collection) + public void LookForMatchFacesAndPossiblyRename(string facesFileNameExtension, string eDistanceContentDirectory, MappingFromItem mappingFromItem, List faces, List<(string MappedFaceFile, int NormalizedRectangle, IReadOnlyList? Directories)> collection) { string? json; string[] matches; @@ -295,7 +295,7 @@ public partial class E_Distance json = Metadata.Models.Stateless.IMetadata.GetFaceEncoding(directories); if (json is null) { - if (!string.IsNullOrEmpty(eDistanceContentDirectory) && _DistanceMoveUnableToMatch) + if (_DistanceMoveUnableToMatch) MoveUnableToMatch(eDistanceContentDirectory, mappedFaceFile, mappedFaceFileName); continue; } @@ -312,13 +312,13 @@ public partial class E_Distance } if (!checkFaces.Any()) { - if (!string.IsNullOrEmpty(eDistanceContentDirectory) && _DistanceMoveUnableToMatch) + if (_DistanceMoveUnableToMatch) MoveUnableToMatch(eDistanceContentDirectory, mappedFaceFile, mappedFaceFileName); continue; } if (checkFaces.Count != 1) { - if (!string.IsNullOrEmpty(eDistanceContentDirectory) && _DistanceMoveUnableToMatch) + if (_DistanceMoveUnableToMatch) MoveUnableToMatch(eDistanceContentDirectory, mappedFaceFile, mappedFaceFileName); continue; } diff --git a/Instance/DlibDotNet.cs b/Instance/DlibDotNet.cs index 6d81f98..b58bcf5 100644 --- a/Instance/DlibDotNet.cs +++ b/Instance/DlibDotNet.cs @@ -272,7 +272,6 @@ public partial class DlibDotNet configuration.MappingDefaultName, configuration.PersonBirthdayFirstYear, configuration.PersonBirthdayFormat, - configuration.PhotoPrismDirectory, configuration.RangeDaysDeltaTolerance, configuration.RangeDistanceTolerance, configuration.SortingMaximumPerKey, @@ -283,7 +282,7 @@ public partial class DlibDotNet return result; } - private void FullParallelForWork(A_Property propertyLogic, Dictionary?)>> idToMappedFaceFilesWithCollection, string outputResolution, string bResultsFullGroupDirectory, string cResultsFullGroupDirectory, string dResultsDateGroupDirectory, string dResultsFullGroupDirectory, string? eDistanceContentDirectory, List> sourceDirectoryChanges, List propertyFileHolderCollection, List propertyCollection, List>> metadataCollections, List> resizeKeyValuePairs, List> imageFaceCollections, Container container, int index, Item item, DateTime[] containerDateTimes) + private void FullParallelForWork(A_Property propertyLogic, Dictionary?)>> idToMappedFaceFilesWithCollection, string outputResolution, string bResultsFullGroupDirectory, string cResultsFullGroupDirectory, string dResultsDateGroupDirectory, string dResultsFullGroupDirectory, string eDistanceContentDirectory, List> sourceDirectoryChanges, List propertyFileHolderCollection, List propertyCollection, List>> metadataCollections, List> resizeKeyValuePairs, List> imageFaceCollections, Container container, int index, Item item, DateTime[] containerDateTimes) { if (_Log is null) throw new NullReferenceException(nameof(_Log)); @@ -408,7 +407,7 @@ public partial class DlibDotNet string cResultsFullGroupDirectory, string dResultsDateGroupDirectory, string dResultsFullGroupDirectory, - string? eDistanceContentDirectory, + string eDistanceContentDirectory, List> sourceDirectoryChanges, List propertyFileHolderCollection, List propertyCollection, @@ -854,7 +853,7 @@ public partial class DlibDotNet return items; } - private void MapLogic(string argZero, long ticks, Container[] containers, string a2PeopleSingletonDirectory, string dResultsFullGroupDirectory, string d2ResultsFullGroupDirectory, MapLogicSupport mapLogicSupport, MapLogic mapLogic, string outputResolution) + private void MapLogic(string argZero, long ticks, Container[] containers, string a2PeopleSingletonDirectory, string dResultsFullGroupDirectory, string d2ResultsFullGroupDirectory, string fPhotoPrismContentDirectory, MapLogicSupport mapLogicSupport, MapLogic mapLogic, string outputResolution) { int? useFiltersCounter = null; SortingContainer[] sortingContainers; @@ -864,8 +863,8 @@ public partial class DlibDotNet Mapping[] mappingCollection = MapLogicSupport.GetSelectedMappingCollection(distinctFilteredFaces); string dFacesCollectionDirectory = Path.Combine(dResultsFullGroupDirectory, "[]", _Configuration.PropertyConfiguration.ResultAllInOne); (Dictionary personKeyToCount, int totalNotMapped) = mapLogic.AddToMapping(mappingCollection); - if (!string.IsNullOrEmpty(_Configuration.PhotoPrismDirectory) && Directory.Exists(_Configuration.PhotoPrismDirectory)) - F_PhotoPrism.WriteMatches(_Configuration.PhotoPrismDirectory, _Configuration.PersonBirthdayFormat, ticks, distinctFilteredFaces, mapLogic); + if (Directory.Exists(fPhotoPrismContentDirectory)) + F_PhotoPrism.WriteMatches(fPhotoPrismContentDirectory, _Configuration.PersonBirthdayFormat, ticks, distinctFilteredFaces, mapLogic); if (_Configuration.SaveShortcutsForOutputResolutions.Contains(outputResolution)) { List filteredItems = GetItems(argZero, containers); @@ -1013,7 +1012,7 @@ public partial class DlibDotNet collection.Add(new(value.MappedFaceFile, normalizedRectangle.Value, directories)); } - private Dictionary?)>> GetCollection(long ticks, string? a2PeopleContentDirectory, string? eDistanceContentDirectory) + private Dictionary?)>> GetCollection(long ticks, string? a2PeopleContentDirectory, string eDistanceContentDirectory) { Dictionary?)>> results = new(); int? id; @@ -1052,18 +1051,14 @@ public partial class DlibDotNet int t; Container[] containers; string? a2PeopleContentDirectory; + string eDistanceContentDirectory; string aResultsFullGroupDirectory; string bResultsFullGroupDirectory; string cResultsFullGroupDirectory; string dResultsFullGroupDirectory; - string? eDistanceContentDirectory; string d2ResultsFullGroupDirectory; - if (!string.IsNullOrEmpty(_Configuration.PhotoPrismDirectory) && Directory.Exists(_Configuration.PhotoPrismDirectory)) - { - Dictionary> fileNameToCollection = F_PhotoPrism.GetFileNameToCollection(_Configuration.PhotoPrismDirectory); - foreach (KeyValuePair> keyValuePair in fileNameToCollection) - _FileNameToCollection.Add(keyValuePair.Key, keyValuePair.Value); - } + string fPhotoPrismContentDirectory; + string fPhotoPrismSingletonDirectory; string a2PeopleSingletonDirectory = Property.Models.Stateless.IResult.GetResultsDateGroupDirectory(_Configuration.PropertyConfiguration, nameof(A2_People), "{}"); int totalSeconds = (int)Math.Floor(new TimeSpan(DateTime.Now.Ticks - ticks).TotalSeconds); string message = $") Building Container(s) - {totalSeconds} total second(s)"; @@ -1079,14 +1074,16 @@ public partial class DlibDotNet { a2PeopleContentDirectory = Property.Models.Stateless.IResult.GetResultsDateGroupDirectory(_Configuration.PropertyConfiguration, nameof(A2_People), "([])"); eDistanceContentDirectory = Property.Models.Stateless.IResult.GetResultsDateGroupDirectory(_Configuration.PropertyConfiguration, nameof(E_Distance), "()"); + fPhotoPrismContentDirectory = Property.Models.Stateless.IResult.GetResultsDateGroupDirectory(_Configuration.PropertyConfiguration, nameof(F_PhotoPrism), "()"); + fPhotoPrismSingletonDirectory = Property.Models.Stateless.IResult.GetResultsDateGroupDirectory(_Configuration.PropertyConfiguration, nameof(F_PhotoPrism), "{}"); } else { string resultsGroupDirectory; a2PeopleContentDirectory = null; - eDistanceContentDirectory = Path.GetPathRoot(argZero); - if (eDistanceContentDirectory is null) - throw new NullReferenceException(nameof(eDistanceContentDirectory)); + eDistanceContentDirectory = Path.Combine($"{Path.GetPathRoot(argZero)}", "()"); + fPhotoPrismContentDirectory = Path.Combine($"{Path.GetPathRoot(argZero)}", "()"); + fPhotoPrismSingletonDirectory = Path.Combine($"{Path.GetPathRoot(argZero)}", "{}"); string? newRootDirectory = SaveUrlAndGetNewRootDirectory(container); for (int i = 1; i < 10; i++) { @@ -1101,6 +1098,12 @@ public partial class DlibDotNet containers = Shared.Models.Stateless.Methods.IContainer.SortContainers(_Configuration.PropertyConfiguration, _Configuration.IgnoreRelativePaths, _ArgZeroIsConfigurationRootDirectory, argZero, containers); MapLogicSupport mapLogicSupport = new(_Configuration.FaceConfidencePercent, _Configuration.FaceDistancePermyriad, _Configuration.RangeDaysDeltaTolerance, _Configuration.RangeFaceAreaPermilleTolerance, _Configuration.SortingMaximumPerFaceShouldBeHigh); MapLogic? mapLogic = _Configuration.DistanceMoveUnableToMatch ? null : new(_AppSettings.MaxDegreeOfParallelism, _Configuration.PropertyConfiguration, _MapConfiguration, ticks, _PersonContainers, a2PeopleSingletonDirectory, eDistanceContentDirectory, mapLogicSupport); + if (Directory.Exists(fPhotoPrismSingletonDirectory)) + { + Dictionary> fileNameToCollection = F_PhotoPrism.GetFileNameToCollection(fPhotoPrismContentDirectory); + foreach (KeyValuePair> keyValuePair in fileNameToCollection) + _FileNameToCollection.Add(keyValuePair.Key, keyValuePair.Value); + } FullDoWork(argZero, propertyRoot, ticks, propertyLogic, t, containers, a2PeopleContentDirectory, eDistanceContentDirectory); _Distance.Clear(); mapLogic ??= new(_AppSettings.MaxDegreeOfParallelism, _Configuration.PropertyConfiguration, _MapConfiguration, ticks, _PersonContainers, a2PeopleSingletonDirectory, eDistanceContentDirectory, mapLogicSupport); @@ -1115,13 +1118,12 @@ public partial class DlibDotNet && _Configuration.SaveResizedSubfiles && outputResolution == _Configuration.OutputResolutions[0] && _Configuration.LoadOrCreateThenSaveDistanceResultsForOutputResolutions.Contains(outputResolution) - && _Exceptions.Count == 0 - && !string.IsNullOrEmpty(eDistanceContentDirectory)) + && _Exceptions.Count == 0) { if (!_Configuration.LoadOrCreateThenSaveImageFacesResultsForOutputResolutions.Any()) break; SetMapping(_FileNameToCollection, argZero, containers); - MapLogic(argZero, ticks, containers, a2PeopleSingletonDirectory, dResultsFullGroupDirectory, d2ResultsFullGroupDirectory, mapLogicSupport, mapLogic, outputResolution); + MapLogic(argZero, ticks, containers, a2PeopleSingletonDirectory, dResultsFullGroupDirectory, d2ResultsFullGroupDirectory, fPhotoPrismContentDirectory, mapLogicSupport, mapLogic, outputResolution); if (_IsEnvironment.Development) continue; List mappingFromItemCollection = GetMappingFromItemCollection(containers); diff --git a/Instance/Models/Binder/Configuration.cs b/Instance/Models/Binder/Configuration.cs index e7557e6..8aaddd1 100644 --- a/Instance/Models/Binder/Configuration.cs +++ b/Instance/Models/Binder/Configuration.cs @@ -50,7 +50,6 @@ public class Configuration [Display(Name = "Person Birthday First Year"), Required] public int? PersonBirthdayFirstYear { get; set; } [Display(Name = "Person Birthday Format"), Required] public string PersonBirthdayFormat { get; set; } [Display(Name = "PersonKey Format"), Required] public string PersonKeyFormat { get; set; } - [Display(Name = "Photo-Prism Directory"), Required] public string PhotoPrismDirectory { get; set; } [Display(Name = "Predictor Model Name"), Required] public string PredictorModelName { get; set; } [Display(Name = "Properties Changed For Distance"), Required] public bool? PropertiesChangedForDistance { get; set; } [Display(Name = "Properties Changed For Faces"), Required] public bool? PropertiesChangedForFaces { get; set; } @@ -159,8 +158,6 @@ public class Configuration throw new NullReferenceException(nameof(configuration.PersonBirthdayFormat)); if (configuration.PersonKeyFormat is null) throw new NullReferenceException(nameof(configuration.PersonKeyFormat)); - if (configuration.PhotoPrismDirectory is null) - throw new NullReferenceException(nameof(configuration.PhotoPrismDirectory)); if (configuration.PropertiesChangedForDistance is null) throw new NullReferenceException(nameof(configuration.PropertiesChangedForDistance)); if (configuration.PropertiesChangedForFaces is null) @@ -244,7 +241,6 @@ public class Configuration configuration.PersonBirthdayFirstYear.Value, configuration.PersonBirthdayFormat, configuration.PersonKeyFormat, - configuration.PhotoPrismDirectory, configuration.PredictorModelName, configuration.PropertiesChangedForDistance.Value, configuration.PropertiesChangedForFaces.Value, diff --git a/Instance/Models/Configuration.cs b/Instance/Models/Configuration.cs index 2068162..5c39c6e 100644 --- a/Instance/Models/Configuration.cs +++ b/Instance/Models/Configuration.cs @@ -47,7 +47,6 @@ public class Configuration public int PersonBirthdayFirstYear { init; get; } public string PersonBirthdayFormat { init; get; } public string PersonKeyFormat { init; get; } - public string PhotoPrismDirectory { init; get; } public string PredictorModelName { init; get; } public bool PropertiesChangedForDistance { init; get; } public bool PropertiesChangedForFaces { init; get; } @@ -114,7 +113,6 @@ public class Configuration int personBirthdayFirstYear, string personBirthdayFormat, string personKeyFormat, - string photoPrismDirectory, string predictorModelName, bool propertiesChangedForDistance, bool propertiesChangedForFaces, @@ -180,7 +178,6 @@ public class Configuration PersonBirthdayFirstYear = personBirthdayFirstYear; PersonBirthdayFormat = personBirthdayFormat; PersonKeyFormat = personKeyFormat; - PhotoPrismDirectory = photoPrismDirectory; PredictorModelName = predictorModelName; PropertiesChangedForDistance = propertiesChangedForDistance; PropertiesChangedForFaces = propertiesChangedForFaces; diff --git a/Instance/appsettings.Development.json b/Instance/appsettings.Development.json index fea4ae5..c83ebeb 100644 --- a/Instance/appsettings.Development.json +++ b/Instance/appsettings.Development.json @@ -12,12 +12,11 @@ "Configuration": { "DistanceRenameToMatch": false, "DistanceMoveUnableToMatch": false, - "PhotoPrismDirectory": "D:/Docker/photoprism/windows/Images/storage/backup", "xRootDirectory": "D:/Tmp/phares/Pictures", "xxRootDirectory": "D:/Tmp/Phares/Compare/Not-Copy-Copy-37c7b67", "xxxRootDirectory": "D:/Tmp/Phares/Compare/Corrupt", "RootDirectory": "D:/1) Images A/Images-37c7b67", - "xxxxxRootDirectory": "F:/Tmp/Phares/Compare/Images-37c7b67/Facebook/=2022.3 Facebook", + "xxxxxRootDirectory": "D:/1) Images A/Images-37c7b67/Facebook/=2022.3 Facebook", "JLinks": [ "Julie" ], diff --git a/Instance/appsettings.json b/Instance/appsettings.json index 703470d..0246cfe 100644 --- a/Instance/appsettings.json +++ b/Instance/appsettings.json @@ -88,7 +88,6 @@ "PersonBirthdayFirstYear": 1500, "PersonBirthdayFormat": "yyyy-MM-dd_HH", "PersonKeyFormat": "yyyy-MM-dd_HH", - "PhotoPrismDirectory": "", "PopulatePropertyId": true, "PredictorModelName": "Large", "PropertiesChangedForDistance": false, diff --git a/Map/Models/Configuration.cs b/Map/Models/Configuration.cs index f138c2d..fdf9c71 100644 --- a/Map/Models/Configuration.cs +++ b/Map/Models/Configuration.cs @@ -14,7 +14,6 @@ public class Configuration public string MappingDefaultName { init; get; } public int PersonBirthdayFirstYear { init; get; } public string PersonBirthdayFormat { init; get; } - public string PhotoPrismDirectory { init; get; } public int RangeDaysDeltaTolerance { init; get; } public double RangeDistanceTolerance { init; get; } public int SortingMaximumPerKey { init; get; } @@ -26,7 +25,6 @@ public class Configuration string mappingDefaultName, int personBirthdayFirstYear, string personBirthdayFormat, - string photoPrismDirectory, int[] rangeDaysDeltaTolerance, double[] rangeDistanceTolerance, int sortingMaximumPerKey, @@ -36,7 +34,6 @@ public class Configuration string facePartsFileNameExtension) { MappingDefaultName = mappingDefaultName; - PhotoPrismDirectory = photoPrismDirectory; PersonBirthdayFormat = personBirthdayFormat; SortingMaximumPerKey = sortingMaximumPerKey; FaceConfidencePercent = faceConfidencePercent; diff --git a/Map/Models/Stateless/MapLogic.cs b/Map/Models/Stateless/MapLogic.cs index 7e00a67..5b00daa 100644 --- a/Map/Models/Stateless/MapLogic.cs +++ b/Map/Models/Stateless/MapLogic.cs @@ -189,7 +189,7 @@ internal abstract class MapLogic return results; } - internal static List<(string, string[], string)> DeleteEmptyDirectoriesAndGetMappedFaceFiles(Configuration configuration, PersonContainer[] personContainers, long ticks, string? a2PeopleContentDirectory, string? eDistanceContentDirectory) + internal static List<(string, string[], string)> DeleteEmptyDirectoriesAndGetMappedFaceFiles(Configuration configuration, PersonContainer[] personContainers, long ticks, string? a2PeopleContentDirectory, string eDistanceContentDirectory) { List<(string, string[], string)> results; string personKeyFormatted; diff --git a/Map/Models/Stateless/Methods/IMapLogic.cs b/Map/Models/Stateless/Methods/IMapLogic.cs index eab6c4e..28cab28 100644 --- a/Map/Models/Stateless/Methods/IMapLogic.cs +++ b/Map/Models/Stateless/Methods/IMapLogic.cs @@ -3,9 +3,9 @@ namespace View_by_Distance.Map.Models.Stateless.Methods; public interface IMapLogic { // ... - List<(string, string[], string)> TestStatic_DeleteEmptyDirectoriesAndGetMappedFaceFiles(Configuration configuration, Shared.Models.PersonContainer[] personContainers, long ticks, string? a2PeopleContentDirectory, string? eDistanceContentDirectory) => + List<(string, string[], string)> TestStatic_DeleteEmptyDirectoriesAndGetMappedFaceFiles(Configuration configuration, Shared.Models.PersonContainer[] personContainers, long ticks, string? a2PeopleContentDirectory, string eDistanceContentDirectory) => DeleteEmptyDirectoriesAndGetMappedFaceFiles(configuration, personContainers, ticks, a2PeopleContentDirectory, eDistanceContentDirectory); - static List<(string, string[], string)> DeleteEmptyDirectoriesAndGetMappedFaceFiles(Configuration configuration, Shared.Models.PersonContainer[] personContainers, long ticks, string? a2PeopleContentDirectory, string? eDistanceContentDirectory) => + static List<(string, string[], string)> DeleteEmptyDirectoriesAndGetMappedFaceFiles(Configuration configuration, Shared.Models.PersonContainer[] personContainers, long ticks, string? a2PeopleContentDirectory, string eDistanceContentDirectory) => MapLogic.DeleteEmptyDirectoriesAndGetMappedFaceFiles(configuration, personContainers, ticks, a2PeopleContentDirectory, eDistanceContentDirectory); } \ No newline at end of file diff --git a/PhotoPrism/Models/_F_PhotoPrism.cs b/PhotoPrism/Models/_F_PhotoPrism.cs index f644cd2..8b0a2b7 100644 --- a/PhotoPrism/Models/_F_PhotoPrism.cs +++ b/PhotoPrism/Models/_F_PhotoPrism.cs @@ -11,25 +11,33 @@ public class F_PhotoPrism private static JsonProperty[] GetJsonProperty(string fileName) { JsonProperty[] results; - string json = File.ReadAllText(fileName); - JsonElement? jsonElement = JsonSerializer.Deserialize(json); - results = jsonElement.Value.EnumerateObject().ToArray(); + if (!File.Exists(fileName)) + results = Array.Empty(); + else + { + string json = File.ReadAllText(fileName); + JsonElement? jsonElement = JsonSerializer.Deserialize(json); + results = jsonElement.Value.EnumerateObject().ToArray(); + } return results; } - private static Marker[]? GetMarkers(string photoPrismDirectory) + private static Marker[]? GetMarkers(string fPhotoPrismSingletonDirectory) { Marker[]? results; - string file = Path.Combine(photoPrismDirectory, "markers.json"); + string file = Path.Combine(fPhotoPrismSingletonDirectory, "markers.json"); JsonProperty[] jsonProperties = GetJsonProperty(file); - results = JsonSerializer.Deserialize(jsonProperties[1].Value); + if (!jsonProperties.Any()) + results = null; + else + results = JsonSerializer.Deserialize(jsonProperties[1].Value); return results; } - private static Dictionary> GetFileUIdToMarkers(string photoPrismDirectory) + private static Dictionary> GetFileUIdToMarkers(string fPhotoPrismSingletonDirectory) { Dictionary> results = new(); - Marker[]? markers = GetMarkers(photoPrismDirectory); + Marker[]? markers = GetMarkers(fPhotoPrismSingletonDirectory); if (markers is null) throw new NullReferenceException(nameof(markers)); foreach (Marker marker in markers) @@ -41,25 +49,28 @@ public class F_PhotoPrism return results; } - private static DatabaseFile[]? GetDatabaseFiles(string photoPrismDirectory) + private static DatabaseFile[]? GetDatabaseFiles(string fPhotoPrismSingletonDirectory) { DatabaseFile[]? results; - string file = Path.Combine(photoPrismDirectory, "files.json"); + string file = Path.Combine(fPhotoPrismSingletonDirectory, "files.json"); JsonProperty[] jsonProperties = GetJsonProperty(file); - results = JsonSerializer.Deserialize(jsonProperties[1].Value); + if (!jsonProperties.Any()) + results = null; + else + results = JsonSerializer.Deserialize(jsonProperties[1].Value); return results; } - public static Dictionary> GetFileNameToCollection(string photoPrismDirectory) + public static Dictionary> GetFileNameToCollection(string fPhotoPrismSingletonDirectory) { Dictionary> results = new(); List? makers; MappingFromPhotoPrism mappingFromPhotoPrism; List? mappingFromPhotoPrismCollection; - DatabaseFile[]? databaseFiles = GetDatabaseFiles(photoPrismDirectory); + DatabaseFile[]? databaseFiles = GetDatabaseFiles(fPhotoPrismSingletonDirectory); if (databaseFiles is null) throw new NullReferenceException(nameof(databaseFiles)); - Dictionary> fileUIdToMarkers = GetFileUIdToMarkers(photoPrismDirectory); + Dictionary> fileUIdToMarkers = GetFileUIdToMarkers(fPhotoPrismSingletonDirectory); foreach (DatabaseFile databaseFile in databaseFiles) { if (!results.TryGetValue(databaseFile.FileName, out mappingFromPhotoPrismCollection)) @@ -77,7 +88,7 @@ public class F_PhotoPrism return results; } - public static void WriteMatches(string photoPrismDirectory, string personBirthdayFormat, long ticks, Face[] distinctFilteredFaces, Shared.Models.Methods.IMapLogic mapLogic) + public static void WriteMatches(string fPhotoPrismContentDirectory, string personBirthdayFormat, long ticks, Face[] distinctFilteredFaces, Shared.Models.Methods.IMapLogic mapLogic) { long? personKey; const int zero = 0; @@ -147,8 +158,8 @@ public class F_PhotoPrism } } } - File.WriteAllLines(Path.Combine(photoPrismDirectory, $"{ticks}-subject_alias_update.sql"), subjects.Distinct()); - File.WriteAllText(Path.Combine(photoPrismDirectory, $"{ticks}-marker_name_update.sql"), stringBuilder.ToString()); + File.WriteAllLines(Path.Combine(fPhotoPrismContentDirectory, $"{ticks}-subject_alias_update.sql"), subjects.Distinct()); + File.WriteAllText(Path.Combine(fPhotoPrismContentDirectory, $"{ticks}-marker_name_update.sql"), stringBuilder.ToString()); } } \ No newline at end of file