Compare commits
	
		
			1 Commits
		
	
	
		
			85fe0a7823
			...
			WinForms
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 37f6a68cd9 | 
							
								
								
									
										1
									
								
								Console/.vscode/format-report.json
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								Console/.vscode/format-report.json
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@ -0,0 +1 @@
 | 
			
		||||
[]
 | 
			
		||||
							
								
								
									
										30
									
								
								Console/.vscode/launch.json
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										30
									
								
								Console/.vscode/launch.json
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@ -0,0 +1,30 @@
 | 
			
		||||
{
 | 
			
		||||
    // Use IntelliSense to learn about possible attributes.
 | 
			
		||||
    // Hover to view descriptions of existing attributes.
 | 
			
		||||
    // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
 | 
			
		||||
    "version": "0.2.0",
 | 
			
		||||
    "configurations": [
 | 
			
		||||
        {
 | 
			
		||||
            "name": ".NET Core Launch (console)",
 | 
			
		||||
            "type": "coreclr",
 | 
			
		||||
            "request": "launch",
 | 
			
		||||
            "preLaunchTask": "build",
 | 
			
		||||
            "program": "${workspaceFolder}/bin/Debug/net8.0/win-x64/OI.Metrology.Console.dll",
 | 
			
		||||
            "args": [
 | 
			
		||||
                "s",
 | 
			
		||||
                "M",
 | 
			
		||||
                "L:/Git/Notes-EC-Documentation/.EC-Documentation",
 | 
			
		||||
                "-s",
 | 
			
		||||
                "L:/Git/Notes-EC-Documentation/.EC-Documentation/port"
 | 
			
		||||
            ],
 | 
			
		||||
            "cwd": "${workspaceFolder}",
 | 
			
		||||
            "console": "integratedTerminal",
 | 
			
		||||
            "stopAtEntry": false
 | 
			
		||||
        },
 | 
			
		||||
        {
 | 
			
		||||
            "name": ".NET Core Attach",
 | 
			
		||||
            "type": "coreclr",
 | 
			
		||||
            "request": "attach"
 | 
			
		||||
        }
 | 
			
		||||
    ]
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										4
									
								
								Console/.vscode/mklink.md
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										4
									
								
								Console/.vscode/mklink.md
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@ -0,0 +1,4 @@
 | 
			
		||||
# mklink
 | 
			
		||||
 | 
			
		||||
```bash
 | 
			
		||||
```
 | 
			
		||||
							
								
								
									
										37
									
								
								Console/.vscode/settings.json
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										37
									
								
								Console/.vscode/settings.json
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@ -0,0 +1,37 @@
 | 
			
		||||
{
 | 
			
		||||
    "[markdown]": {
 | 
			
		||||
        "editor.wordWrap": "off"
 | 
			
		||||
    },
 | 
			
		||||
    "files.exclude": {
 | 
			
		||||
        "**/.git": false,
 | 
			
		||||
      "**/node_modules": true
 | 
			
		||||
    },
 | 
			
		||||
    "files.watcherExclude": {
 | 
			
		||||
      "**/node_modules": true
 | 
			
		||||
    },
 | 
			
		||||
    "cSpell.words": [
 | 
			
		||||
      "ASPNETCORE",
 | 
			
		||||
      "BIRT",
 | 
			
		||||
      "CHIL",
 | 
			
		||||
      "DEAT",
 | 
			
		||||
      "endianness",
 | 
			
		||||
      "FAMC",
 | 
			
		||||
      "FAMS",
 | 
			
		||||
      "GIVN",
 | 
			
		||||
      "HUSB",
 | 
			
		||||
      "INDI",
 | 
			
		||||
      "Infineon",
 | 
			
		||||
      "Kanban",
 | 
			
		||||
      "kanbn",
 | 
			
		||||
      "Kofax",
 | 
			
		||||
      "NSFX",
 | 
			
		||||
      "OBJE",
 | 
			
		||||
      "onenote",
 | 
			
		||||
      "pged",
 | 
			
		||||
      "Phares",
 | 
			
		||||
      "Serilog",
 | 
			
		||||
      "SUBM",
 | 
			
		||||
      "SURN",
 | 
			
		||||
      "SYSLIB"
 | 
			
		||||
    ]
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										99
									
								
								Console/.vscode/tasks.json
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										99
									
								
								Console/.vscode/tasks.json
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@ -0,0 +1,99 @@
 | 
			
		||||
{
 | 
			
		||||
    "version": "2.0.0",
 | 
			
		||||
    "tasks": [
 | 
			
		||||
        {
 | 
			
		||||
            "label": "User Secrets Init",
 | 
			
		||||
            "command": "dotnet",
 | 
			
		||||
            "type": "process",
 | 
			
		||||
            "args": [
 | 
			
		||||
                "user-secrets",
 | 
			
		||||
                "-p",
 | 
			
		||||
                "${workspaceFolder}/OI.Metrology.Console.csproj",
 | 
			
		||||
                "init"
 | 
			
		||||
            ],
 | 
			
		||||
            "problemMatcher": "$msCompile"
 | 
			
		||||
        },
 | 
			
		||||
        {
 | 
			
		||||
            "label": "User Secrets Set",
 | 
			
		||||
            "command": "dotnet",
 | 
			
		||||
            "type": "process",
 | 
			
		||||
            "args": [
 | 
			
		||||
                "user-secrets",
 | 
			
		||||
                "-p",
 | 
			
		||||
                "${workspaceFolder}/OI.Metrology.Console.csproj",
 | 
			
		||||
                "set",
 | 
			
		||||
                "asdf",
 | 
			
		||||
                "123"
 | 
			
		||||
            ],
 | 
			
		||||
            "problemMatcher": "$msCompile"
 | 
			
		||||
        },
 | 
			
		||||
        {
 | 
			
		||||
            "label": "Format",
 | 
			
		||||
            "command": "dotnet",
 | 
			
		||||
            "type": "process",
 | 
			
		||||
            "args": [
 | 
			
		||||
                "format",
 | 
			
		||||
                "--report",
 | 
			
		||||
                ".vscode",
 | 
			
		||||
                "--verbosity",
 | 
			
		||||
                "detailed",
 | 
			
		||||
                "--severity",
 | 
			
		||||
                "warn"
 | 
			
		||||
            ],
 | 
			
		||||
            "problemMatcher": "$msCompile"
 | 
			
		||||
        },
 | 
			
		||||
        {
 | 
			
		||||
            "label": "build",
 | 
			
		||||
            "command": "dotnet",
 | 
			
		||||
            "type": "process",
 | 
			
		||||
            "args": [
 | 
			
		||||
                "build",
 | 
			
		||||
                "${workspaceFolder}/OI.Metrology.Console.csproj",
 | 
			
		||||
                "/property:GenerateFullPaths=true",
 | 
			
		||||
                "/consoleloggerparameters:NoSummary"
 | 
			
		||||
            ],
 | 
			
		||||
            "problemMatcher": "$msCompile"
 | 
			
		||||
        },
 | 
			
		||||
        {
 | 
			
		||||
            "label": "publish",
 | 
			
		||||
            "command": "dotnet",
 | 
			
		||||
            "type": "process",
 | 
			
		||||
            "args": [
 | 
			
		||||
                "publish",
 | 
			
		||||
                "${workspaceFolder}/OI.Metrology.Console.csproj",
 | 
			
		||||
                "/property:GenerateFullPaths=true",
 | 
			
		||||
                "/consoleloggerparameters:NoSummary"
 | 
			
		||||
            ],
 | 
			
		||||
            "problemMatcher": "$msCompile"
 | 
			
		||||
        },
 | 
			
		||||
        {
 | 
			
		||||
            "label": "watch",
 | 
			
		||||
            "command": "dotnet",
 | 
			
		||||
            "type": "process",
 | 
			
		||||
            "args": [
 | 
			
		||||
                "watch",
 | 
			
		||||
                "run",
 | 
			
		||||
                "--project",
 | 
			
		||||
                "${workspaceFolder}/OI.Metrology.Console.csproj"
 | 
			
		||||
            ],
 | 
			
		||||
            "problemMatcher": "$msCompile"
 | 
			
		||||
        },
 | 
			
		||||
        {
 | 
			
		||||
            "label": "Publish AOT",
 | 
			
		||||
            "command": "dotnet",
 | 
			
		||||
            "type": "process",
 | 
			
		||||
            "args": [
 | 
			
		||||
                "publish",
 | 
			
		||||
                "-r",
 | 
			
		||||
                "win-x64",
 | 
			
		||||
                "-c",
 | 
			
		||||
                "Release",
 | 
			
		||||
                "-p:PublishAot=true",
 | 
			
		||||
                "${workspaceFolder}/OI.Metrology.Console.csproj",
 | 
			
		||||
                "/property:GenerateFullPaths=true",
 | 
			
		||||
                "/consoleloggerparameters:NoSummary"
 | 
			
		||||
            ],
 | 
			
		||||
            "problemMatcher": "$msCompile"
 | 
			
		||||
        }
 | 
			
		||||
    ]
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										21
									
								
								Console/Models/AppSettings.cs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										21
									
								
								Console/Models/AppSettings.cs
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,21 @@
 | 
			
		||||
using System.Text.Json;
 | 
			
		||||
using System.Text.Json.Serialization;
 | 
			
		||||
 | 
			
		||||
namespace OI.Metrology.Console.Models;
 | 
			
		||||
 | 
			
		||||
public record AppSettings(string Company)
 | 
			
		||||
{
 | 
			
		||||
 | 
			
		||||
    public override string ToString()
 | 
			
		||||
    {
 | 
			
		||||
        string result = JsonSerializer.Serialize(this, AppSettingsSourceGenerationContext.Default.AppSettings);
 | 
			
		||||
        return result;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
[JsonSourceGenerationOptions(WriteIndented = true)]
 | 
			
		||||
[JsonSerializable(typeof(AppSettings))]
 | 
			
		||||
internal partial class AppSettingsSourceGenerationContext : JsonSerializerContext
 | 
			
		||||
{
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										2
									
								
								Console/Models/Binder/.editorconfig
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								Console/Models/Binder/.editorconfig
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,2 @@
 | 
			
		||||
[*.cs]
 | 
			
		||||
csharp_preserve_single_line_statements = true
 | 
			
		||||
							
								
								
									
										61
									
								
								Console/Models/Binder/AppSettings.cs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										61
									
								
								Console/Models/Binder/AppSettings.cs
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,61 @@
 | 
			
		||||
using Microsoft.Extensions.Configuration;
 | 
			
		||||
using System.Text.Json;
 | 
			
		||||
using System.Text.Json.Serialization;
 | 
			
		||||
 | 
			
		||||
namespace OI.Metrology.Console.Models.Binder;
 | 
			
		||||
 | 
			
		||||
public class AppSettings
 | 
			
		||||
{
 | 
			
		||||
 | 
			
		||||
    public string? Company { get; set; }
 | 
			
		||||
 | 
			
		||||
    public override string ToString()
 | 
			
		||||
    {
 | 
			
		||||
        string result = JsonSerializer.Serialize(this, BinderAppSettingsSourceGenerationContext.Default.AppSettings);
 | 
			
		||||
        return result;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    private static void PreVerify(IConfigurationRoot configurationRoot, AppSettings? appSettings)
 | 
			
		||||
    {
 | 
			
		||||
        if (appSettings?.Company is null)
 | 
			
		||||
        {
 | 
			
		||||
            List<string> paths = [];
 | 
			
		||||
            foreach (IConfigurationProvider configurationProvider in configurationRoot.Providers)
 | 
			
		||||
            {
 | 
			
		||||
                if (configurationProvider is not Microsoft.Extensions.Configuration.Json.JsonConfigurationProvider jsonConfigurationProvider)
 | 
			
		||||
                    continue;
 | 
			
		||||
                if (jsonConfigurationProvider.Source.FileProvider is not Microsoft.Extensions.FileProviders.PhysicalFileProvider physicalFileProvider)
 | 
			
		||||
                    continue;
 | 
			
		||||
                paths.Add(physicalFileProvider.Root);
 | 
			
		||||
            }
 | 
			
		||||
            throw new NotSupportedException($"Not found!{Environment.NewLine}{string.Join(Environment.NewLine, paths.Distinct())}");
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    private static Models.AppSettings Get(AppSettings? appSettings)
 | 
			
		||||
    {
 | 
			
		||||
        Models.AppSettings result;
 | 
			
		||||
        if (appSettings is null) throw new NullReferenceException(nameof(appSettings));
 | 
			
		||||
        if (appSettings.Company is null) throw new NullReferenceException(nameof(Company));
 | 
			
		||||
        result = new(appSettings.Company);
 | 
			
		||||
        return result;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public static Models.AppSettings Get(IConfigurationRoot configurationRoot)
 | 
			
		||||
    {
 | 
			
		||||
        Models.AppSettings result;
 | 
			
		||||
#pragma warning disable IL3050, IL2026
 | 
			
		||||
        AppSettings? appSettings = configurationRoot.Get<AppSettings>();
 | 
			
		||||
#pragma warning restore IL3050, IL2026
 | 
			
		||||
        PreVerify(configurationRoot, appSettings);
 | 
			
		||||
        result = Get(appSettings);
 | 
			
		||||
        return result;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
[JsonSourceGenerationOptions(WriteIndented = true)]
 | 
			
		||||
[JsonSerializable(typeof(AppSettings))]
 | 
			
		||||
internal partial class BinderAppSettingsSourceGenerationContext : JsonSerializerContext
 | 
			
		||||
{
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										50
									
								
								Console/Models/WorkingDirectory.cs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										50
									
								
								Console/Models/WorkingDirectory.cs
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,50 @@
 | 
			
		||||
namespace OI.Metrology.Console.Models;
 | 
			
		||||
 | 
			
		||||
internal abstract class WorkingDirectory
 | 
			
		||||
{
 | 
			
		||||
 | 
			
		||||
    internal static string GetWorkingDirectory(string? executingAssemblyName, string subDirectoryName)
 | 
			
		||||
    {
 | 
			
		||||
        string result = string.Empty;
 | 
			
		||||
        if (executingAssemblyName is null)
 | 
			
		||||
            throw new Exception();
 | 
			
		||||
        string traceFile;
 | 
			
		||||
        List<string> directories = [];
 | 
			
		||||
        Environment.SpecialFolder[] specialFolders =
 | 
			
		||||
        [
 | 
			
		||||
                    Environment.SpecialFolder.LocalApplicationData,
 | 
			
		||||
            Environment.SpecialFolder.ApplicationData,
 | 
			
		||||
            Environment.SpecialFolder.History,
 | 
			
		||||
            Environment.SpecialFolder.CommonApplicationData,
 | 
			
		||||
            Environment.SpecialFolder.InternetCache
 | 
			
		||||
        ];
 | 
			
		||||
        foreach (Environment.SpecialFolder specialFolder in specialFolders)
 | 
			
		||||
            directories.Add(Path.Combine(Environment.GetFolderPath(specialFolder), subDirectoryName, executingAssemblyName));
 | 
			
		||||
        foreach (string directory in directories)
 | 
			
		||||
        {
 | 
			
		||||
            for (int i = 1; i < 3; i++)
 | 
			
		||||
            {
 | 
			
		||||
                if (i == 1)
 | 
			
		||||
                    result = directory;
 | 
			
		||||
                else
 | 
			
		||||
                    result = string.Concat("D", directory[1..]);
 | 
			
		||||
                try
 | 
			
		||||
                {
 | 
			
		||||
                    if (!Directory.Exists(result))
 | 
			
		||||
                        _ = Directory.CreateDirectory(result);
 | 
			
		||||
                    traceFile = string.Concat(result, @"\", DateTime.Now.Ticks, ".txt");
 | 
			
		||||
                    File.WriteAllText(traceFile, traceFile);
 | 
			
		||||
                    File.Delete(traceFile);
 | 
			
		||||
                    break;
 | 
			
		||||
                }
 | 
			
		||||
                catch (Exception) { result = string.Empty; }
 | 
			
		||||
            }
 | 
			
		||||
            if (!string.IsNullOrEmpty(result))
 | 
			
		||||
                break;
 | 
			
		||||
        }
 | 
			
		||||
        if (string.IsNullOrEmpty(result))
 | 
			
		||||
            throw new Exception("Unable to set working directory!");
 | 
			
		||||
        return result;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										16
									
								
								Console/OI.Metrology.Console.csproj
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										16
									
								
								Console/OI.Metrology.Console.csproj
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,16 @@
 | 
			
		||||
<Project Sdk="Microsoft.NET.Sdk">
 | 
			
		||||
  <PropertyGroup>
 | 
			
		||||
    <ImplicitUsings>enable</ImplicitUsings>
 | 
			
		||||
    <Nullable>enable</Nullable>
 | 
			
		||||
    <OutputType>Exe</OutputType>
 | 
			
		||||
    <RuntimeIdentifier>win-x64</RuntimeIdentifier>
 | 
			
		||||
    <TargetFramework>net8.0</TargetFramework>
 | 
			
		||||
    <UserSecretsId>d9488860-fd41-4dd8-9448-19f1dde7a0f7</UserSecretsId>
 | 
			
		||||
  </PropertyGroup>
 | 
			
		||||
  <ItemGroup>
 | 
			
		||||
    <PackageReference Include="Microsoft.Extensions.Hosting" Version="8.0.0" />
 | 
			
		||||
    <PackageReference Include="Microsoft.Extensions.Logging.Console" Version="8.0.0" />
 | 
			
		||||
    <PackageReference Include="runtime.win-x64.Microsoft.DotNet.ILCompiler" Version="8.0.3" />
 | 
			
		||||
    <PackageReference Include="System.Text.Json" Version="8.0.3" />
 | 
			
		||||
  </ItemGroup>
 | 
			
		||||
</Project>
 | 
			
		||||
							
								
								
									
										29
									
								
								Console/Program.cs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										29
									
								
								Console/Program.cs
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,29 @@
 | 
			
		||||
using Microsoft.Extensions.Configuration;
 | 
			
		||||
using Microsoft.Extensions.DependencyInjection;
 | 
			
		||||
using Microsoft.Extensions.Hosting;
 | 
			
		||||
using Microsoft.Extensions.Logging;
 | 
			
		||||
using OI.Metrology.Console.Models;
 | 
			
		||||
 | 
			
		||||
namespace OI.Metrology.Console;
 | 
			
		||||
 | 
			
		||||
internal class Program
 | 
			
		||||
{
 | 
			
		||||
 | 
			
		||||
    public static void Main(string[] args)
 | 
			
		||||
    {
 | 
			
		||||
#pragma warning disable IL3050
 | 
			
		||||
        HostApplicationBuilder builder = Host.CreateApplicationBuilder(args);
 | 
			
		||||
#pragma warning restore IL3050
 | 
			
		||||
        _ = builder.Configuration.AddEnvironmentVariables();
 | 
			
		||||
        _ = builder.Configuration.AddUserSecrets<Program>();
 | 
			
		||||
        _ = builder.Services.AddSingleton(args.ToList());
 | 
			
		||||
        AppSettings appSettings = Models.Binder.AppSettings.Get(builder.Configuration);
 | 
			
		||||
        _ = builder.Services.AddSingleton(appSettings);
 | 
			
		||||
        _ = builder.Services.AddHostedService<Worker>();
 | 
			
		||||
        using IHost host = builder.Build();
 | 
			
		||||
        ILogger<Program> logger = host.Services.GetRequiredService<ILogger<Program>>();
 | 
			
		||||
        logger.LogCritical("{appSettings.Company}", appSettings.Company);
 | 
			
		||||
        host.Run();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										67
									
								
								Console/Worker.cs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										67
									
								
								Console/Worker.cs
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,67 @@
 | 
			
		||||
using Microsoft.Extensions.Hosting;
 | 
			
		||||
using Microsoft.Extensions.Logging;
 | 
			
		||||
using OI.Metrology.Console.Models;
 | 
			
		||||
using System.Diagnostics;
 | 
			
		||||
 | 
			
		||||
namespace OI.Metrology.Console;
 | 
			
		||||
 | 
			
		||||
public class Worker : BackgroundService
 | 
			
		||||
{
 | 
			
		||||
 | 
			
		||||
    private readonly List<string> _Args;
 | 
			
		||||
    private readonly ILogger<Worker> _Logger;
 | 
			
		||||
    private readonly AppSettings _AppSettings;
 | 
			
		||||
    private readonly IHostApplicationLifetime _Lifetime;
 | 
			
		||||
 | 
			
		||||
    public Worker(ILogger<Worker> logger, IHostApplicationLifetime lifetime, List<string> args, AppSettings appSettings)
 | 
			
		||||
    {
 | 
			
		||||
        _Args = args;
 | 
			
		||||
        _Logger = logger;
 | 
			
		||||
        _Lifetime = lifetime;
 | 
			
		||||
        _AppSettings = appSettings;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public override Task StartAsync(CancellationToken cancellationToken) =>
 | 
			
		||||
        base.StartAsync(cancellationToken);
 | 
			
		||||
 | 
			
		||||
    public override Task StopAsync(CancellationToken cancellationToken) =>
 | 
			
		||||
        base.StopAsync(cancellationToken);
 | 
			
		||||
 | 
			
		||||
    protected override async Task ExecuteAsync(CancellationToken stoppingToken)
 | 
			
		||||
    {
 | 
			
		||||
        if (!stoppingToken.IsCancellationRequested)
 | 
			
		||||
            await Task.Delay(500, stoppingToken);
 | 
			
		||||
        if (_AppSettings is null)
 | 
			
		||||
            throw new NullReferenceException(nameof(_AppSettings));
 | 
			
		||||
        try
 | 
			
		||||
        {
 | 
			
		||||
            _Logger.LogInformation("BaseDirectory: <{BaseDirectory}>", AppContext.BaseDirectory);
 | 
			
		||||
            _Logger.LogInformation("CurrentDirectory: <{CurrentDirectory}>", Environment.CurrentDirectory);
 | 
			
		||||
            _Logger.LogInformation("Press Escape key to get -1, Enter key to get 0, y key to get 1 and n key to get 2 exit code");
 | 
			
		||||
            ConsoleKeyInfo consoleKeyInfo = System.Console.ReadKey();
 | 
			
		||||
            if (consoleKeyInfo.Key == ConsoleKey.W)
 | 
			
		||||
            {
 | 
			
		||||
                Process process = Process.Start("L:/DevOps/Mesa_FI/OI-Metrology/WinForms/bin/Debug/net8.0-windows/win-x64/OI.Metrology.WinForms.exe", "Mike");
 | 
			
		||||
                process.WaitForExit();
 | 
			
		||||
                _Logger.LogInformation("ExitCode: <{ExitCode}>", process.ExitCode);
 | 
			
		||||
            }
 | 
			
		||||
            else
 | 
			
		||||
            {
 | 
			
		||||
                Environment.ExitCode = consoleKeyInfo.Key switch
 | 
			
		||||
                {
 | 
			
		||||
                    ConsoleKey.Escape => -1,
 | 
			
		||||
                    ConsoleKey.Enter => 0,
 | 
			
		||||
                    ConsoleKey.Y => 1,
 | 
			
		||||
                    ConsoleKey.N => 2,
 | 
			
		||||
                    _ => 9
 | 
			
		||||
                };
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        catch (Exception ex)
 | 
			
		||||
        { _Logger.LogError("{Message}{NewLine}{StackTrace}", ex.Message, Environment.NewLine, ex.StackTrace); }
 | 
			
		||||
        _Logger.LogInformation("Done. Press 'Enter' to end");
 | 
			
		||||
        _ = System.Console.ReadLine();
 | 
			
		||||
        _Lifetime.StopApplication();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										3
									
								
								Console/secrets.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								Console/secrets.json
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,3 @@
 | 
			
		||||
{
 | 
			
		||||
    "Company": "Infineon Technologies Americas Corp."
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										1
									
								
								WinForms/.vscode/format-report.json
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								WinForms/.vscode/format-report.json
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@ -0,0 +1 @@
 | 
			
		||||
[]
 | 
			
		||||
							
								
								
									
										30
									
								
								WinForms/.vscode/launch.json
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										30
									
								
								WinForms/.vscode/launch.json
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@ -0,0 +1,30 @@
 | 
			
		||||
{
 | 
			
		||||
    // Use IntelliSense to learn about possible attributes.
 | 
			
		||||
    // Hover to view descriptions of existing attributes.
 | 
			
		||||
    // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
 | 
			
		||||
    "version": "0.2.0",
 | 
			
		||||
    "configurations": [
 | 
			
		||||
        {
 | 
			
		||||
            "name": ".NET Core Launch (console)",
 | 
			
		||||
            "type": "coreclr",
 | 
			
		||||
            "request": "launch",
 | 
			
		||||
            "preLaunchTask": "build",
 | 
			
		||||
            "program": "${workspaceFolder}/bin/Debug/net8.0-windows/win-x64/OI.Metrology.WinForms.dll",
 | 
			
		||||
            "args": [
 | 
			
		||||
                "s",
 | 
			
		||||
                "M",
 | 
			
		||||
                "L:/Git/Notes-EC-Documentation/.EC-Documentation",
 | 
			
		||||
                "-s",
 | 
			
		||||
                "L:/Git/Notes-EC-Documentation/.EC-Documentation/port"
 | 
			
		||||
            ],
 | 
			
		||||
            "cwd": "${workspaceFolder}",
 | 
			
		||||
            "console": "integratedTerminal",
 | 
			
		||||
            "stopAtEntry": false
 | 
			
		||||
        },
 | 
			
		||||
        {
 | 
			
		||||
            "name": ".NET Core Attach",
 | 
			
		||||
            "type": "coreclr",
 | 
			
		||||
            "request": "attach"
 | 
			
		||||
        }
 | 
			
		||||
    ]
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										4
									
								
								WinForms/.vscode/mklink.md
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										4
									
								
								WinForms/.vscode/mklink.md
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@ -0,0 +1,4 @@
 | 
			
		||||
# mklink
 | 
			
		||||
 | 
			
		||||
```bash
 | 
			
		||||
```
 | 
			
		||||
							
								
								
									
										37
									
								
								WinForms/.vscode/settings.json
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										37
									
								
								WinForms/.vscode/settings.json
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@ -0,0 +1,37 @@
 | 
			
		||||
{
 | 
			
		||||
    "[markdown]": {
 | 
			
		||||
        "editor.wordWrap": "off"
 | 
			
		||||
    },
 | 
			
		||||
    "files.exclude": {
 | 
			
		||||
        "**/.git": false,
 | 
			
		||||
      "**/node_modules": true
 | 
			
		||||
    },
 | 
			
		||||
    "files.watcherExclude": {
 | 
			
		||||
      "**/node_modules": true
 | 
			
		||||
    },
 | 
			
		||||
    "cSpell.words": [
 | 
			
		||||
      "ASPNETCORE",
 | 
			
		||||
      "BIRT",
 | 
			
		||||
      "CHIL",
 | 
			
		||||
      "DEAT",
 | 
			
		||||
      "endianness",
 | 
			
		||||
      "FAMC",
 | 
			
		||||
      "FAMS",
 | 
			
		||||
      "GIVN",
 | 
			
		||||
      "HUSB",
 | 
			
		||||
      "INDI",
 | 
			
		||||
      "Infineon",
 | 
			
		||||
      "Kanban",
 | 
			
		||||
      "kanbn",
 | 
			
		||||
      "Kofax",
 | 
			
		||||
      "NSFX",
 | 
			
		||||
      "OBJE",
 | 
			
		||||
      "onenote",
 | 
			
		||||
      "pged",
 | 
			
		||||
      "Phares",
 | 
			
		||||
      "Serilog",
 | 
			
		||||
      "SUBM",
 | 
			
		||||
      "SURN",
 | 
			
		||||
      "SYSLIB"
 | 
			
		||||
    ]
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										83
									
								
								WinForms/.vscode/tasks.json
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										83
									
								
								WinForms/.vscode/tasks.json
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@ -0,0 +1,83 @@
 | 
			
		||||
{
 | 
			
		||||
    "version": "2.0.0",
 | 
			
		||||
    "tasks": [
 | 
			
		||||
        {
 | 
			
		||||
            "label": "User Secrets Init",
 | 
			
		||||
            "command": "dotnet",
 | 
			
		||||
            "type": "process",
 | 
			
		||||
            "args": [
 | 
			
		||||
                "user-secrets",
 | 
			
		||||
                "-p",
 | 
			
		||||
                "${workspaceFolder}/OI.Metrology.WinForms.csproj",
 | 
			
		||||
                "init"
 | 
			
		||||
            ],
 | 
			
		||||
            "problemMatcher": "$msCompile"
 | 
			
		||||
        },
 | 
			
		||||
        {
 | 
			
		||||
            "label": "User Secrets Set",
 | 
			
		||||
            "command": "dotnet",
 | 
			
		||||
            "type": "process",
 | 
			
		||||
            "args": [
 | 
			
		||||
                "user-secrets",
 | 
			
		||||
                "-p",
 | 
			
		||||
                "${workspaceFolder}/OI.Metrology.WinForms.csproj",
 | 
			
		||||
                "set",
 | 
			
		||||
                "asdf",
 | 
			
		||||
                "123"
 | 
			
		||||
            ],
 | 
			
		||||
            "problemMatcher": "$msCompile"
 | 
			
		||||
        },
 | 
			
		||||
        {
 | 
			
		||||
            "label": "Format",
 | 
			
		||||
            "command": "dotnet",
 | 
			
		||||
            "type": "process",
 | 
			
		||||
            "args": [
 | 
			
		||||
                "format",
 | 
			
		||||
                "--report",
 | 
			
		||||
                ".vscode",
 | 
			
		||||
                "--verbosity",
 | 
			
		||||
                "detailed",
 | 
			
		||||
                "--severity",
 | 
			
		||||
                "warn"
 | 
			
		||||
            ],
 | 
			
		||||
            "problemMatcher": "$msCompile"
 | 
			
		||||
        },
 | 
			
		||||
        {
 | 
			
		||||
            "label": "build",
 | 
			
		||||
            "command": "dotnet",
 | 
			
		||||
            "type": "process",
 | 
			
		||||
            "args": [
 | 
			
		||||
                "build",
 | 
			
		||||
                "${workspaceFolder}/OI.Metrology.WinForms.csproj",
 | 
			
		||||
                "/property:GenerateFullPaths=true",
 | 
			
		||||
                "/consoleloggerparameters:NoSummary"
 | 
			
		||||
            ],
 | 
			
		||||
            "problemMatcher": "$msCompile"
 | 
			
		||||
        },
 | 
			
		||||
        {
 | 
			
		||||
            "label": "publish",
 | 
			
		||||
            "command": "dotnet",
 | 
			
		||||
            "type": "process",
 | 
			
		||||
            "args": [
 | 
			
		||||
                "publish",
 | 
			
		||||
                "${workspaceFolder}/OI.Metrology.WinForms.csproj",
 | 
			
		||||
                "/property:GenerateFullPaths=true",
 | 
			
		||||
                "/consoleloggerparameters:NoSummary",
 | 
			
		||||
                "-p:PublishSingleFile=true"
 | 
			
		||||
            ],
 | 
			
		||||
            "problemMatcher": "$msCompile"
 | 
			
		||||
        },
 | 
			
		||||
        {
 | 
			
		||||
            "label": "watch",
 | 
			
		||||
            "command": "dotnet",
 | 
			
		||||
            "type": "process",
 | 
			
		||||
            "args": [
 | 
			
		||||
                "watch",
 | 
			
		||||
                "run",
 | 
			
		||||
                "--project",
 | 
			
		||||
                "${workspaceFolder}/OI.Metrology.WinForms.csproj"
 | 
			
		||||
            ],
 | 
			
		||||
            "problemMatcher": "$msCompile"
 | 
			
		||||
        }
 | 
			
		||||
    ]
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										136
									
								
								WinForms/Form1.Designer.cs
									
									
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
									
										136
									
								
								WinForms/Form1.Designer.cs
									
									
									
										generated
									
									
									
										Normal file
									
								
							@ -0,0 +1,136 @@
 | 
			
		||||
namespace WinForms;
 | 
			
		||||
 | 
			
		||||
partial class Form1
 | 
			
		||||
{
 | 
			
		||||
    /// <summary>
 | 
			
		||||
    ///  Required designer variable.
 | 
			
		||||
    /// </summary>
 | 
			
		||||
    private System.ComponentModel.IContainer components = null;
 | 
			
		||||
 | 
			
		||||
    /// <summary>
 | 
			
		||||
    ///  Clean up any resources being used.
 | 
			
		||||
    /// </summary>
 | 
			
		||||
    /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
 | 
			
		||||
    protected override void Dispose(bool disposing)
 | 
			
		||||
    {
 | 
			
		||||
        if (disposing && (components != null))
 | 
			
		||||
        {
 | 
			
		||||
            components.Dispose();
 | 
			
		||||
        }
 | 
			
		||||
        base.Dispose(disposing);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    #region Windows Form Designer generated code
 | 
			
		||||
 | 
			
		||||
    /// <summary>
 | 
			
		||||
    ///  Required method for Designer support - do not modify
 | 
			
		||||
    ///  the contents of this method with the code editor.
 | 
			
		||||
    /// </summary>
 | 
			
		||||
    private void InitializeComponent()
 | 
			
		||||
    {
 | 
			
		||||
        this.components = new System.ComponentModel.Container();
 | 
			
		||||
        this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
 | 
			
		||||
        this.ClientSize = new System.Drawing.Size(800, 450);
 | 
			
		||||
        this.Text = "Form1";
 | 
			
		||||
        this._Go = new System.Windows.Forms.Button();
 | 
			
		||||
        this._NoGo = new System.Windows.Forms.Button();
 | 
			
		||||
        this._Cancel = new System.Windows.Forms.Button();
 | 
			
		||||
        this._BaseDirectory = new System.Windows.Forms.Label();
 | 
			
		||||
        this._CommandLineArgs = new System.Windows.Forms.Label();
 | 
			
		||||
        this._WebBrowser = new System.Windows.Forms.WebBrowser();
 | 
			
		||||
        this._CurrentDirectory = new System.Windows.Forms.Label();
 | 
			
		||||
        this.SuspendLayout();
 | 
			
		||||
        // 
 | 
			
		||||
        // _Go
 | 
			
		||||
        // 
 | 
			
		||||
        this._Go.AutoSize = true;
 | 
			
		||||
        this._Go.Location = new System.Drawing.Point(5, 5);
 | 
			
		||||
        this._Go.Name = "Go";
 | 
			
		||||
        this._Go.Size = new System.Drawing.Size(68, 16);
 | 
			
		||||
        this._Go.Text = "Go";
 | 
			
		||||
        this._Go.ForeColor = Color.White;
 | 
			
		||||
        this._Go.Click += new EventHandler(this.Go_Click);
 | 
			
		||||
        // 
 | 
			
		||||
        // _NoGo
 | 
			
		||||
        // 
 | 
			
		||||
        this._NoGo.AutoSize = true;
 | 
			
		||||
        this._NoGo.Location = new System.Drawing.Point(105, 5);
 | 
			
		||||
        this._NoGo.Name = "NoGo";
 | 
			
		||||
        this._NoGo.Size = new System.Drawing.Size(68, 16);
 | 
			
		||||
        this._NoGo.Text = "NoGo";
 | 
			
		||||
        this._NoGo.ForeColor = Color.White;
 | 
			
		||||
        this._NoGo.Click += new EventHandler(this.NoGo_Click);
 | 
			
		||||
        // 
 | 
			
		||||
        // _Cancel
 | 
			
		||||
        // 
 | 
			
		||||
        this._Cancel.AutoSize = true;
 | 
			
		||||
        this._Cancel.Location = new System.Drawing.Point(205, 5);
 | 
			
		||||
        this._Cancel.Name = "Cancel";
 | 
			
		||||
        this._Cancel.Size = new System.Drawing.Size(68, 16);
 | 
			
		||||
        this._Cancel.Text = "Cancel";
 | 
			
		||||
        this._Cancel.ForeColor = Color.White;
 | 
			
		||||
        this._Cancel.Click += new EventHandler(this.Cancel_Click);
 | 
			
		||||
        // 
 | 
			
		||||
        // _BaseDirectory
 | 
			
		||||
        // 
 | 
			
		||||
        this._BaseDirectory.AutoSize = true;
 | 
			
		||||
        this._BaseDirectory.Location = new System.Drawing.Point(5, 55);
 | 
			
		||||
        this._BaseDirectory.Name = "BaseDirectory";
 | 
			
		||||
        this._BaseDirectory.Size = new System.Drawing.Size(68, 16);
 | 
			
		||||
        this._BaseDirectory.Text = "BaseDirectory";
 | 
			
		||||
        this._BaseDirectory.ForeColor = Color.White;
 | 
			
		||||
        // 
 | 
			
		||||
        // _CommandLineArgs
 | 
			
		||||
        // 
 | 
			
		||||
        this._CommandLineArgs.AutoSize = true;
 | 
			
		||||
        this._CommandLineArgs.Location = new System.Drawing.Point(5, 105);
 | 
			
		||||
        this._CommandLineArgs.Name = "CurrentDirectory";
 | 
			
		||||
        this._CommandLineArgs.Size = new System.Drawing.Size(68, 16);
 | 
			
		||||
        this._CommandLineArgs.Text = "CurrentDirectory";
 | 
			
		||||
        this._CommandLineArgs.ForeColor = Color.White;
 | 
			
		||||
        // 
 | 
			
		||||
        // _CurrentDirectory
 | 
			
		||||
        // 
 | 
			
		||||
        this._CurrentDirectory.AutoSize = true;
 | 
			
		||||
        this._CurrentDirectory.Location = new System.Drawing.Point(5, 155);
 | 
			
		||||
        this._CurrentDirectory.Name = "CurrentDirectory";
 | 
			
		||||
        this._CurrentDirectory.Size = new System.Drawing.Size(68, 16);
 | 
			
		||||
        this._CurrentDirectory.Text = "CurrentDirectory";
 | 
			
		||||
        this._CurrentDirectory.ForeColor = Color.White;
 | 
			
		||||
        // 
 | 
			
		||||
        // _WebBrowser
 | 
			
		||||
        // 
 | 
			
		||||
        this._WebBrowser.Location = new System.Drawing.Point(5, 205);
 | 
			
		||||
        this._WebBrowser.MinimumSize = new System.Drawing.Size(20, 20);
 | 
			
		||||
        this._WebBrowser.Name = "WebBrowser";
 | 
			
		||||
        this._WebBrowser.ScriptErrorsSuppressed = true;
 | 
			
		||||
        this._WebBrowser.Size = new System.Drawing.Size(1008, 729);
 | 
			
		||||
        this._WebBrowser.Visible = false;
 | 
			
		||||
        this._WebBrowser.DocumentCompleted += new System.Windows.Forms.WebBrowserDocumentCompletedEventHandler(this.WebBrowser_DocumentCompleted);
 | 
			
		||||
        // 
 | 
			
		||||
        this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None;
 | 
			
		||||
        this.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(39)))), ((int)(((byte)(43)))), ((int)(((byte)(48)))));
 | 
			
		||||
        this.ClientSize = new System.Drawing.Size(1008, 729);
 | 
			
		||||
        this.Controls.Add(this._Go);
 | 
			
		||||
        this.Controls.Add(this._NoGo);
 | 
			
		||||
        this.Controls.Add(this._Cancel);
 | 
			
		||||
        this.Controls.Add(this._WebBrowser);
 | 
			
		||||
        this.Controls.Add(this._BaseDirectory);
 | 
			
		||||
        this.Controls.Add(this._CommandLineArgs);
 | 
			
		||||
        this.Controls.Add(this._CurrentDirectory);
 | 
			
		||||
        this.Font = new System.Drawing.Font("Tahoma", 9.75F);
 | 
			
		||||
        this.Load += new System.EventHandler(this.Form_Load);
 | 
			
		||||
        this.ResumeLayout(false);
 | 
			
		||||
        this.PerformLayout();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    internal System.Windows.Forms.Button _Go;
 | 
			
		||||
    internal System.Windows.Forms.Button _NoGo;
 | 
			
		||||
    internal System.Windows.Forms.Button _Cancel;
 | 
			
		||||
    internal System.Windows.Forms.Label _BaseDirectory;
 | 
			
		||||
    internal System.Windows.Forms.Label _CommandLineArgs;
 | 
			
		||||
    internal System.Windows.Forms.WebBrowser _WebBrowser;
 | 
			
		||||
    internal System.Windows.Forms.Label _CurrentDirectory;
 | 
			
		||||
 | 
			
		||||
    #endregion
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										62
									
								
								WinForms/Form1.cs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										62
									
								
								WinForms/Form1.cs
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,62 @@
 | 
			
		||||
namespace WinForms;
 | 
			
		||||
 | 
			
		||||
public partial class Form1 : Form
 | 
			
		||||
{
 | 
			
		||||
    public Form1() =>
 | 
			
		||||
        InitializeComponent();
 | 
			
		||||
 | 
			
		||||
    private void Form_Load(object sender, EventArgs e)
 | 
			
		||||
    {
 | 
			
		||||
        try
 | 
			
		||||
        {
 | 
			
		||||
            _BaseDirectory.Text = AppContext.BaseDirectory;
 | 
			
		||||
            _CurrentDirectory.Text = Environment.CurrentDirectory;
 | 
			
		||||
            _CommandLineArgs.Text = string.Join(' ', Environment.GetCommandLineArgs());
 | 
			
		||||
            _WebBrowser.Navigate("https://oi-metrology-viewer-prod.mes.infineon.com/Export");
 | 
			
		||||
        }
 | 
			
		||||
        catch (Exception ex) { CatchException(ex); }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    private static void CatchException(Exception ex) =>
 | 
			
		||||
        _ = MessageBox.Show(ex.StackTrace, ex.Message);
 | 
			
		||||
 | 
			
		||||
    private void Go_Click(object sender, EventArgs e)
 | 
			
		||||
    {
 | 
			
		||||
        try
 | 
			
		||||
        {
 | 
			
		||||
            Environment.ExitCode = 1;
 | 
			
		||||
            Application.Exit();
 | 
			
		||||
        }
 | 
			
		||||
        catch (Exception ex) { CatchException(ex); }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    private void NoGo_Click(object sender, EventArgs e)
 | 
			
		||||
    {
 | 
			
		||||
        try
 | 
			
		||||
        {
 | 
			
		||||
            Environment.ExitCode = 2;
 | 
			
		||||
            Application.Exit();
 | 
			
		||||
        }
 | 
			
		||||
        catch (Exception ex) { CatchException(ex); }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    private void Cancel_Click(object sender, EventArgs e)
 | 
			
		||||
    {
 | 
			
		||||
        try
 | 
			
		||||
        {
 | 
			
		||||
            Environment.ExitCode = -1;
 | 
			
		||||
            Application.Exit();
 | 
			
		||||
        }
 | 
			
		||||
        catch (Exception ex) { CatchException(ex); }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    private void WebBrowser_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
 | 
			
		||||
    {
 | 
			
		||||
        try
 | 
			
		||||
        {
 | 
			
		||||
            _WebBrowser.Visible = true;
 | 
			
		||||
        }
 | 
			
		||||
        catch (Exception ex) { CatchException(ex); }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										11
									
								
								WinForms/OI.Metrology.WinForms.csproj
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										11
									
								
								WinForms/OI.Metrology.WinForms.csproj
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,11 @@
 | 
			
		||||
<Project Sdk="Microsoft.NET.Sdk">
 | 
			
		||||
  <PropertyGroup>
 | 
			
		||||
    <OutputType>WinExe</OutputType>
 | 
			
		||||
    <TargetFramework>net8.0-windows</TargetFramework>
 | 
			
		||||
    <Nullable>enable</Nullable>
 | 
			
		||||
    <RuntimeIdentifier>win-x64</RuntimeIdentifier>
 | 
			
		||||
    <UseWindowsForms>true</UseWindowsForms>
 | 
			
		||||
    <ImplicitUsings>enable</ImplicitUsings>
 | 
			
		||||
    <UserSecretsId>a98b14f0-fc21-4f31-a1e4-1337f6c60100</UserSecretsId>
 | 
			
		||||
  </PropertyGroup>
 | 
			
		||||
</Project>
 | 
			
		||||
							
								
								
									
										16
									
								
								WinForms/Program.cs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										16
									
								
								WinForms/Program.cs
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,16 @@
 | 
			
		||||
namespace WinForms;
 | 
			
		||||
 | 
			
		||||
static class Program
 | 
			
		||||
{
 | 
			
		||||
    /// <summary>
 | 
			
		||||
    ///  The main entry point for the application.
 | 
			
		||||
    /// </summary>
 | 
			
		||||
    [STAThread]
 | 
			
		||||
    static void Main()
 | 
			
		||||
    {
 | 
			
		||||
        // To customize application configuration such as set high DPI settings or default font,
 | 
			
		||||
        // see https://aka.ms/applicationconfiguration.
 | 
			
		||||
        ApplicationConfiguration.Initialize();
 | 
			
		||||
        Application.Run(new Form1());
 | 
			
		||||
    }    
 | 
			
		||||
}
 | 
			
		||||
		Reference in New Issue
	
	Block a user