Added ISO
This commit is contained in:
parent
38340090be
commit
c831ad2ab9
4
.vscode/.UserSecrets/file-watcher.json
vendored
4
.vscode/.UserSecrets/file-watcher.json
vendored
@ -32,6 +32,10 @@
|
|||||||
"TNSX": "(description=(address_list=(address=(protocol=tcp)(host=fimesp-db.mes.infineon.com)(port=7002)))(connect_data=(sid=fimesp)))",
|
"TNSX": "(description=(address_list=(address=(protocol=tcp)(host=fimesp-db.mes.infineon.com)(port=7002)))(connect_data=(sid=fimesp)))",
|
||||||
"UserName": "edastag"
|
"UserName": "edastag"
|
||||||
},
|
},
|
||||||
|
"IsoConfiguration": {
|
||||||
|
"DestinationDirectory": "D:/EAF/drssdv702.eu.infineon.com-eafdev-DeliveredPackages-IFX.EAF Kernel SEMI/v2.57.0.0",
|
||||||
|
"SourceDirectory": "\\\\eafdev.drs.infineon.com\\eafdev\\DeliveredPackages\\IFX.EAF Kernel SEMI\\v2.57.0.0\\EAF v2.57.0.0 API\\complete_with_adaptations"
|
||||||
|
},
|
||||||
"MetrologyConfiguration": {
|
"MetrologyConfiguration": {
|
||||||
"DeleteOlderThanWeeks": 16,
|
"DeleteOlderThanWeeks": 16,
|
||||||
"DirectoriesBack": 2,
|
"DirectoriesBack": 2,
|
||||||
|
@ -10,13 +10,14 @@
|
|||||||
<UserSecretsId>6062c774-99a9-4f4a-b42d-a9cb7fcbd8be</UserSecretsId>
|
<UserSecretsId>6062c774-99a9-4f4a-b42d-a9cb7fcbd8be</UserSecretsId>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<PackageReference Include="Microsoft.AspNetCore.Components.WebAssembly.Server" Version="8.0.7" />
|
<PackageReference Include="DiscUtils.Iso9660" Version="0.16.13" />
|
||||||
|
<PackageReference Include="Microsoft.AspNetCore.Components.WebAssembly.Server" Version="8.0.8" />
|
||||||
<PackageReference Include="Microsoft.Extensions.Configuration.UserSecrets" Version="8.0.0" />
|
<PackageReference Include="Microsoft.Extensions.Configuration.UserSecrets" Version="8.0.0" />
|
||||||
<PackageReference Include="Microsoft.Extensions.Hosting.WindowsServices" Version="8.0.0" />
|
<PackageReference Include="Microsoft.Extensions.Hosting.WindowsServices" Version="8.0.0" />
|
||||||
<PackageReference Include="Microsoft.Extensions.Hosting" Version="8.0.0" />
|
<PackageReference Include="Microsoft.Extensions.Hosting" Version="8.0.0" />
|
||||||
<PackageReference Include="Microsoft.Extensions.Logging.Console" Version="8.0.0" />
|
<PackageReference Include="Microsoft.Extensions.Logging.Console" Version="8.0.0" />
|
||||||
<PackageReference Include="Oracle.ManagedDataAccess.Core" Version="23.5.0" />
|
<PackageReference Include="Oracle.ManagedDataAccess.Core" Version="23.5.1" />
|
||||||
<PackageReference Include="runtime.win-x64.Microsoft.DotNet.ILCompiler" Version="8.0.7" />
|
<PackageReference Include="runtime.win-x64.Microsoft.DotNet.ILCompiler" Version="8.0.8" />
|
||||||
<PackageReference Include="System.IO.Ports" Version="8.0.0" />
|
<PackageReference Include="System.IO.Ports" Version="8.0.0" />
|
||||||
<PackageReference Include="System.Text.Json" Version="8.0.4" />
|
<PackageReference Include="System.Text.Json" Version="8.0.4" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
40
Helpers/HelperISO.cs
Normal file
40
Helpers/HelperISO.cs
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
using DiscUtils.Iso9660;
|
||||||
|
using File_Watcher.Models;
|
||||||
|
|
||||||
|
namespace File_Watcher.Helpers;
|
||||||
|
|
||||||
|
internal static partial class HelperISO
|
||||||
|
{
|
||||||
|
|
||||||
|
private static void DirectoryToISO(ILogger<Worker> logger, string destinationDirectory, bool mapOnly, string directory)
|
||||||
|
{
|
||||||
|
byte[] bytes = [];
|
||||||
|
string relativePath;
|
||||||
|
string directoryName = Path.GetFileName(directory);
|
||||||
|
CDBuilder builder = new() { UseJoliet = true, VolumeIdentifier = directoryName.Length < 25 ? directoryName : directoryName[..25] };
|
||||||
|
IEnumerable<string> files = Directory.EnumerateFiles(directory, "*", new EnumerationOptions { IgnoreInaccessible = true, RecurseSubdirectories = true });
|
||||||
|
foreach (string file in files)
|
||||||
|
{
|
||||||
|
relativePath = Path.GetRelativePath(directory, file).Replace(';', '_');
|
||||||
|
if (!mapOnly)
|
||||||
|
_ = builder.AddFile(relativePath, file);
|
||||||
|
else
|
||||||
|
_ = builder.AddFile(relativePath, bytes);
|
||||||
|
}
|
||||||
|
logger.LogInformation(destinationDirectory);
|
||||||
|
builder.Build(Path.Combine(destinationDirectory, $"{directoryName}.iso"));
|
||||||
|
logger.LogInformation(directoryName);
|
||||||
|
}
|
||||||
|
|
||||||
|
internal static bool DirectoryToISO(AppSettings appSettings, ILogger<Worker> logger)
|
||||||
|
{
|
||||||
|
IsoConfiguration isoConfiguration = appSettings.IsoConfiguration;
|
||||||
|
logger.LogInformation(isoConfiguration.SourceDirectory);
|
||||||
|
bool mapOnly = isoConfiguration.SourceDirectory.Length == 2;
|
||||||
|
if (!Directory.Exists(isoConfiguration.DestinationDirectory))
|
||||||
|
_ = Directory.CreateDirectory(isoConfiguration.DestinationDirectory);
|
||||||
|
DirectoryToISO(logger, isoConfiguration.DestinationDirectory, mapOnly, isoConfiguration.SourceDirectory);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -3,13 +3,14 @@ using System.Text.Json.Serialization;
|
|||||||
|
|
||||||
namespace File_Watcher.Models;
|
namespace File_Watcher.Models;
|
||||||
|
|
||||||
public record AppSettings(EAFLogConfiguration EAFLogConfiguration,
|
public record AppSettings(CompassConfiguration CompassConfiguration,
|
||||||
|
DriveConfiguration DriveConfiguration,
|
||||||
|
EAFLogConfiguration EAFLogConfiguration,
|
||||||
EAFProgramDataConfiguration EAFProgramDataConfiguration,
|
EAFProgramDataConfiguration EAFProgramDataConfiguration,
|
||||||
EDADatabaseConfiguration EDADatabaseConfiguration,
|
EDADatabaseConfiguration EDADatabaseConfiguration,
|
||||||
CompassConfiguration CompassConfiguration,
|
IsoConfiguration IsoConfiguration,
|
||||||
DriveConfiguration DriveConfiguration,
|
|
||||||
NugetConfiguration NugetConfiguration,
|
|
||||||
MetrologyConfiguration MetrologyConfiguration,
|
MetrologyConfiguration MetrologyConfiguration,
|
||||||
|
NugetConfiguration NugetConfiguration,
|
||||||
SerialConfiguration SerialConfiguration,
|
SerialConfiguration SerialConfiguration,
|
||||||
StratusConfiguration StratusConfiguration,
|
StratusConfiguration StratusConfiguration,
|
||||||
TransmissionControlProtocolConfiguration TransmissionControlProtocolConfiguration,
|
TransmissionControlProtocolConfiguration TransmissionControlProtocolConfiguration,
|
||||||
|
@ -44,13 +44,14 @@ public class AppSettings
|
|||||||
}
|
}
|
||||||
|
|
||||||
private static Models.AppSettings Get(AppSettings? appSettings,
|
private static Models.AppSettings Get(AppSettings? appSettings,
|
||||||
DriveConfiguration driveConfiguration,
|
|
||||||
CompassConfiguration compassConfiguration,
|
CompassConfiguration compassConfiguration,
|
||||||
|
DriveConfiguration driveConfiguration,
|
||||||
EAFLogConfiguration eafLogConfiguration,
|
EAFLogConfiguration eafLogConfiguration,
|
||||||
EAFProgramDataConfiguration eafProgramDataConfiguration,
|
EAFProgramDataConfiguration eafProgramDataConfiguration,
|
||||||
EDADatabaseConfiguration edaDatabaseConfiguration,
|
EDADatabaseConfiguration edaDatabaseConfiguration,
|
||||||
NugetConfiguration nugetConfiguration,
|
IsoConfiguration isoConfiguration,
|
||||||
MetrologyConfiguration metrologyConfiguration,
|
MetrologyConfiguration metrologyConfiguration,
|
||||||
|
NugetConfiguration nugetConfiguration,
|
||||||
SerialConfiguration serialConfiguration,
|
SerialConfiguration serialConfiguration,
|
||||||
StratusConfiguration stratusConfiguration,
|
StratusConfiguration stratusConfiguration,
|
||||||
TransmissionControlProtocolConfiguration transmissionControlProtocolConfiguration,
|
TransmissionControlProtocolConfiguration transmissionControlProtocolConfiguration,
|
||||||
@ -65,13 +66,14 @@ public class AppSettings
|
|||||||
if (appSettings.MillisecondsDelay is null) throw new NullReferenceException(nameof(MillisecondsDelay));
|
if (appSettings.MillisecondsDelay is null) throw new NullReferenceException(nameof(MillisecondsDelay));
|
||||||
if (appSettings.WatchDirectory is null) throw new NullReferenceException(nameof(WatchDirectory));
|
if (appSettings.WatchDirectory is null) throw new NullReferenceException(nameof(WatchDirectory));
|
||||||
Verify(appSettings);
|
Verify(appSettings);
|
||||||
result = new(eafLogConfiguration,
|
result = new(compassConfiguration,
|
||||||
|
driveConfiguration,
|
||||||
|
eafLogConfiguration,
|
||||||
eafProgramDataConfiguration,
|
eafProgramDataConfiguration,
|
||||||
edaDatabaseConfiguration,
|
edaDatabaseConfiguration,
|
||||||
compassConfiguration,
|
isoConfiguration,
|
||||||
driveConfiguration,
|
|
||||||
nugetConfiguration,
|
|
||||||
metrologyConfiguration,
|
metrologyConfiguration,
|
||||||
|
nugetConfiguration,
|
||||||
serialConfiguration,
|
serialConfiguration,
|
||||||
stratusConfiguration,
|
stratusConfiguration,
|
||||||
transmissionControlProtocolConfiguration,
|
transmissionControlProtocolConfiguration,
|
||||||
@ -110,13 +112,14 @@ public class AppSettings
|
|||||||
results = (string.IsNullOrEmpty(json) ? null : results = JsonSerializer.Deserialize(json, AppSettingsSourceGenerationContext.Default.AppSettings)) ??
|
results = (string.IsNullOrEmpty(json) ? null : results = JsonSerializer.Deserialize(json, AppSettingsSourceGenerationContext.Default.AppSettings)) ??
|
||||||
throw new NullReferenceException(nameof(Models.AppSettings));
|
throw new NullReferenceException(nameof(Models.AppSettings));
|
||||||
results = Get(appSettings,
|
results = Get(appSettings,
|
||||||
results.DriveConfiguration,
|
|
||||||
results.CompassConfiguration,
|
results.CompassConfiguration,
|
||||||
|
results.DriveConfiguration,
|
||||||
results.EAFLogConfiguration,
|
results.EAFLogConfiguration,
|
||||||
results.EAFProgramDataConfiguration,
|
results.EAFProgramDataConfiguration,
|
||||||
results.EDADatabaseConfiguration,
|
results.EDADatabaseConfiguration,
|
||||||
results.NugetConfiguration,
|
results.IsoConfiguration,
|
||||||
results.MetrologyConfiguration,
|
results.MetrologyConfiguration,
|
||||||
|
results.NugetConfiguration,
|
||||||
results.SerialConfiguration,
|
results.SerialConfiguration,
|
||||||
results.StratusConfiguration,
|
results.StratusConfiguration,
|
||||||
results.TransmissionControlProtocolConfiguration,
|
results.TransmissionControlProtocolConfiguration,
|
||||||
|
22
Models/IsoConfiguration.cs
Normal file
22
Models/IsoConfiguration.cs
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
using System.Text.Json;
|
||||||
|
using System.Text.Json.Serialization;
|
||||||
|
|
||||||
|
namespace File_Watcher.Models;
|
||||||
|
|
||||||
|
public record IsoConfiguration(string DestinationDirectory,
|
||||||
|
string SourceDirectory)
|
||||||
|
{
|
||||||
|
|
||||||
|
public override string ToString()
|
||||||
|
{
|
||||||
|
string result = JsonSerializer.Serialize(this, IsoConfigurationSourceGenerationContext.Default.IsoConfiguration);
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
[JsonSourceGenerationOptions(WriteIndented = true)]
|
||||||
|
[JsonSerializable(typeof(IsoConfiguration))]
|
||||||
|
internal partial class IsoConfigurationSourceGenerationContext : JsonSerializerContext
|
||||||
|
{
|
||||||
|
}
|
@ -33,6 +33,7 @@ public partial class Worker : BackgroundService
|
|||||||
{
|
{
|
||||||
nameof(Helpers.HelperNuget) => Helpers.HelperNuget.Sync(_AppSettings, _Logger),
|
nameof(Helpers.HelperNuget) => Helpers.HelperNuget.Sync(_AppSettings, _Logger),
|
||||||
nameof(Helpers.HelperTCP) => Helpers.HelperTCP.ReadWrite(_AppSettings, _Logger),
|
nameof(Helpers.HelperTCP) => Helpers.HelperTCP.ReadWrite(_AppSettings, _Logger),
|
||||||
|
nameof(Helpers.HelperISO) => Helpers.HelperISO.DirectoryToISO(_AppSettings, _Logger),
|
||||||
nameof(Helpers.HelperCompass) => Helpers.HelperCompass.CopyFile(_AppSettings, _Logger),
|
nameof(Helpers.HelperCompass) => Helpers.HelperCompass.CopyFile(_AppSettings, _Logger),
|
||||||
nameof(Helpers.HelperStratus) => Helpers.HelperStratus.MoveFile(_AppSettings, _Logger),
|
nameof(Helpers.HelperStratus) => Helpers.HelperStratus.MoveFile(_AppSettings, _Logger),
|
||||||
nameof(Helpers.HelperEAFLog) => Helpers.HelperEAFLog.DeleteFiles(_AppSettings, _Logger),
|
nameof(Helpers.HelperEAFLog) => Helpers.HelperEAFLog.DeleteFiles(_AppSettings, _Logger),
|
||||||
|
Loading…
x
Reference in New Issue
Block a user