IsDefault
extraSaveContainer
This commit is contained in:
parent
5b9e32bce6
commit
c06435abf9
@ -57,6 +57,8 @@ public partial class DlibDotNet
|
|||||||
_IsEnvironment = isEnvironment;
|
_IsEnvironment = isEnvironment;
|
||||||
long ticks = DateTime.Now.Ticks;
|
long ticks = DateTime.Now.Ticks;
|
||||||
_Exceptions = new List<string>();
|
_Exceptions = new List<string>();
|
||||||
|
if (ticks.ToString().Last() == '0')
|
||||||
|
ticks += 1;
|
||||||
_Log = Serilog.Log.ForContext<DlibDotNet>();
|
_Log = Serilog.Log.ForContext<DlibDotNet>();
|
||||||
ReadOnlyCollection<PersonContainer> personContainers;
|
ReadOnlyCollection<PersonContainer> personContainers;
|
||||||
Property.Models.Configuration propertyConfiguration = Property.Models.Binder.Configuration.Get(isEnvironment, configurationRoot);
|
Property.Models.Configuration propertyConfiguration = Property.Models.Binder.Configuration.Get(isEnvironment, configurationRoot);
|
||||||
|
@ -383,14 +383,13 @@ public class MapLogic : Shared.Models.Methods.IMapLogic
|
|||||||
string facesDirectory;
|
string facesDirectory;
|
||||||
string? directoryName;
|
string? directoryName;
|
||||||
string personDirectory;
|
string personDirectory;
|
||||||
string facePartsDirectory;
|
|
||||||
FileHolder faceFileHolder;
|
FileHolder faceFileHolder;
|
||||||
|
string facePartsDirectory;
|
||||||
string personKeyFormatted;
|
string personKeyFormatted;
|
||||||
List<int> distinct = new();
|
List<int> distinct = new();
|
||||||
SaveContainer? saveContainer;
|
SaveContainer? saveContainer;
|
||||||
FileHolder facePartsFileHolder;
|
FileHolder facePartsFileHolder;
|
||||||
FileHolder hiddenFaceFileHolder;
|
FileHolder hiddenFaceFileHolder;
|
||||||
string? facePartsContentCollectionFile;
|
|
||||||
Dictionary<int, Mapping>? wholePercentagesToMapping;
|
Dictionary<int, Mapping>? wholePercentagesToMapping;
|
||||||
int padLeft = _Configuration.FaceDistancePermyriad.ToString().Length;
|
int padLeft = _Configuration.FaceDistancePermyriad.ToString().Length;
|
||||||
string forceSingleImageHumanized = nameof(Shared.Models.Stateless.IMapLogic.ForceSingleImage).Humanize(LetterCasing.Title);
|
string forceSingleImageHumanized = nameof(Shared.Models.Stateless.IMapLogic.ForceSingleImage).Humanize(LetterCasing.Title);
|
||||||
@ -491,10 +490,11 @@ public class MapLogic : Shared.Models.Methods.IMapLogic
|
|||||||
{
|
{
|
||||||
if (saveIndividually)
|
if (saveIndividually)
|
||||||
{
|
{
|
||||||
facePartsContentCollectionFile = Stateless.MapLogic.GetFacePartsContentCollectionFile(_Configuration.FacePartsFileNameExtension, d2FacePartsContentCollectionDirectory, mapping.MappingFromItem);
|
facePartsDirectory = Stateless.MapLogic.GetFacePartsDirectory(_PropertyConfiguration, d2FacePartsContentDirectory, mapping.MappingFromItem);
|
||||||
if (facePartsContentCollectionFile is null)
|
facePartsFileHolder = new(Path.Combine(facePartsDirectory, $"{mapping.MappingFromLocation.DeterministicHashCodeKey}{mapping.MappingFromItem.ImageFileHolder.ExtensionLowered}{_Configuration.FacePartsFileNameExtension}"));
|
||||||
|
(saveContainer, SaveContainer? extraSaveContainer) = Stateless.MapLogic.GetContainers(_Configuration.FacesFileNameExtension, _Configuration.FacePartsFileNameExtension, directory, faceFileHolder, facePartsFileHolder, mapping);
|
||||||
|
if (extraSaveContainer is null)
|
||||||
continue;
|
continue;
|
||||||
(saveContainer, SaveContainer extraSaveContainer) = Stateless.MapLogic.GetContainers(_Configuration.FacesFileNameExtension, _Configuration.FacePartsFileNameExtension, directory, faceFileHolder, facePartsContentCollectionFile, mapping);
|
|
||||||
results.Add(extraSaveContainer);
|
results.Add(extraSaveContainer);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -3,6 +3,7 @@ using ShellProgressBar;
|
|||||||
using System.Collections.ObjectModel;
|
using System.Collections.ObjectModel;
|
||||||
using System.Diagnostics;
|
using System.Diagnostics;
|
||||||
using System.Drawing;
|
using System.Drawing;
|
||||||
|
using System.Globalization;
|
||||||
using View_by_Distance.Shared.Models;
|
using View_by_Distance.Shared.Models;
|
||||||
using View_by_Distance.Shared.Models.Stateless.Methods;
|
using View_by_Distance.Shared.Models.Stateless.Methods;
|
||||||
using WindowsShortcutFactory;
|
using WindowsShortcutFactory;
|
||||||
@ -14,10 +15,12 @@ internal abstract class MapLogic
|
|||||||
|
|
||||||
private record Record(string PersonKeyFormatted,
|
private record Record(string PersonKeyFormatted,
|
||||||
string[] PersonDisplayDirectoryNames,
|
string[] PersonDisplayDirectoryNames,
|
||||||
|
bool IsDefault,
|
||||||
string MappedFaceFile);
|
string MappedFaceFile);
|
||||||
|
|
||||||
private record PersonKeyFormattedIdThenWholePercentages(string PersonKeyFormatted,
|
private record PersonKeyFormattedIdThenWholePercentages(string PersonKeyFormatted,
|
||||||
string[] PersonDisplayDirectoryNames,
|
string[] PersonDisplayDirectoryNames,
|
||||||
|
bool IsDefault,
|
||||||
string MappedFaceFile,
|
string MappedFaceFile,
|
||||||
int Id,
|
int Id,
|
||||||
int WholePercentages);
|
int WholePercentages);
|
||||||
@ -90,6 +93,7 @@ internal abstract class MapLogic
|
|||||||
|
|
||||||
private static void Individually(Configuration configuration, string ticksDirectory, string directory)
|
private static void Individually(Configuration configuration, string ticksDirectory, string directory)
|
||||||
{
|
{
|
||||||
|
bool isDefault;
|
||||||
string[] files;
|
string[] files;
|
||||||
FileInfo[] collection;
|
FileInfo[] collection;
|
||||||
string[] facesFileNames;
|
string[] facesFileNames;
|
||||||
@ -133,7 +137,8 @@ internal abstract class MapLogic
|
|||||||
if (files.Length != 4)
|
if (files.Length != 4)
|
||||||
continue;
|
continue;
|
||||||
collection = files.Select(l => new FileInfo(l)).ToArray();
|
collection = files.Select(l => new FileInfo(l)).ToArray();
|
||||||
if (IPerson.IsDefaultName(configuration.MappingDefaultName, alphaDirectoryName))
|
isDefault = alphaDirectoryName.First() == 'Z' && IPersonBirthday.IsCounterPersonYear(personKeyFormatted[..4]);
|
||||||
|
if (isDefault)
|
||||||
facesFileNames = (from l in collection where l.Extension == configuration.FacesFileNameExtension select l.FullName).ToArray();
|
facesFileNames = (from l in collection where l.Extension == configuration.FacesFileNameExtension select l.FullName).ToArray();
|
||||||
else
|
else
|
||||||
facesFileNames = (from l in collection where l.Extension == configuration.FacesFileNameExtension && l.Name.Contains(matchDirectoryName) select l.FullName).ToArray();
|
facesFileNames = (from l in collection where l.Extension == configuration.FacesFileNameExtension && l.Name.Contains(matchDirectoryName) select l.FullName).ToArray();
|
||||||
@ -215,12 +220,14 @@ internal abstract class MapLogic
|
|||||||
List<Record> results = new();
|
List<Record> results = new();
|
||||||
int? id;
|
int? id;
|
||||||
long ticks;
|
long ticks;
|
||||||
|
bool isDefault;
|
||||||
string[] files;
|
string[] files;
|
||||||
string fileName;
|
string fileName;
|
||||||
bool isNotDefault;
|
DateTime dateTime;
|
||||||
TimeSpan timeSpan;
|
TimeSpan timeSpan;
|
||||||
bool check = false;
|
bool check = false;
|
||||||
int? wholePercentages;
|
int? wholePercentages;
|
||||||
|
string checkDirectory;
|
||||||
string[] yearDirectories;
|
string[] yearDirectories;
|
||||||
string personKeyFormatted;
|
string personKeyFormatted;
|
||||||
string ticksDirectoryName;
|
string ticksDirectoryName;
|
||||||
@ -274,9 +281,12 @@ internal abstract class MapLogic
|
|||||||
personDisplayDirectoryNames = IPath.GetDirectoryNames(personNameDirectory);
|
personDisplayDirectoryNames = IPath.GetDirectoryNames(personNameDirectory);
|
||||||
if (!personDisplayDirectoryNames.Any())
|
if (!personDisplayDirectoryNames.Any())
|
||||||
continue;
|
continue;
|
||||||
if (personDisplayDirectoryNames[^1] == "Z" && personKeyFormatted.StartsWith("140"))
|
isDefault = personDisplayDirectoryNames[^1].First() == 'Z' && IPersonBirthday.IsCounterPersonYear(personKeyFormatted[..4]);
|
||||||
|
if (isDefault && personDisplayDirectoryNames[^1].Length == 1)
|
||||||
{
|
{
|
||||||
string checkDirectory = Path.Combine(yearDirectory, $"Z]{DateTime.Now.Ticks}");
|
if (personKeyFormatted.Length != configuration.PersonBirthdayFormat.Length || !DateTime.TryParseExact(personKeyFormatted, configuration.PersonBirthdayFormat, CultureInfo.InvariantCulture, DateTimeStyles.None, out dateTime))
|
||||||
|
continue;
|
||||||
|
checkDirectory = Path.Combine(yearDirectory, $"Z]{dateTime.Ticks}");
|
||||||
if (Directory.Exists(checkDirectory))
|
if (Directory.Exists(checkDirectory))
|
||||||
{
|
{
|
||||||
files = Directory.GetFiles(personNameDirectory, "*", SearchOption.TopDirectoryOnly);
|
files = Directory.GetFiles(personNameDirectory, "*", SearchOption.TopDirectoryOnly);
|
||||||
@ -284,6 +294,8 @@ internal abstract class MapLogic
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
Directory.Move(personNameDirectory, checkDirectory);
|
Directory.Move(personNameDirectory, checkDirectory);
|
||||||
|
if (!check)
|
||||||
|
check = true;
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
files = Directory.GetFiles(personNameDirectory, "*", SearchOption.TopDirectoryOnly);
|
files = Directory.GetFiles(personNameDirectory, "*", SearchOption.TopDirectoryOnly);
|
||||||
@ -293,8 +305,7 @@ internal abstract class MapLogic
|
|||||||
throw new Exception($"Move personKey directories up one from {manualCopyHumanized} and delete {manualCopyHumanized} directory!");
|
throw new Exception($"Move personKey directories up one from {manualCopyHumanized} and delete {manualCopyHumanized} directory!");
|
||||||
if (personKeyFormatted == forceSingleImageHumanized && files.Any())
|
if (personKeyFormatted == forceSingleImageHumanized && files.Any())
|
||||||
throw new Exception($"Move personKey directories up one from {forceSingleImageHumanized} and delete {forceSingleImageHumanized} directory!");
|
throw new Exception($"Move personKey directories up one from {forceSingleImageHumanized} and delete {forceSingleImageHumanized} directory!");
|
||||||
isNotDefault = personDisplayDirectoryNames[^1].First() != 'Z' || !personKeyFormatted.StartsWith("140");
|
if (!isDefault)
|
||||||
if (isNotDefault)
|
|
||||||
{
|
{
|
||||||
if (personKeyFormattedToNewestPersonKeyFormatted.Count > 0 && newestPersonKeyFormatted is null)
|
if (personKeyFormattedToNewestPersonKeyFormatted.Count > 0 && newestPersonKeyFormatted is null)
|
||||||
RenameUnknown(files);
|
RenameUnknown(files);
|
||||||
@ -308,7 +319,7 @@ internal abstract class MapLogic
|
|||||||
}
|
}
|
||||||
if (personKeyFormatted.Length != configuration.PersonBirthdayFormat.Length)
|
if (personKeyFormatted.Length != configuration.PersonBirthdayFormat.Length)
|
||||||
continue;
|
continue;
|
||||||
if (personDisplayDirectoryNames[^1].Length == 1 || !isNotDefault || !personKeyFormattedCollection.Contains(personKeyFormatted))
|
if (personDisplayDirectoryNames[^1].Length == 1 || isDefault || !personKeyFormattedCollection.Contains(personKeyFormatted))
|
||||||
personFirstInitialDirectory = personNameDirectory;
|
personFirstInitialDirectory = personNameDirectory;
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -344,7 +355,7 @@ internal abstract class MapLogic
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
distinct.Add(fileName);
|
distinct.Add(fileName);
|
||||||
results.Add(new(personKeyFormatted, personDisplayDirectoryNames, mappedFaceFile));
|
results.Add(new(personKeyFormatted, personDisplayDirectoryNames, isDefault, mappedFaceFile));
|
||||||
}
|
}
|
||||||
personNameLinkDirectories = Directory.GetDirectories(personFirstInitialDirectory, "*", SearchOption.TopDirectoryOnly);
|
personNameLinkDirectories = Directory.GetDirectories(personFirstInitialDirectory, "*", SearchOption.TopDirectoryOnly);
|
||||||
foreach (string personNameLinkDirectory in personNameLinkDirectories)
|
foreach (string personNameLinkDirectory in personNameLinkDirectories)
|
||||||
@ -479,10 +490,10 @@ internal abstract class MapLogic
|
|||||||
string message = $") {collection.Count:000} join from ticks Director(ies) - C - {totalSeconds} total second(s)";
|
string message = $") {collection.Count:000} join from ticks Director(ies) - C - {totalSeconds} total second(s)";
|
||||||
ProgressBarOptions options = new() { ProgressCharacter = '─', ProgressBarOnBottom = true, DisableBottomPercentage = true };
|
ProgressBarOptions options = new() { ProgressCharacter = '─', ProgressBarOnBottom = true, DisableBottomPercentage = true };
|
||||||
using ProgressBar progressBar = new(collection.Count, message, options);
|
using ProgressBar progressBar = new(collection.Count, message, options);
|
||||||
foreach ((string personKeyFormatted, string[] personDisplayDirectoryNames, string mappedFaceFile) in collection)
|
foreach (Record record in collection)
|
||||||
{
|
{
|
||||||
progressBar.Tick();
|
progressBar.Tick();
|
||||||
(id, wholePercentages) = IMapping.GetConverted(configuration.FacesFileNameExtension, mappedFaceFile);
|
(id, wholePercentages) = IMapping.GetConverted(configuration.FacesFileNameExtension, record.MappedFaceFile);
|
||||||
if (id is null || wholePercentages is null)
|
if (id is null || wholePercentages is null)
|
||||||
{
|
{
|
||||||
result++;
|
result++;
|
||||||
@ -493,10 +504,10 @@ internal abstract class MapLogic
|
|||||||
wholePercentagesCollection = idToWholePercentagesCollection[id.Value];
|
wholePercentagesCollection = idToWholePercentagesCollection[id.Value];
|
||||||
wholePercentagesCollection.Add(wholePercentages.Value);
|
wholePercentagesCollection.Add(wholePercentages.Value);
|
||||||
idToWholePercentagesCollection[id.Value].Add(wholePercentages.Value);
|
idToWholePercentagesCollection[id.Value].Add(wholePercentages.Value);
|
||||||
personDisplayDirectoryName = personDisplayDirectoryNames[^1];
|
personDisplayDirectoryName = record.PersonDisplayDirectoryNames[^1];
|
||||||
if (string.IsNullOrEmpty(personDisplayDirectoryName))
|
if (string.IsNullOrEmpty(personDisplayDirectoryName))
|
||||||
continue;
|
continue;
|
||||||
personKeyFormattedIdThenWholePercentagesCollection.Add(new(personKeyFormatted, personDisplayDirectoryNames, mappedFaceFile, id.Value, wholePercentages.Value));
|
personKeyFormattedIdThenWholePercentagesCollection.Add(new(record.PersonKeyFormatted, record.PersonDisplayDirectoryNames, record.IsDefault, record.MappedFaceFile, id.Value, wholePercentages.Value));
|
||||||
}
|
}
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
@ -536,7 +547,7 @@ internal abstract class MapLogic
|
|||||||
person = IPerson.GetPerson(configuration.MappingDefaultName, configuration.PersonCharacters.ToArray(), configuration.MappingDefaultName, personKey, personBirthday);
|
person = IPerson.GetPerson(configuration.MappingDefaultName, configuration.PersonCharacters.ToArray(), configuration.MappingDefaultName, personKey, personBirthday);
|
||||||
personContainer = new(approximateYears, new PersonBirthday[] { personBirthday }, personDisplayDirectoryAllFiles, configuration.MappingDefaultName, personKey, person);
|
personContainer = new(approximateYears, new PersonBirthday[] { personBirthday }, personDisplayDirectoryAllFiles, configuration.MappingDefaultName, personKey, person);
|
||||||
results.Add(personContainer);
|
results.Add(personContainer);
|
||||||
if (results.Count > 999)
|
if (results.Count > 99)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
return results;
|
return results;
|
||||||
@ -773,7 +784,7 @@ internal abstract class MapLogic
|
|||||||
(id, wholePercentages) = IMapping.GetConverted(configuration.FacesFileNameExtension, file[..^4]);
|
(id, wholePercentages) = IMapping.GetConverted(configuration.FacesFileNameExtension, file[..^4]);
|
||||||
if (id is null || wholePercentages is null)
|
if (id is null || wholePercentages is null)
|
||||||
return;
|
return;
|
||||||
if (file.EndsWith(lnk) || (!configuration.DistanceMoveUnableToMatch && !configuration.DistanceRenameToMatch))
|
if (file.EndsWith(lnk) || (!configuration.DistanceMoveUnableToMatch && !configuration.DistanceRenameToMatch) || !File.Exists(file))
|
||||||
directories = new List<MetadataExtractor.Directory>();
|
directories = new List<MetadataExtractor.Directory>();
|
||||||
else
|
else
|
||||||
directories = MetadataExtractor.ImageMetadataReader.ReadMetadata(file);
|
directories = MetadataExtractor.ImageMetadataReader.ReadMetadata(file);
|
||||||
@ -1023,16 +1034,16 @@ internal abstract class MapLogic
|
|||||||
return (result, saveContainer);
|
return (result, saveContainer);
|
||||||
}
|
}
|
||||||
|
|
||||||
internal static (SaveContainer, SaveContainer) GetContainers(string facesFileNameExtension, string facePartsFileNameExtension, string directory, FileHolder faceFileHolder, string facePartsContentCollectionFile, Mapping mapping)
|
internal static (SaveContainer, SaveContainer?) GetContainers(string facesFileNameExtension, string facePartsFileNameExtension, string directory, FileHolder faceFileHolder, FileHolder facePartsFileHolder, Mapping mapping)
|
||||||
{
|
{
|
||||||
string checkFile;
|
string checkFile;
|
||||||
SaveContainer result;
|
SaveContainer? saveContainer;
|
||||||
if (mapping.MappingFromLocation is null)
|
if (mapping.MappingFromLocation is null)
|
||||||
throw new NullReferenceException(nameof(mapping.MappingFromLocation));
|
throw new NullReferenceException(nameof(mapping.MappingFromLocation));
|
||||||
checkFile = Path.Combine(directory, $"{mapping.MappingFromItem.ImageFileHolder.Name}{facePartsFileNameExtension}");
|
checkFile = Path.Combine(directory, $"{mapping.MappingFromItem.ImageFileHolder.Name}{facePartsFileNameExtension}");
|
||||||
result = new(checkFile, directory, new(facePartsContentCollectionFile));
|
saveContainer = !facePartsFileHolder.Exists ? null : new(checkFile, directory, facePartsFileHolder);
|
||||||
checkFile = Path.Combine(directory, $"{mapping.MappingFromLocation.DeterministicHashCodeKey}{mapping.MappingFromItem.ImageFileHolder.ExtensionLowered}{facesFileNameExtension}");
|
checkFile = Path.Combine(directory, $"{mapping.MappingFromLocation.DeterministicHashCodeKey}{mapping.MappingFromItem.ImageFileHolder.ExtensionLowered}{facesFileNameExtension}");
|
||||||
return (result, new(checkFile, directory, faceFileHolder));
|
return (new(checkFile, directory, faceFileHolder), saveContainer);
|
||||||
}
|
}
|
||||||
|
|
||||||
private static IEnumerable<(string, string)> GetCollection(string[] yearDirectories)
|
private static IEnumerable<(string, string)> GetCollection(string[] yearDirectories)
|
||||||
|
@ -4,6 +4,7 @@ using Serilog;
|
|||||||
using ShellProgressBar;
|
using ShellProgressBar;
|
||||||
using System.Drawing;
|
using System.Drawing;
|
||||||
using System.Drawing.Imaging;
|
using System.Drawing.Imaging;
|
||||||
|
using System.Globalization;
|
||||||
using System.Reflection;
|
using System.Reflection;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
using View_by_Distance.Offset.Date.Time.Original.Models;
|
using View_by_Distance.Offset.Date.Time.Original.Models;
|
||||||
@ -198,8 +199,8 @@ public class OffsetDateTimeOriginal
|
|||||||
bool targetIsValidImageFormatExtension = _PropertyConfiguration.ValidImageFormatExtensions.Contains(targetFileHolder.ExtensionLowered);
|
bool targetIsValidImageFormatExtension = _PropertyConfiguration.ValidImageFormatExtensions.Contains(targetFileHolder.ExtensionLowered);
|
||||||
badIsIgnoreExtension = badIsValidImageFormatExtension && _PropertyConfiguration.IgnoreExtensions.Contains(badFileHolder.ExtensionLowered);
|
badIsIgnoreExtension = badIsValidImageFormatExtension && _PropertyConfiguration.IgnoreExtensions.Contains(badFileHolder.ExtensionLowered);
|
||||||
targetIsIgnoreExtension = targetIsValidImageFormatExtension && _PropertyConfiguration.IgnoreExtensions.Contains(targetFileHolder.ExtensionLowered);
|
targetIsIgnoreExtension = targetIsValidImageFormatExtension && _PropertyConfiguration.IgnoreExtensions.Contains(targetFileHolder.ExtensionLowered);
|
||||||
DateTime minimumDateTime = DateTime.ParseExact(Path.GetFileName(minimumDirectory.First()), format, null, System.Globalization.DateTimeStyles.None);
|
DateTime minimumDateTime = DateTime.ParseExact(Path.GetFileName(minimumDirectory.First()), format, CultureInfo.InvariantCulture, DateTimeStyles.None);
|
||||||
DateTime maximumDateTime = DateTime.ParseExact(Path.GetFileName(maximumDirectory.First()), format, null, System.Globalization.DateTimeStyles.None).AddHours(23);
|
DateTime maximumDateTime = DateTime.ParseExact(Path.GetFileName(maximumDirectory.First()), format, CultureInfo.InvariantCulture, DateTimeStyles.None).AddHours(23);
|
||||||
(badDateTimeOriginal, badDateTimes, badId, badMessage) = Property.Models.Stateless.IProperty.Get(_PropertyConfiguration.PopulatePropertyId, badFileHolder, badIsIgnoreExtension, badIsValidImageFormatExtension, asciiEncoding);
|
(badDateTimeOriginal, badDateTimes, badId, badMessage) = Property.Models.Stateless.IProperty.Get(_PropertyConfiguration.PopulatePropertyId, badFileHolder, badIsIgnoreExtension, badIsValidImageFormatExtension, asciiEncoding);
|
||||||
if (badMessage is not null)
|
if (badMessage is not null)
|
||||||
throw new Exception(badMessage);
|
throw new Exception(badMessage);
|
||||||
|
@ -13,6 +13,18 @@ public interface IPersonBirthday
|
|||||||
|
|
||||||
// ...
|
// ...
|
||||||
|
|
||||||
|
static bool IsCounterPersonBirthday(Models.PersonBirthday personBirthday) =>
|
||||||
|
personBirthday.Value.Year < 1809;
|
||||||
|
|
||||||
|
static bool IsCounterPersonYear(int year) =>
|
||||||
|
year < 1809;
|
||||||
|
|
||||||
|
static bool IsCounterPersonYear(string year) =>
|
||||||
|
new string[] { year, "1809" }.Min() == year;
|
||||||
|
|
||||||
|
static bool IsWrongYearFilterOrCounterPersonBirthday(bool? isWrongYear, Models.PersonBirthday personBirthday) =>
|
||||||
|
isWrongYear is null || isWrongYear.Value || IsCounterPersonBirthday(personBirthday);
|
||||||
|
|
||||||
string TestStatic_GetDateTime(string personKeyFormatted) =>
|
string TestStatic_GetDateTime(string personKeyFormatted) =>
|
||||||
GetDateTime(personKeyFormatted);
|
GetDateTime(personKeyFormatted);
|
||||||
static string GetDateTime(string personKeyFormatted) =>
|
static string GetDateTime(string personKeyFormatted) =>
|
||||||
@ -68,11 +80,6 @@ public interface IPersonBirthday
|
|||||||
static string GetFormatted(string personBirthdayFormat, long personKey) =>
|
static string GetFormatted(string personBirthdayFormat, long personKey) =>
|
||||||
GetFormatted(personBirthdayFormat, GetPersonBirthday(personKey));
|
GetFormatted(personBirthdayFormat, GetPersonBirthday(personKey));
|
||||||
|
|
||||||
bool TestStatic_IsCounterPersonBirthday(Models.PersonBirthday personBirthday) =>
|
|
||||||
IsCounterPersonBirthday(personBirthday);
|
|
||||||
static bool IsCounterPersonBirthday(Models.PersonBirthday personBirthday) =>
|
|
||||||
PersonBirthday.IsCounterPersonBirthday(personBirthday);
|
|
||||||
|
|
||||||
Models.PersonBirthday TestStatic_GetNextBirthDate(Properties.IStorage storage) =>
|
Models.PersonBirthday TestStatic_GetNextBirthDate(Properties.IStorage storage) =>
|
||||||
GetNextBirthDate(storage);
|
GetNextBirthDate(storage);
|
||||||
static Models.PersonBirthday GetNextBirthDate(Properties.IStorage storage) =>
|
static Models.PersonBirthday GetNextBirthDate(Properties.IStorage storage) =>
|
||||||
@ -103,11 +110,6 @@ public interface IPersonBirthday
|
|||||||
static TimeSpan? GetTimeSpan(DateTime minimumDateTime, bool? isWrongYear, Models.PersonBirthday personBirthday) =>
|
static TimeSpan? GetTimeSpan(DateTime minimumDateTime, bool? isWrongYear, Models.PersonBirthday personBirthday) =>
|
||||||
PersonBirthday.GetTimeSpan(minimumDateTime, isWrongYear, personBirthday);
|
PersonBirthday.GetTimeSpan(minimumDateTime, isWrongYear, personBirthday);
|
||||||
|
|
||||||
bool TestStatic_IsWrongYearFilterOrCounterPersonBirthday(bool? isWrongYear, Models.PersonBirthday personBirthday) =>
|
|
||||||
IsWrongYearFilterOrCounterPersonBirthday(isWrongYear, personBirthday);
|
|
||||||
static bool IsWrongYearFilterOrCounterPersonBirthday(bool? isWrongYear, Models.PersonBirthday personBirthday) =>
|
|
||||||
PersonBirthday.IsWrongYearFilterOrCounterPersonBirthday(isWrongYear, personBirthday);
|
|
||||||
|
|
||||||
string TestStatic_GetFileFullName(Properties.IStorage storage, string personBirthdayFormat, Models.PersonBirthday personBirthday) =>
|
string TestStatic_GetFileFullName(Properties.IStorage storage, string personBirthdayFormat, Models.PersonBirthday personBirthday) =>
|
||||||
GetFileFullName(storage, personBirthdayFormat, personBirthday);
|
GetFileFullName(storage, personBirthdayFormat, personBirthday);
|
||||||
static string GetFileFullName(Properties.IStorage storage, string personBirthdayFormat, Models.PersonBirthday personBirthday) =>
|
static string GetFileFullName(Properties.IStorage storage, string personBirthdayFormat, Models.PersonBirthday personBirthday) =>
|
||||||
|
@ -24,30 +24,10 @@ internal abstract class PersonBirthday
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
internal static bool IsCounterPersonBirthday(Models.PersonBirthday personBirthday)
|
|
||||||
{
|
|
||||||
bool result;
|
|
||||||
if (personBirthday.Value.Year < 1809)
|
|
||||||
result = true;
|
|
||||||
else
|
|
||||||
result = false;
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
|
|
||||||
internal static bool IsWrongYearFilterOrCounterPersonBirthday(bool? isWrongYear, Models.PersonBirthday personBirthday)
|
|
||||||
{
|
|
||||||
bool result;
|
|
||||||
if (isWrongYear is null || isWrongYear.Value || IsCounterPersonBirthday(personBirthday))
|
|
||||||
result = true;
|
|
||||||
else
|
|
||||||
result = false;
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
|
|
||||||
internal static TimeSpan? GetTimeSpan(long minimumDateTimeTicks, bool? isWrongYear, Models.PersonBirthday personBirthday)
|
internal static TimeSpan? GetTimeSpan(long minimumDateTimeTicks, bool? isWrongYear, Models.PersonBirthday personBirthday)
|
||||||
{
|
{
|
||||||
TimeSpan? timeSpan;
|
TimeSpan? timeSpan;
|
||||||
bool isWrongYearFilterOrCounterPersonBirthday = IsWrongYearFilterOrCounterPersonBirthday(isWrongYear, personBirthday);
|
bool isWrongYearFilterOrCounterPersonBirthday = IPersonBirthday.IsWrongYearFilterOrCounterPersonBirthday(isWrongYear, personBirthday);
|
||||||
if (isWrongYearFilterOrCounterPersonBirthday)
|
if (isWrongYearFilterOrCounterPersonBirthday)
|
||||||
timeSpan = null;
|
timeSpan = null;
|
||||||
else
|
else
|
||||||
|
Loading…
x
Reference in New Issue
Block a user