Pull Request 33523 suggestions

Pull Request 33520 suggestions

Injected AppSettings instead of using GetEnvironmentVariable at Services level

When debugging only
app.Services.GetRequiredService<IPCRBService>();

Get ready to use VSCode IDE

Align .editorconfig files
This commit is contained in:
2024-12-03 10:48:07 -07:00
parent 08fcd985ea
commit 7be540964a
59 changed files with 2821 additions and 214 deletions

View File

@ -0,0 +1,133 @@
using System.Text.Json;
using System.Text.Json.Serialization;
namespace FabApprovalWorkerService.Models;
public record AppSettings(string AsmHtrTrainingGroupName,
string CleansTrainingGroupName,
string EpiProTrainingGroupName,
string BaseUrl,
string Company,
string DbConnectionString,
string EnvironmentName,
bool ShouldSendEmail,
string WorkerServiceMonInResource,
string FqaTrainingGroupName,
string MonInSite,
string NewBaseUrl,
string OldBaseUrl,
string PackagingAndLabelingTrainingGroupName,
string SiProductionTrainingGroupName,
string UserCertificationRecordsFilePath,
string WorkingDirectoryName) {
public override string ToString() {
string result = JsonSerializer.Serialize(this, AppSettingsSourceGenerationContext.Default.AppSettings);
return result;
}
public static AppSettings Get(IConfigurationRoot configurationRoot) {
AppSettings? result;
try {
#pragma warning disable IL3050, IL2026
result = configurationRoot.Get<AppSettings>() ?? throw new Exception();
#pragma warning restore IL3050, IL2026
} catch (Exception) {
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())}");
}
return result;
}
internal static void SetEnvironmentVariables(HostApplicationBuilder builder) {
builder.Configuration.AddUserSecrets<Program>();
AppSettings appSettings = Get(builder.Configuration);
Environment.SetEnvironmentVariable("AsmHtrTrainingGroupName", appSettings.AsmHtrTrainingGroupName);
Environment.SetEnvironmentVariable("CleansTrainingGroupName", appSettings.CleansTrainingGroupName);
Environment.SetEnvironmentVariable("EpiProTrainingGroupName", appSettings.EpiProTrainingGroupName);
Environment.SetEnvironmentVariable("FabApprovalBaseUrl", appSettings.BaseUrl);
Environment.SetEnvironmentVariable("FabApprovalDbConnectionString", appSettings.DbConnectionString);
Environment.SetEnvironmentVariable("FabApprovalEnvironmentName", appSettings.EnvironmentName);
Environment.SetEnvironmentVariable("FabApprovalShouldSendEmail", appSettings.ShouldSendEmail.ToString());
Environment.SetEnvironmentVariable("FabApprovalWorkerServiceMonInResource", appSettings.WorkerServiceMonInResource);
Environment.SetEnvironmentVariable("FqaTrainingGroupName", appSettings.FqaTrainingGroupName);
Environment.SetEnvironmentVariable("MonInSite", appSettings.MonInSite);
Environment.SetEnvironmentVariable("NewFabApprovalBaseUrl", appSettings.NewBaseUrl);
Environment.SetEnvironmentVariable("OldFabApprovalUrl", appSettings.OldBaseUrl);
Environment.SetEnvironmentVariable("PackagingAndLabelingTrainingGroupName", appSettings.PackagingAndLabelingTrainingGroupName);
Environment.SetEnvironmentVariable("SiProductionTrainingGroupName", appSettings.SiProductionTrainingGroupName);
Environment.SetEnvironmentVariable("UserCertificationRecordsFilePath", appSettings.UserCertificationRecordsFilePath);
}
internal static AppSettings LoadEnvironmentVariables() {
AppSettings result;
try {
string asmHtrTrainingGroupName = Environment.GetEnvironmentVariable("AsmHtrTrainingGroupName") ??
throw new ArgumentNullException("AsmHtrTrainingGroupName environment variable not found");
string cleansTrainingGroupName = Environment.GetEnvironmentVariable("CleansTrainingGroupName") ??
throw new ArgumentNullException("CleansTrainingGroupName environment variable not found");
string epiProTrainingGroupName = Environment.GetEnvironmentVariable("EpiProTrainingGroupName") ??
throw new ArgumentNullException("EpiProTrainingGroupName environment variable not found");
string baseUrl = Environment.GetEnvironmentVariable("FabApprovalBaseUrl") ??
throw new ArgumentNullException("FabApprovalBaseUrl environment variable not found");
string dbConnectionString = Environment.GetEnvironmentVariable("FabApprovalDbConnectionString") ??
throw new ArgumentNullException("FabApprovalDbConnectionString environment variable not found");
string environmentName = Environment.GetEnvironmentVariable("FabApprovalEnvironmentName") ??
throw new ArgumentNullException("FabApprovalEnvironmentName environment variable not found");
if (!bool.TryParse(Environment.GetEnvironmentVariable("FabApprovalShouldSendEmail"), out bool shouldSendEmail))
throw new ArgumentNullException("FabApprovalShouldSendEmail environment variable not found");
string workerServiceMonInResource = Environment.GetEnvironmentVariable("FabApprovalWorkerServiceMonInResource") ??
throw new ArgumentNullException("FabApprovalWorkerServiceMonInResource environment variable not found");
string fqaTrainingGroupName = Environment.GetEnvironmentVariable("FqaTrainingGroupName") ??
throw new ArgumentNullException("FqaTrainingGroupName environment variable not found");
string monInSite = Environment.GetEnvironmentVariable("MonInSite") ??
throw new ArgumentNullException("MonInSite environment variable not found");
string newBaseUrl = Environment.GetEnvironmentVariable("NewFabApprovalBaseUrl") ??
throw new ArgumentNullException("NewFabApprovalBaseUrl environment variable not found");
string oldBaseUrl = Environment.GetEnvironmentVariable("OldFabApprovalUrl") ??
throw new ArgumentNullException("OldFabApprovalUrl environment variable not found");
string packagingAndLabelingTrainingGroupName = Environment.GetEnvironmentVariable("PackagingAndLabelingTrainingGroupName") ??
throw new ArgumentNullException("PackagingAndLabelingTrainingGroupName environment variable not found");
string siProductionTrainingGroupName = Environment.GetEnvironmentVariable("SiProductionTrainingGroupName") ??
throw new ArgumentNullException("SiProductionTrainingGroupName environment variable not found");
string userCertificationRecordsFilePath = Environment.GetEnvironmentVariable("UserCertificationRecordsFilePath") ??
throw new ArgumentNullException("UserCertificationRecordsFilePath environment variable not found");
result = new(AsmHtrTrainingGroupName: asmHtrTrainingGroupName,
CleansTrainingGroupName: cleansTrainingGroupName,
EpiProTrainingGroupName: epiProTrainingGroupName,
BaseUrl: baseUrl,
Company: "Infineon Technologies Americas Corp.",
DbConnectionString: dbConnectionString,
EnvironmentName: environmentName,
ShouldSendEmail: shouldSendEmail,
WorkerServiceMonInResource: workerServiceMonInResource,
FqaTrainingGroupName: fqaTrainingGroupName,
MonInSite: monInSite,
NewBaseUrl: newBaseUrl,
OldBaseUrl: oldBaseUrl,
PackagingAndLabelingTrainingGroupName: packagingAndLabelingTrainingGroupName,
SiProductionTrainingGroupName: siProductionTrainingGroupName,
UserCertificationRecordsFilePath: userCertificationRecordsFilePath,
WorkingDirectoryName: "IFXApps");
} catch (Exception ex) {
NLog.LogManager.GetCurrentClassLogger().Error($"Unable to load environment variables, because {ex.Message}");
throw;
}
return result;
}
}
[JsonSourceGenerationOptions(WriteIndented = true)]
[JsonSerializable(typeof(AppSettings))]
internal partial class AppSettingsSourceGenerationContext : JsonSerializerContext {
}

View File

@ -19,4 +19,4 @@ public class Approval {
public int Step { get; set; } = 1;
public string SubRoleCategoryItem { get; set; } = "";
public int TaskID { get; set; }
}
}

View File

@ -1,10 +1,10 @@
namespace FabApprovalWorkerService.Models;
public class CorrectiveAction {
public required int CANo { get; set; }
public required int CANo { get; set; }
public bool ApprovalStatus { get; set; }
public DateTime FollowUpDate { get; set; }
public DateTime ClosedDate { get; set; }
public int QAID { get; set; }
public required string CATitle { get; set; }
}
}

View File

@ -12,4 +12,4 @@ public class ECN {
public required int OriginatorID { get; set; }
public required string Title { get; set; }
public DateTime CloseDate { get; set; } = DateTime.MaxValue;
}
}

View File

@ -26,4 +26,4 @@ public class MRB {
public required string Status { get; set; }
public string Tool { get; set; } = "";
public string Category { get; set; } = string.Empty;
}
}

View File

@ -7,4 +7,4 @@ public class OOOTemp {
public required DateTime OOOStartDate { get; set; }
public required DateTime OOOExpirationDate { get; set; }
public bool Processed { get; set; } = false;
}
}

View File

@ -15,4 +15,4 @@ public class PCRB {
public DateTime InsertTimeStamp { get; set; } = DateTimeUtilities.MIN_DT;
public DateTime LastUpdateDate { get; set; } = DateTimeUtilities.MIN_DT;
public DateTime ClosedDate { get; set; } = DateTimeUtilities.MAX_DT;
}
}

View File

@ -12,5 +12,5 @@ public class TrainingAssignment {
public bool status { get; set; } = false;
public bool Deleted { get; set; } = false;
public DateTime DeletedDate { get; set; }
public DateTime LastNotification { get; set; }
}
public DateTime LastNotification { get; set; }
}

View File

@ -1,7 +1,7 @@
using Dapper.Contrib.Extensions;
namespace FabApprovalWorkerService.Models;
[Table ("Users")]
[Table("Users")]
public class User {
[Key]
public required int UserID { get; set; }
@ -16,7 +16,7 @@ public class User {
public DateTime OOOStartDate { get; set; }
public DateTime OOOExpirationDate { get; set; }
public int DelegatedTo { get; set; }
public required bool CanViewITAR { get; set; }
public required bool CanViewITAR { get; set; }
public required bool IsManager { get; set; }
public bool IsCleansCertified { get; set; } = false;
public bool IsAnyLevelCertified { get; set; } = false;
@ -25,4 +25,4 @@ public class User {
public bool IsFqaCertified { get; set; } = false;
public bool IsFqaAssessmentCertified { get; set; } = false;
public bool IsActive { get; set; } = false;
}
}

View File

@ -5,4 +5,4 @@ public class UserSubRole {
public required int UserID { get; set; }
public required int SubRoleID { get; set; }
public bool Delegated { get; set; } = false;
}
}