IsOffsetDeterministicHashCode
This commit is contained in:
parent
bf2d6849b3
commit
99e3f29720
@ -298,8 +298,8 @@ public partial class DlibDotNet
|
|||||||
ReadOnlyCollection<int>? notNineCollection = null;
|
ReadOnlyCollection<int>? notNineCollection = null;
|
||||||
ReadOnlyDictionary<long, List<int>> personKeyToIds;
|
ReadOnlyDictionary<long, List<int>> personKeyToIds;
|
||||||
ReadOnlyCollection<string[]>? filesCollection = null;
|
ReadOnlyCollection<string[]>? filesCollection = null;
|
||||||
bool runToDoCollectionFirst = GetRunToDoCollectionFirst(ticks);
|
|
||||||
(aResultsFullGroupDirectory, bResultsFullGroupDirectory) = GetResultsFullGroupDirectories();
|
(aResultsFullGroupDirectory, bResultsFullGroupDirectory) = GetResultsFullGroupDirectories();
|
||||||
|
bool runToDoCollectionFirst = GetRunToDoCollectionFirst(_Configuration.PropertyConfiguration, ticks);
|
||||||
ProgressBarOptions options = new() { ProgressCharacter = '─', ProgressBarOnBottom = true, DisableBottomPercentage = true };
|
ProgressBarOptions options = new() { ProgressCharacter = '─', ProgressBarOnBottom = true, DisableBottomPercentage = true };
|
||||||
Shared.Models.Stateless.Methods.IPath.ChangeDateForEmptyDirectories(_Configuration.PropertyConfiguration.RootDirectory, ticks);
|
Shared.Models.Stateless.Methods.IPath.ChangeDateForEmptyDirectories(_Configuration.PropertyConfiguration.RootDirectory, ticks);
|
||||||
a2PeopleContentDirectory = Property.Models.Stateless.IResult.GetResultsDateGroupDirectory(_Configuration.PropertyConfiguration, nameof(A2_People), "([])");
|
a2PeopleContentDirectory = Property.Models.Stateless.IResult.GetResultsDateGroupDirectory(_Configuration.PropertyConfiguration, nameof(A2_People), "([])");
|
||||||
@ -432,9 +432,11 @@ public partial class DlibDotNet
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private bool GetRunToDoCollectionFirst(long ticks)
|
private bool GetRunToDoCollectionFirst(Property.Models.Configuration propertyConfiguration, long ticks)
|
||||||
|
{
|
||||||
|
bool result = IId.IsOffsetDeterministicHashCode(propertyConfiguration);
|
||||||
|
if (!result)
|
||||||
{
|
{
|
||||||
bool result = false;
|
|
||||||
string[] directories;
|
string[] directories;
|
||||||
directories = Directory.GetDirectories(_Configuration.PropertyConfiguration.RootDirectory, "*", SearchOption.TopDirectoryOnly);
|
directories = Directory.GetDirectories(_Configuration.PropertyConfiguration.RootDirectory, "*", SearchOption.TopDirectoryOnly);
|
||||||
if (directories.Length == 0)
|
if (directories.Length == 0)
|
||||||
@ -477,6 +479,7 @@ public partial class DlibDotNet
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
if (result)
|
if (result)
|
||||||
result = true;
|
result = true;
|
||||||
if (!result)
|
if (!result)
|
||||||
|
@ -3,6 +3,11 @@ namespace View_by_Distance.Shared.Models.Stateless.Methods;
|
|||||||
public interface IId
|
public interface IId
|
||||||
{ // ...
|
{ // ...
|
||||||
|
|
||||||
|
const int DeterministicHashCode = 9876543;
|
||||||
|
|
||||||
|
static bool IsOffsetDeterministicHashCode(Properties.IPropertyConfiguration propertyConfiguration) =>
|
||||||
|
propertyConfiguration.Offset == DeterministicHashCode;
|
||||||
|
|
||||||
string TestStatic_GetIntelligentId(Properties.IPropertyConfiguration propertyConfiguration, long id, bool? ignore) =>
|
string TestStatic_GetIntelligentId(Properties.IPropertyConfiguration propertyConfiguration, long id, bool? ignore) =>
|
||||||
GetIntelligentId(propertyConfiguration, id, ignore);
|
GetIntelligentId(propertyConfiguration, id, ignore);
|
||||||
static string GetIntelligentId(Properties.IPropertyConfiguration propertyConfiguration, long id, bool? ignore) =>
|
static string GetIntelligentId(Properties.IPropertyConfiguration propertyConfiguration, long id, bool? ignore) =>
|
||||||
|
@ -73,7 +73,7 @@ internal abstract class Id
|
|||||||
int check = GetId(propertyConfiguration, intelligentId);
|
int check = GetId(propertyConfiguration, intelligentId);
|
||||||
if (check != id)
|
if (check != id)
|
||||||
throw new NotSupportedException();
|
throw new NotSupportedException();
|
||||||
result = index is null || propertyConfiguration.Offset == 9876543 ? intelligentId : $"{propertyConfiguration.Offset + index}{intelligentId}";
|
result = index is null || propertyConfiguration.Offset == IId.DeterministicHashCode ? intelligentId : $"{propertyConfiguration.Offset + index}{intelligentId}";
|
||||||
}
|
}
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
@ -301,6 +301,7 @@ internal abstract partial class XDirectory
|
|||||||
Models.FileHolder fileHolder;
|
Models.FileHolder fileHolder;
|
||||||
List<string> distinctDirectories = [];
|
List<string> distinctDirectories = [];
|
||||||
FilePath[] sortedRecords = GetSortedRecords(propertyConfiguration, filesCollection);
|
FilePath[] sortedRecords = GetSortedRecords(propertyConfiguration, filesCollection);
|
||||||
|
bool isOffsetDeterministicHashCode = IId.IsOffsetDeterministicHashCode(propertyConfiguration);
|
||||||
for (int i = 0; i < sortedRecords.Length; i++)
|
for (int i = 0; i < sortedRecords.Length; i++)
|
||||||
{
|
{
|
||||||
tick?.Invoke();
|
tick?.Invoke();
|
||||||
@ -342,7 +343,21 @@ internal abstract partial class XDirectory
|
|||||||
if (filePath.Id is null)
|
if (filePath.Id is null)
|
||||||
throw new NullReferenceException(nameof(filePath.Id));
|
throw new NullReferenceException(nameof(filePath.Id));
|
||||||
intelligentId = IId.GetIntelligentId(propertyConfiguration, filePath.Id.Value, filePath.IsIgnore);
|
intelligentId = IId.GetIntelligentId(propertyConfiguration, filePath.Id.Value, filePath.IsIgnore);
|
||||||
|
if (!isOffsetDeterministicHashCode)
|
||||||
checkFile = Path.Combine(directory, $"{intelligentId}{filePath.ExtensionLowered}");
|
checkFile = Path.Combine(directory, $"{intelligentId}{filePath.ExtensionLowered}");
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (filePath.DirectoryName is null)
|
||||||
|
continue;
|
||||||
|
paddedId = IId.GetPaddedId(propertyConfiguration, filePath.Id.Value, filePath.IsIgnore, i);
|
||||||
|
paddedIdFile = Path.Combine(filePath.DirectoryName, $"{paddedId}{filePath.ExtensionLowered}");
|
||||||
|
if (File.Exists(paddedIdFile))
|
||||||
|
continue;
|
||||||
|
File.Move(filePath.FullName, paddedIdFile);
|
||||||
|
if (!paddedCheck)
|
||||||
|
paddedCheck = true;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if ((filePath.Id is not null && distinctIds.Contains(filePath.Id.Value)) || distinct.Contains(checkFile))
|
if ((filePath.Id is not null && distinctIds.Contains(filePath.Id.Value)) || distinct.Contains(checkFile))
|
||||||
{
|
{
|
||||||
@ -380,6 +395,8 @@ internal abstract partial class XDirectory
|
|||||||
if (!distinctDirectories.Contains(directory))
|
if (!distinctDirectories.Contains(directory))
|
||||||
distinctDirectories.Add(directory);
|
distinctDirectories.Add(directory);
|
||||||
}
|
}
|
||||||
|
if (isOffsetDeterministicHashCode)
|
||||||
|
throw new Exception("Change Configuration Offset when ready to sort images!");
|
||||||
if (paddedCheck)
|
if (paddedCheck)
|
||||||
throw new Exception("Maybe need to restart application!");
|
throw new Exception("Maybe need to restart application!");
|
||||||
return (distinctDirectories.ToArray(), results);
|
return (distinctDirectories.ToArray(), results);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user