Mike Phares b1c6903c1c Tasks 184281, 184799, 184800, 184801 and 184802
Align .editorconfig files

Move Controller logic to DMO classes

GlobalVars.AppSettings = Models.AppSettings.GetFromConfigurationManager();

Question EditorConfig
Project level editorconfig
Format White Spaces
AppSetting when EnvironmentVariable not set
Corrective Actions Tests
Schedule Actions Tests
DMO Tests
Controller Tests

Get ready to use VSCode IDE
2024-12-04 11:58:13 -07:00

189 lines
9.0 KiB
C#

using System;
using System.Collections.Generic;
using System.Configuration;
using System.Linq;
namespace Fab2ApprovalSystem.Models;
public class AppSettings {
internal AppSettings(string adminNotificationRecepient,
string? apiBaseUrl,
string attachmentFolder,
string? attachmentUrl,
string caBlankFormsLocation,
string? company,
string dBConnection,
string dbConnectionString,
string ftpPassword,
string ftpServer,
string ftpUser,
string holdFlagDirectory,
string hostURL,
string ifxContainer,
string ifxDomain,
bool isInfineonDomain,
string lotTempPipeLine,
string mesaTemplateFiles,
string naContainer,
string naDomain,
string nDriveURL,
string notificationSender,
string senderEmail,
string? smtpServer,
string spnMRBHoldFlagFTPLogDirectory,
string testEmailRecipients,
string urls,
int userId,
bool userIsAdmin,
string wsrURL,
string? workingDirectoryName) {
AdminNotificationRecepient = adminNotificationRecepient;
ApiBaseUrl = apiBaseUrl;
AttachmentFolder = attachmentFolder;
AttachmentUrl = attachmentUrl;
CABlankFormsLocation = caBlankFormsLocation;
Company = company;
DBConnection = dBConnection;
DBConnectionString = dbConnectionString;
FTPPassword = ftpPassword;
FTPServer = ftpServer;
FTPUser = ftpUser;
HoldFlagDirectory = holdFlagDirectory;
HostURL = hostURL;
IFXContainer = ifxContainer;
IFXDomain = ifxDomain;
IsInfineonDomain = isInfineonDomain;
LotTempPipeLine = lotTempPipeLine;
MesaTemplateFiles = mesaTemplateFiles;
NAContainer = naContainer;
NADomain = naDomain;
NDriveURL = nDriveURL;
NotificationSender = notificationSender;
SenderEmail = senderEmail;
SMTPServer = smtpServer;
SPNMRBHoldFlagFTPLogDirectory = spnMRBHoldFlagFTPLogDirectory;
TestEmailRecipients = testEmailRecipients;
URLs = urls;
UserId = userId;
UserIsAdmin = userIsAdmin;
WSR_URL = wsrURL;
WorkingDirectoryName = workingDirectoryName;
}
public string AdminNotificationRecepient { get; }
public string? ApiBaseUrl { get; }
public string AttachmentFolder { get; }
public string? AttachmentUrl { get; }
public string CABlankFormsLocation { get; }
public string? Company { get; }
public string DBConnection { get; }
public string DBConnectionString { get; }
public string FTPPassword { get; }
public string FTPServer { get; }
public string FTPUser { get; }
public string HoldFlagDirectory { get; }
public string HostURL { get; }
public string IFXContainer { get; }
public string IFXDomain { get; }
public bool IsInfineonDomain { get; }
public string LotTempPipeLine { get; }
public string MesaTemplateFiles { get; }
public string NAContainer { get; }
public string NADomain { get; }
public string NDriveURL { get; }
public string NotificationSender { get; }
public string SenderEmail { get; }
public string? SMTPServer { get; }
public string SPNMRBHoldFlagFTPLogDirectory { get; }
public string TestEmailRecipients { get; }
public string URLs { get; }
public int UserId { get; }
public bool UserIsAdmin { get; }
public string WSR_URL { get; }
public string? WorkingDirectoryName { get; }
#if NET8
public static AppSettings Get(Microsoft.Extensions.Configuration.IConfigurationRoot configurationRoot) {
AppSettings? result;
try {
#pragma warning disable IL3050, IL2026
result = Microsoft.Extensions.Configuration.ConfigurationBinder.Get<AppSettings>(configurationRoot) ?? throw new Exception();
#pragma warning restore IL3050, IL2026
} catch (Exception) {
List<string> paths = [];
foreach (Microsoft.Extensions.Configuration.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;
}
#endif
internal static AppSettings LoadConfigurationManager() {
AppSettings result;
int userId = 0;
string adminNotificationRecepient = ConfigurationManager.ConnectionStrings["Admin Notification Recepient"].ToString();
string attachmentFolder = ConfigurationManager.ConnectionStrings["AttachmentFolder"].ToString();
string ftpPassword = ConfigurationManager.ConnectionStrings["FTP Password"].ToString();
string ftpServer = ConfigurationManager.ConnectionStrings["FTP Server"].ToString();
string ftpUser = ConfigurationManager.ConnectionStrings["FTP User"].ToString();
string holdFlagDirectory = ConfigurationManager.ConnectionStrings["HoldFlagDirectory"].ToString();
string ifxContainer = ConfigurationManager.ConnectionStrings["IFXContainer"].ToString();
string ifxDomain = ConfigurationManager.ConnectionStrings["IFXDomain"].ToString();
string lotTempPipeLine = ConfigurationManager.ConnectionStrings["LotTempPipeLine"].ToString();
string naContainer = ConfigurationManager.ConnectionStrings["NAContainer"].ToString();
string naDomain = ConfigurationManager.ConnectionStrings["NADomain"].ToString();
string notificationSender = ConfigurationManager.ConnectionStrings["Notification Sender"].ToString();
string spnMRBHoldFlagFTPLogDirectory = ConfigurationManager.ConnectionStrings["SPNMRBHoldFlagFTPLogDirectory"].ToString();
string testEmailRecipients = ConfigurationManager.ConnectionStrings["Test Email Recipients"].ToString();
string? apiBaseUrl = ConfigurationManager.ConnectionStrings["FabApprovalApiBaseUrl"]?.ToString();
string? attachmentUrl = ConfigurationManager.ConnectionStrings["AttachmentUrl"]?.ToString();
string? company = ConfigurationManager.ConnectionStrings["Company"]?.ToString();
string? smtpServer = ConfigurationManager.ConnectionStrings["SMTP Server"]?.ToString();
string? urls = ConfigurationManager.ConnectionStrings["URLs"]?.ToString();
string? workingDirectoryName = ConfigurationManager.ConnectionStrings["WorkingDirectoryName"]?.ToString();
result = new(adminNotificationRecepient: adminNotificationRecepient,
apiBaseUrl: apiBaseUrl,
attachmentFolder: attachmentFolder,
attachmentUrl: attachmentUrl,
caBlankFormsLocation: Misc.GlobalVars.CA_BlankFormsLocation,
company: company,
dBConnection: Misc.GlobalVars.DBConnection,
dbConnectionString: Misc.GlobalVars.DB_CONNECTION_STRING,
ftpPassword: ftpPassword,
ftpServer: ftpServer,
ftpUser: ftpUser,
holdFlagDirectory: holdFlagDirectory,
hostURL: Misc.GlobalVars.hostURL,
ifxContainer: ifxContainer,
ifxDomain: ifxDomain,
isInfineonDomain: Misc.GlobalVars.IS_INFINEON_DOMAIN,
lotTempPipeLine: lotTempPipeLine,
mesaTemplateFiles: Misc.GlobalVars.MesaTemplateFiles,
naContainer: naContainer,
naDomain: naDomain,
nDriveURL: Misc.GlobalVars.NDriveURL,
notificationSender: notificationSender,
senderEmail: Misc.GlobalVars.SENDER_EMAIL,
smtpServer: smtpServer,
spnMRBHoldFlagFTPLogDirectory: spnMRBHoldFlagFTPLogDirectory,
testEmailRecipients: testEmailRecipients,
urls: urls,
userId: userId,
userIsAdmin: Misc.GlobalVars.USER_ISADMIN,
wsrURL: Misc.GlobalVars.WSR_URL,
workingDirectoryName: workingDirectoryName);
return result;
}
}