64 lines
3.2 KiB
C#
64 lines
3.2 KiB
C#
using System.IO;
|
|
|
|
namespace Shared;
|
|
|
|
public class FilePathGeneratorInfo
|
|
{
|
|
|
|
public string To { get; protected set; }
|
|
public string From { get; protected set; }
|
|
public bool IsErrorFile { get; protected set; }
|
|
public string SubFolderPath { get; protected set; }
|
|
public string FirstDirectory { get; protected set; }
|
|
public string ReportFullPath { get; protected set; }
|
|
public string ResolvedFileLocation { get; protected set; }
|
|
|
|
public FilePathGeneratorInfo(object originalFilePathGenerator, string reportFullPath, bool isErrorFile, System.Collections.Generic.Dictionary<string, string> fileParameter)
|
|
{
|
|
ReportFullPath = reportFullPath;
|
|
IsErrorFile = isErrorFile;
|
|
if (originalFilePathGenerator is null || originalFilePathGenerator is not FilePathGenerator original)
|
|
{
|
|
FirstDirectory = string.Empty;
|
|
ResolvedFileLocation = string.Empty;
|
|
To = string.Empty;
|
|
From = string.Empty;
|
|
}
|
|
else
|
|
{
|
|
string directorySeparatorChar = Path.DirectorySeparatorChar.ToString();
|
|
FilePathGenerator filePathGenerator = new(original.FileConnectorConfiguration, reportFullPath, isErrorFile);
|
|
SubFolderPath = filePathGenerator.GetSubFolderPath();
|
|
if (string.IsNullOrEmpty(SubFolderPath))
|
|
FirstDirectory = SubFolderPath;
|
|
else
|
|
FirstDirectory = SubFolderPath.Split(Path.DirectorySeparatorChar)[0];
|
|
ResolvedFileLocation = filePathGenerator.GetTargetFolder();
|
|
if (string.IsNullOrEmpty(ResolvedFileLocation) && string.IsNullOrEmpty(SubFolderPath))
|
|
To = string.Empty;
|
|
else if (string.IsNullOrEmpty(SubFolderPath))
|
|
To = ResolvedFileLocation;
|
|
else
|
|
To = string.Concat(ResolvedFileLocation.Replace(SubFolderPath, string.Empty), Path.DirectorySeparatorChar, FirstDirectory);
|
|
#if (true)
|
|
if (string.IsNullOrEmpty(original.FileConnectorConfiguration.DefaultPlaceHolderValue))
|
|
original.FileConnectorConfiguration.DefaultPlaceHolderValue = "NA";
|
|
if (fileParameter is not null && fileParameter.Count == 1 && To.Contains(original.FileConnectorConfiguration.DefaultPlaceHolderValue))
|
|
{
|
|
foreach (System.Collections.Generic.KeyValuePair<string, string> keyValuePair in fileParameter)
|
|
To = To.Replace(string.Concat(original.FileConnectorConfiguration.DefaultPlaceHolderValue), keyValuePair.Value);
|
|
}
|
|
#endif
|
|
if (original.FileConnectorConfiguration.SourceFileLocation.EndsWith(directorySeparatorChar))
|
|
From = string.Concat(original.FileConnectorConfiguration.SourceFileLocation, FirstDirectory);
|
|
else
|
|
From = string.Concat(original.FileConnectorConfiguration.SourceFileLocation, Path.DirectorySeparatorChar, FirstDirectory);
|
|
if (From.EndsWith(directorySeparatorChar) && !To.EndsWith(directorySeparatorChar))
|
|
To = string.Concat(To, Path.DirectorySeparatorChar);
|
|
else if (To.EndsWith(directorySeparatorChar) && !From.EndsWith(directorySeparatorChar))
|
|
To = To.Remove(To.Length - 1, 1);
|
|
}
|
|
}
|
|
|
|
}
|