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 directoryName;
string topDirectoryName;
DateTime minimumDateTime;
string[]? matches = null;
string[] directorySegments;
DateTime? minimumDateTime = null;
List<string> destinationCollection;
List<string> directoryNames = new();
List<string> topDirectorySegments = new();
@ -260,9 +260,12 @@ public class DateGroup
directoryNames.Clear();
destinationCollection = new();
_ = destinationDirectoryName.Clear();
if (item.ImageFileHolder.LastWriteTime is not null && item.Property is null)
minimumDateTime = item.ImageFileHolder.LastWriteTime.Value;
else
minimumDateTime = Shared.Models.Stateless.Methods.IProperty.GetMinimumDateTime(item.Property);
day = minimumDateTime.Value.ToString("MM-dd");
month = minimumDateTime.Value.ToString("MMMM");
day = minimumDateTime.ToString("MM-dd");
month = minimumDateTime.ToString("MMMM");
if (item.Property?.Id is null)
{
flag = '#';
@ -277,19 +280,19 @@ public class DateGroup
flag = '~';
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 = '^';
else
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())
seasonValue = string.Empty;
else
seasonValue = $".{season}";
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)
year = "----";
else
@ -300,7 +303,7 @@ public class DateGroup
year = $"{flag}{matches[0][1..].Split('.')[0]}{seasonValue}";
}
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)
directoryNames.Add($"{year} {seasonName}");
else if (_Configuration.BySeason && topDirectoryName.Length == 1 && topDirectoryName[0] == '_')
@ -349,9 +352,9 @@ public class DateGroup
if (item.ImageFileHolder.LastWriteTime is null)
continue;
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
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;
}

View File

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