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
189 lines
9.0 KiB
C#
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;
|
|
}
|
|
|
|
} |