Added ISO
This commit is contained in:
		
							
								
								
									
										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,34 +10,35 @@ | |||||||
|     <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> | ||||||
|   <ItemGroup> |   <ItemGroup> | ||||||
|       <None Condition="'$(Configuration)' == 'Debug'" Include="\\mestsa003.infineon.com\EC_EAFRepository\Staging\DeploymentStorage\GhostPCL\gpcl6win64\gpcl6dll64.dll"> |     <None Condition="'$(Configuration)' == 'Debug'" Include="\\mestsa003.infineon.com\EC_EAFRepository\Staging\DeploymentStorage\GhostPCL\gpcl6win64\gpcl6dll64.dll"> | ||||||
|           <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> |       <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> | ||||||
|       </None> |     </None> | ||||||
|       <None Condition="'$(Configuration)' == 'Debug'" Include="\\mestsa003.infineon.com\EC_EAFRepository\Staging\DeploymentStorage\GhostPCL\gpcl6win64\gpcl6win64.exe"> |     <None Condition="'$(Configuration)' == 'Debug'" Include="\\mestsa003.infineon.com\EC_EAFRepository\Staging\DeploymentStorage\GhostPCL\gpcl6win64\gpcl6win64.exe"> | ||||||
|           <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> |       <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> | ||||||
|       </None> |     </None> | ||||||
|       <None Condition="'$(Configuration)' == 'Debug'" Include="\\mestsa003.infineon.com\EC_EAFRepository\Staging\DeploymentStorage\LincPDFC\v2.6.6.21\LincPDFC.exe"> |     <None Condition="'$(Configuration)' == 'Debug'" Include="\\mestsa003.infineon.com\EC_EAFRepository\Staging\DeploymentStorage\LincPDFC\v2.6.6.21\LincPDFC.exe"> | ||||||
|           <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> |       <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> | ||||||
|       </None> |     </None> | ||||||
|       <None Condition="'$(Configuration)' == 'Release'" Include="\\mesfs.infineon.com\EC_EAFRepository\Staging\DeploymentStorage\GhostPCL\gpcl6win64\gpcl6dll64.dll"> |     <None Condition="'$(Configuration)' == 'Release'" Include="\\mesfs.infineon.com\EC_EAFRepository\Staging\DeploymentStorage\GhostPCL\gpcl6win64\gpcl6dll64.dll"> | ||||||
|           <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> |       <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> | ||||||
|       </None> |     </None> | ||||||
|       <None Condition="'$(Configuration)' == 'Release'" Include="\\mesfs.infineon.com\EC_EAFRepository\Staging\DeploymentStorage\GhostPCL\gpcl6win64\gpcl6win64.exe"> |     <None Condition="'$(Configuration)' == 'Release'" Include="\\mesfs.infineon.com\EC_EAFRepository\Staging\DeploymentStorage\GhostPCL\gpcl6win64\gpcl6win64.exe"> | ||||||
|           <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> |       <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> | ||||||
|       </None> |     </None> | ||||||
|       <None Condition="'$(Configuration)' == 'Release'" Include="\\mesfs.infineon.com\EC_EAFRepository\Staging\DeploymentStorage\LincPDFC\v2.6.6.21\LincPDFC.exe"> |     <None Condition="'$(Configuration)' == 'Release'" Include="\\mesfs.infineon.com\EC_EAFRepository\Staging\DeploymentStorage\LincPDFC\v2.6.6.21\LincPDFC.exe"> | ||||||
|           <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> |       <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> | ||||||
|       </None> |     </None> | ||||||
|   </ItemGroup> |   </ItemGroup> | ||||||
| </Project> | </Project> | ||||||
							
								
								
									
										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), | ||||||
|  | |||||||
		Reference in New Issue
	
	Block a user