Date Group without Populate Property Id and

Path Root check
This commit is contained in:
Mike Phares 2022-12-26 10:50:04 -07:00
parent 1961999e8b
commit d08cffe50d
2 changed files with 14 additions and 11 deletions

View File

@ -216,9 +216,9 @@ public class DateGroup
string seasonValue; string seasonValue;
string directoryName; string directoryName;
string topDirectoryName; string topDirectoryName;
DateTime minimumDateTime;
string[]? matches = null; string[]? matches = null;
string[] directorySegments; string[] directorySegments;
DateTime? minimumDateTime = null;
List<string> destinationCollection; List<string> destinationCollection;
List<string> directoryNames = new(); List<string> directoryNames = new();
List<string> topDirectorySegments = new(); List<string> topDirectorySegments = new();
@ -260,9 +260,12 @@ public class DateGroup
directoryNames.Clear(); directoryNames.Clear();
destinationCollection = new(); destinationCollection = new();
_ = destinationDirectoryName.Clear(); _ = destinationDirectoryName.Clear();
minimumDateTime = Shared.Models.Stateless.Methods.IProperty.GetMinimumDateTime(item.Property); if (item.ImageFileHolder.LastWriteTime is not null && item.Property is null)
day = minimumDateTime.Value.ToString("MM-dd"); minimumDateTime = item.ImageFileHolder.LastWriteTime.Value;
month = minimumDateTime.Value.ToString("MMMM"); else
minimumDateTime = Shared.Models.Stateless.Methods.IProperty.GetMinimumDateTime(item.Property);
day = minimumDateTime.ToString("MM-dd");
month = minimumDateTime.ToString("MMMM");
if (item.Property?.Id is null) if (item.Property?.Id is null)
{ {
flag = '#'; flag = '#';
@ -277,19 +280,19 @@ public class DateGroup
flag = '~'; flag = '~';
else else
{ {
if (item.Property.DateTimeOriginal.HasValue && minimumDateTime.Value.DayOfYear != item.Property.DateTimeOriginal.Value.DayOfYear && Math.Abs(new TimeSpan(minimumDateTime.Value.Ticks - item.Property.DateTimeOriginal.Value.Ticks).TotalHours) > 8) if (item.Property.DateTimeOriginal.HasValue && minimumDateTime.DayOfYear != item.Property.DateTimeOriginal.Value.DayOfYear && Math.Abs(new TimeSpan(minimumDateTime.Ticks - item.Property.DateTimeOriginal.Value.Ticks).TotalHours) > 8)
flag = '^'; flag = '^';
else else
flag = '='; flag = '=';
} }
} }
(season, seasonName) = Shared.Models.Stateless.Methods.IProperty.GetSeason(minimumDateTime.Value.DayOfYear); (season, seasonName) = Shared.Models.Stateless.Methods.IProperty.GetSeason(minimumDateTime.DayOfYear);
if ((from l in topDirectorySegments where l == "Christmas" select true).Any()) if ((from l in topDirectorySegments where l == "Christmas" select true).Any())
seasonValue = string.Empty; seasonValue = string.Empty;
else else
seasonValue = $".{season}"; seasonValue = $".{season}";
if (isWrongYear is null || !isWrongYear.Value) if (isWrongYear is null || !isWrongYear.Value)
year = $"{flag}{minimumDateTime.Value:yyyy}{seasonValue}"; year = $"{flag}{minimumDateTime:yyyy}{seasonValue}";
else if (matches is null || matches.Length < 3) else if (matches is null || matches.Length < 3)
year = "----"; year = "----";
else else
@ -300,7 +303,7 @@ public class DateGroup
year = $"{flag}{matches[0][1..].Split('.')[0]}{seasonValue}"; year = $"{flag}{matches[0][1..].Split('.')[0]}{seasonValue}";
} }
topDirectoryName = Path.GetFileName(topDirectory); topDirectoryName = Path.GetFileName(topDirectory);
weekOfYear = calendar.GetWeekOfYear(minimumDateTime.Value, CalendarWeekRule.FirstDay, DayOfWeek.Sunday).ToString("00"); weekOfYear = calendar.GetWeekOfYear(minimumDateTime, CalendarWeekRule.FirstDay, DayOfWeek.Sunday).ToString("00");
if (_Configuration.ByHash) if (_Configuration.ByHash)
directoryNames.Add($"{year} {seasonName}"); directoryNames.Add($"{year} {seasonName}");
else if (_Configuration.BySeason && topDirectoryName.Length == 1 && topDirectoryName[0] == '_') else if (_Configuration.BySeason && topDirectoryName.Length == 1 && topDirectoryName[0] == '_')
@ -349,9 +352,9 @@ public class DateGroup
if (item.ImageFileHolder.LastWriteTime is null) if (item.ImageFileHolder.LastWriteTime is null)
continue; continue;
if (item.Property is not null) if (item.Property is not null)
results.Add(new(item, item.Property.LastWriteTime.Ticks, minimumDateTime.Value.Ticks, destinationCollection.ToArray())); results.Add(new(item, item.Property.LastWriteTime.Ticks, minimumDateTime.Ticks, destinationCollection.ToArray()));
else else
results.Add(new(item, item.ImageFileHolder.LastWriteTime.Value.Ticks, minimumDateTime.Value.Ticks, destinationCollection.ToArray())); results.Add(new(item, item.ImageFileHolder.LastWriteTime.Value.Ticks, minimumDateTime.Ticks, destinationCollection.ToArray()));
} }
return results; return results;
} }

View File

@ -453,7 +453,7 @@ public partial class Form : System.Windows.Forms.Form
{ {
RenameFilesInDirectories(directories); RenameFilesInDirectories(directories);
string? parentDirectory = Path.GetDirectoryName(directories[0]); string? parentDirectory = Path.GetDirectoryName(directories[0]);
if (parentDirectory is not null) if (parentDirectory is not null && parentDirectory != Path.GetPathRoot(directories[0]))
_ = IPath.DeleteEmptyDirectories(parentDirectory); _ = IPath.DeleteEmptyDirectories(parentDirectory);
} }
} }