created-date-offset (Day-Helper-2025-08-03)
P and J drives Tasks json file inputs IDE0005 none
This commit is contained in:
@ -1,13 +1,10 @@
|
||||
|
||||
using Microsoft.Extensions.Logging;
|
||||
using Phares.Shared.Models;
|
||||
using Phares.Shared.Models.Stateless;
|
||||
using System.Collections.ObjectModel;
|
||||
using System.Text.Json;
|
||||
using System.Text.Json.Serialization;
|
||||
|
||||
using Microsoft.Extensions.Logging;
|
||||
|
||||
using Phares.Shared.Models;
|
||||
using Phares.Shared.Models.Stateless;
|
||||
|
||||
namespace File_Folder_Helper.ADO2025.PI6;
|
||||
|
||||
internal static partial class Helper20250726 {
|
||||
@ -27,23 +24,36 @@ internal static partial class Helper20250726 {
|
||||
logger.LogInformation(args[2]);
|
||||
logger.LogInformation(args[3]);
|
||||
logger.LogInformation(args[4]);
|
||||
string searchPattern = args[3];
|
||||
string jsonFile = Path.GetFullPath(args[2]);
|
||||
logger.LogInformation(args[5]);
|
||||
string[] files;
|
||||
string[] searchPatterns = args[4].Split('~');
|
||||
string jsonFile = Path.GetFullPath(args[3]);
|
||||
if (!File.Exists(jsonFile)) {
|
||||
throw new Exception($"json file doesn't exist! <{jsonFile}>");
|
||||
}
|
||||
ReadOnlyCollection<Record> records;
|
||||
string json = File.ReadAllText(jsonFile);
|
||||
ReadOnlyDictionary<byte, ReadOnlyCollection<string>> keyValues;
|
||||
string sourceDirectory = Path.GetFullPath(args[0].Split('~')[0]);
|
||||
string destinationDirectory = Path.GetFullPath(args[4].Split('~')[0]);
|
||||
string destinationDirectory = Path.GetFullPath(args[5].Split('~')[0]);
|
||||
long maxSize = long.Parse(args[2], System.Globalization.NumberStyles.Float);
|
||||
ReadOnlyDictionary<int, ReadOnlyDictionary<byte, ReadOnlyCollection<string>>> keyValuePairs;
|
||||
Helper20250726Settings? settings = JsonSerializer.Deserialize(json, Helper20250726SettingsSourceGenerationContext.Default.Helper20250726Settings);
|
||||
if (settings?.ResultSettings is null || settings.ResultSettings.ResultAllInOneSubdirectoryLength < 1 || settings.MetadataSettings is null) {
|
||||
throw new Exception(nameof(Helper20250726Settings));
|
||||
}
|
||||
string[] files = Directory.GetFiles(sourceDirectory, searchPattern, SearchOption.AllDirectories);
|
||||
ReadOnlyDictionary<int, ReadOnlyDictionary<byte, ReadOnlyCollection<string>>> keyValuePairs = GetKeyValuePairs(destinationDirectory, settings.ResultSettings);
|
||||
ReadOnlyCollection<Record> records = GetRecords(logger, settings.ResultSettings, settings.MetadataSettings, files);
|
||||
ReadOnlyDictionary<byte, ReadOnlyCollection<string>> keyValues = keyValuePairs.ElementAt(0).Value;
|
||||
CopyToCombinedEnumAndIndexFormat(logger, records, keyValues);
|
||||
foreach (string searchPattern in searchPatterns) {
|
||||
files = Directory.GetFiles(sourceDirectory, $"*{searchPattern}", SearchOption.AllDirectories);
|
||||
if (files.Length == 0) {
|
||||
logger.LogInformation($"Didn't find any {searchPattern} files");
|
||||
continue;
|
||||
}
|
||||
logger.LogInformation($"Found {files.Length} {searchPattern} files");
|
||||
keyValuePairs = GetKeyValuePairs(destinationDirectory, settings.ResultSettings);
|
||||
records = GetRecords(logger, settings.ResultSettings, settings.MetadataSettings, files);
|
||||
keyValues = keyValuePairs.ElementAt(0).Value;
|
||||
CopyToCombinedEnumAndIndexFormat(logger, maxSize, records, keyValues);
|
||||
}
|
||||
Helpers.HelperDeleteEmptyDirectories.DeleteEmptyDirectories(logger, destinationDirectory);
|
||||
}
|
||||
|
||||
@ -84,11 +94,15 @@ internal static partial class Helper20250726 {
|
||||
return results.AsReadOnly();
|
||||
}
|
||||
|
||||
private static void CopyToCombinedEnumAndIndexFormat(ILogger<Worker> logger, ReadOnlyCollection<Record> records, ReadOnlyDictionary<byte, ReadOnlyCollection<string>> keyValuePairs) {
|
||||
private static void CopyToCombinedEnumAndIndexFormat(ILogger<Worker> logger, long maxSize, ReadOnlyCollection<Record> records, ReadOnlyDictionary<byte, ReadOnlyCollection<string>> keyValuePairs) {
|
||||
string checkFile;
|
||||
FileInfo fileInfo;
|
||||
FileAttributes fileAttributes;
|
||||
foreach (Record record in records) {
|
||||
if (record.FilePath.Length > maxSize) {
|
||||
logger.LogWarning("<{file}> skipped because it is over {size}!", record.FilePath.Name, maxSize);
|
||||
continue;
|
||||
}
|
||||
checkFile = Path.Combine(keyValuePairs[record.CombinedEnumAndIndex.Enum][record.CombinedEnumAndIndex.Index], record.FilePath.Name);
|
||||
if (File.Exists(checkFile)) {
|
||||
logger.LogWarning("<{file}> skipped because it already exists!", record.FilePath.Name);
|
||||
|
Reference in New Issue
Block a user