50 lines
2.3 KiB
C#
50 lines
2.3 KiB
C#
using View_by_Distance.Shared.Models;
|
|
using View_by_Distance.Shared.Models.Stateless.Methods;
|
|
|
|
namespace View_by_Distance.Map.Models.Stateless;
|
|
|
|
internal abstract class LookForAbandonedLogic
|
|
{
|
|
|
|
internal static void LookForAbandoned(Property.Models.Configuration propertyConfiguration, List<string> distinctFilteredFileNameFirstSegments, string directory, string directoryName)
|
|
{
|
|
FilePath filePath;
|
|
FileHolder fileHolder;
|
|
string fileNameFirstSegment;
|
|
List<string> renameCollection = [];
|
|
string[] files = Directory.GetFiles(directory, "*", SearchOption.AllDirectories);
|
|
foreach (string file in files)
|
|
{
|
|
fileHolder = IFileHolder.Get(file);
|
|
filePath = FilePath.Get(propertyConfiguration, fileHolder, index: null);
|
|
fileNameFirstSegment = fileHolder.NameWithoutExtension.Split('.')[0];
|
|
if (!filePath.IsIntelligentIdFormat && filePath.SortOrder is null)
|
|
continue;
|
|
if (distinctFilteredFileNameFirstSegments.Contains(fileNameFirstSegment))
|
|
continue;
|
|
renameCollection.Add(file);
|
|
}
|
|
if (renameCollection.Count > 0)
|
|
{
|
|
if (directoryName.Length == 2)
|
|
IDirectory.MoveFiles(renameCollection, directoryName, $"{directoryName[0]}abd{directoryName[^1]}");
|
|
else if (directoryName.Length == 4)
|
|
IDirectory.MoveFiles(renameCollection, directoryName, $"{directoryName[..2]}abd{directoryName[^2..]}");
|
|
else
|
|
throw new NotSupportedException();
|
|
}
|
|
}
|
|
|
|
internal static void LookForAbandoned(Property.Models.Configuration propertyConfiguration, string bResultsFullGroupDirectory, List<string> distinctFilteredFileNameFirstSegments)
|
|
{
|
|
string[] directories = Directory.GetDirectories(bResultsFullGroupDirectory, "*", SearchOption.TopDirectoryOnly);
|
|
foreach (string directory in directories)
|
|
{
|
|
string? directoryName = Path.GetFileName(directory);
|
|
if (string.IsNullOrEmpty(directoryName) || (directoryName.Length != 2 && directoryName.Length != 4))
|
|
continue;
|
|
LookForAbandoned(propertyConfiguration, distinctFilteredFileNameFirstSegments, directory, directoryName);
|
|
}
|
|
}
|
|
|
|
} |