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:
133
FabApprovalWorkerService/Models/AppSettings.cs
Normal file
133
FabApprovalWorkerService/Models/AppSettings.cs
Normal 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 {
|
||||
}
|
@ -19,4 +19,4 @@ public class Approval {
|
||||
public int Step { get; set; } = 1;
|
||||
public string SubRoleCategoryItem { get; set; } = "";
|
||||
public int TaskID { get; set; }
|
||||
}
|
||||
}
|
@ -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; }
|
||||
}
|
||||
}
|
@ -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;
|
||||
}
|
||||
}
|
@ -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;
|
||||
}
|
||||
}
|
@ -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;
|
||||
}
|
||||
}
|
@ -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;
|
||||
}
|
||||
}
|
@ -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; }
|
||||
}
|
@ -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;
|
||||
}
|
||||
}
|
@ -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;
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user