Moved to ADO2024 PI#
Ran SortCodeMethods
This commit is contained in:
93
ADO2024/PI3/Helper-2024-08-05.cs
Normal file
93
ADO2024/PI3/Helper-2024-08-05.cs
Normal file
@ -0,0 +1,93 @@
|
||||
using Microsoft.Extensions.Logging;
|
||||
|
||||
namespace File_Folder_Helper.ADO2024.PI3;
|
||||
|
||||
internal static partial class Helper20240805
|
||||
{
|
||||
|
||||
private static void RenameFiles(string find, string replace, string[] ignoreFileNames, string[] confFiles)
|
||||
{
|
||||
string checkFile;
|
||||
foreach (string confFile in confFiles)
|
||||
{
|
||||
if (ignoreFileNames.Contains(confFile))
|
||||
continue;
|
||||
checkFile = confFile.Replace(find, replace);
|
||||
if (File.Exists(checkFile))
|
||||
continue;
|
||||
File.Move(confFile, checkFile);
|
||||
}
|
||||
}
|
||||
|
||||
private static void RenameFiles(ILogger<Worker> logger, string sourceDirectory, string[] files, string[] lines, string globalSettingsFile)
|
||||
{
|
||||
string to;
|
||||
string old;
|
||||
string from;
|
||||
string what;
|
||||
string concat;
|
||||
string checkFile;
|
||||
string extension;
|
||||
string[] matches;
|
||||
string[] segments;
|
||||
string environment;
|
||||
List<string> distinct = [];
|
||||
string globalSettingsLines = File.ReadAllText(globalSettingsFile);
|
||||
foreach (string line in lines)
|
||||
{
|
||||
segments = line.Split('|');
|
||||
if (segments.Length != 7)
|
||||
{
|
||||
logger.LogWarning("Wrong length!");
|
||||
continue;
|
||||
}
|
||||
to = segments[5].Trim();
|
||||
old = segments[1].Trim();
|
||||
from = segments[4].Trim();
|
||||
what = segments[3].Trim();
|
||||
environment = segments[2].Trim();
|
||||
concat = string.Concat(environment, '-', what, '-', from, '-', to);
|
||||
if (distinct.Contains(concat))
|
||||
{
|
||||
logger.LogWarning("Not distinct <{concat}>!", concat);
|
||||
continue;
|
||||
}
|
||||
distinct.Add(concat);
|
||||
globalSettingsLines = globalSettingsLines.Replace(old, concat);
|
||||
matches = (from l in files where l.Contains(old) select l).ToArray();
|
||||
if (matches.Length != 1)
|
||||
{
|
||||
logger.LogWarning("matches == {matchesLength} <{concat}>!", matches.Length, concat);
|
||||
continue;
|
||||
}
|
||||
extension = Path.GetExtension(matches[0]);
|
||||
checkFile = Path.Combine(sourceDirectory, $"{concat}{extension}");
|
||||
File.Move(matches[0], checkFile);
|
||||
}
|
||||
File.WriteAllText(globalSettingsFile, globalSettingsLines);
|
||||
}
|
||||
|
||||
internal static void RenameFiles(ILogger<Worker> logger, List<string> args)
|
||||
{
|
||||
string find = args[6];
|
||||
string replace = args[7];
|
||||
string sourceDirectory = Path.GetFullPath(args[0]);
|
||||
string globalSettingsFile = Path.GetFullPath(args[4]);
|
||||
string[] files = Directory.GetFiles(sourceDirectory, args[2], SearchOption.TopDirectoryOnly);
|
||||
string[] confFiles = Directory.GetFiles(sourceDirectory, $"*{find}", SearchOption.TopDirectoryOnly);
|
||||
string[] ignoreFileNames = args[8].Split(',').Select(l => Path.Combine(sourceDirectory, l)).ToArray();
|
||||
RenameFiles(find, replace, ignoreFileNames, confFiles);
|
||||
string checkFile = Path.Combine(sourceDirectory, args[3]);
|
||||
if (files.Length == 0 || !File.Exists(checkFile))
|
||||
logger.LogWarning("No found!");
|
||||
else
|
||||
{
|
||||
string[] lines = File.ReadAllLines(checkFile);
|
||||
if (lines.Length == 0)
|
||||
logger.LogWarning("No lines!");
|
||||
else
|
||||
RenameFiles(logger, sourceDirectory, files, lines, globalSettingsFile);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
Reference in New Issue
Block a user