Mike Phares 83789cdd91 Added ControllerExtensions to be used instead of HtmlViewRenderer for net8
Added HttpException class for missing HttpException for net8

Wrapped HttpContext.Session, GetJsonResult, IsAjaxRequest and GetUserIdentityName in controllers for net8

Added AuthenticationService to test Fab2ApprovalMKLink code for net8

Compile conditionally flags to debug in dotnet core
2025-05-19 13:29:54 -07:00

370 lines
16 KiB
C#

using Fab2ApprovalSystem.Models;
namespace Fab2ApprovalSystem.Misc;
#if !NET8
public class GlobalVars {
public int USER_ID;
#endif
#if NET8
public static class GlobalVars {
public static int USER_ID = 0;
#endif
public const string SESSION_USERNAME = "UserName";
public const string ApplicationName = "LotDisposition";
public const string SESSION_USERID = "UserID";
public const string ECN_VIEW_OPTION = "ECN_ViewOption";
public const string IS_ADMIN = "IsAdmin";
public const string IS_MANAGER = "IsManager";
public const string OOO = "OOO";
public const string SUCCESS = "Success";
public const string CAN_CREATE_PARTS_REQUEST = "CanCreatePartsRequest";
public const string LOT_NO = "LotNo";
public const string LOCATION = "Location";
public static AppSettings? AppSettings = null;
public static bool USER_ISADMIN = false;
public static bool IS_INFINEON_DOMAIN = false;
public static string hostURL = "";
public static string DBConnection = "TEST";
public static string DB_CONNECTION_STRING = "";
public static string AttachmentUrl = "";
public static string NDriveURL = "";
public static string WSR_URL = "";
public static string CA_BlankFormsLocation = "";
public static string SENDER_EMAIL = "MesaFabApproval@infineon.com";
public static string MesaTemplateFiles = "D:\\WebSites\\FabApprovalAttachments\\Template5Why";
public enum LotStatusOption {
Release = 1,
Scrap,
NotAvailable,
M_Suffix,
Select_Wafers,
CloseToQDB,
SplitOffHold
}
public enum ApprovalOption {
Pending = 0,
Approved = 1,
Denied = 2,
Waiting = 3, // waiting on other approver to approve first
Skipped = 4, // set to this state if the original approval is no longer needed.
ReAssigned = 5, // set to this state if current approver got reassigned
Terminated = 6, // future use
Closed = 7,
Recalled = 8
}
public enum WorkFLowStepNumber {
Step1 = 1,
Step2,
Step3
}
public enum DocumentType {
LotDisposition = 1,
MRB = 2,
ECN = 3,
EECN = 4,
TECNCancelledExpired = 5,
LotTraveler = 6,
ChangeControl = 7,
Audit = 8,
CorrectiveAction = 9,
PartsRequest = 10,
CorrectiveActionSection = 12
}
public enum TECNExpirationCancellation {
Cancellation = 1,
Expiration = 2
}
public enum Colors { None = 0, Red = 1, Green = 2, Blue = 4 };
public enum NotificationType {
WorkRequest = 1,
LotTraveler = 2
}
public enum CASection {
Main, D1, D2, D3, D4, D5, D6, D7, D8, CF
}
#if !NET8
public static void EndSession(System.Web.SessionState.HttpSessionState session) {
session[SESSION_USERNAME] = "";
session[SESSION_USERID] = "";
session[IS_ADMIN] = null;
}
public static bool IsAdminValueNull(System.Web.SessionState.HttpSessionState session) =>
session[IS_ADMIN] == null;
public static bool IsUserIdValueNotNull(System.Web.SessionState.HttpSessionState session) =>
session[SESSION_USERID] != null;
public static bool IsAdminValueNotNull(System.Web.SessionState.HttpSessionState session) =>
session[IS_ADMIN] != null;
public static bool IsUserNameNull(System.Web.SessionState.HttpSessionState session) =>
session[SESSION_USERNAME] == null;
public static bool IsAdmin(System.Web.SessionState.HttpSessionState session) =>
bool.Parse(session[IS_ADMIN].ToString());
public static bool IsManager(System.Web.SessionState.HttpSessionState session) =>
bool.Parse(session[IS_MANAGER].ToString());
public static bool IsOOO(System.Web.SessionState.HttpSessionState session) =>
bool.Parse(session[OOO].ToString());
public static bool GetCreateNewRevision(System.Web.SessionState.HttpSessionState session) =>
bool.Parse(session["CreateNewRevision"].ToString());
public static bool GetCreateLotTravNewRevision(System.Web.SessionState.HttpSessionState session) =>
bool.Parse(session["CreateLotTravNewRevision"].ToString());
public static int GetUserId(System.Web.SessionState.HttpSessionState session) =>
int.Parse(GetUserIdValue(session));
public static string GetUserIdValue(System.Web.SessionState.HttpSessionState session) =>
session[SESSION_USERID].ToString();
public static string GetJWT(System.Web.SessionState.HttpSessionState session) =>
session["JWT"].ToString();
public static string GetRefreshToken(System.Web.SessionState.HttpSessionState session) =>
session["RefreshToken"].ToString();
public static string GetAllDocumentsFilterData(System.Web.SessionState.HttpSessionState session) =>
session["AllDocumentsFilterData"].ToString();
public static string GetSWRFilterData(System.Web.SessionState.HttpSessionState session) =>
session["SWRFilterData"].ToString();
public static string GetPCRBFilterData(System.Web.SessionState.HttpSessionState session) =>
session["PCRBFilterData"].ToString();
public static string GetUserName(System.Web.SessionState.HttpSessionState session) =>
session[SESSION_USERNAME].ToString();
public static bool GetCanCreatePartsRequest(System.Web.SessionState.HttpSessionState session) =>
bool.Parse(session[CAN_CREATE_PARTS_REQUEST].ToString());
public static void SetECNViewOption(System.Web.SessionState.HttpSessionState session, string value) =>
session[ECN_VIEW_OPTION] = value;
public static void SetCreateNewRevision(System.Web.SessionState.HttpSessionState session, bool value) =>
session["CreateNewRevision"] = value;
public static void SetSWRFilterData(System.Web.SessionState.HttpSessionState session, string value) =>
session["SWRFilterData"] = value;
public static void SetPCRBFilterData(System.Web.SessionState.HttpSessionState session, string value) =>
session["PCRBFilterData"] = value;
public static void SetAllDocumentsFilterData(System.Web.SessionState.HttpSessionState session, string value) =>
session["AllDocumentsFilterData"] = value;
public static void SetCreateLotTravNewRevision(System.Web.SessionState.HttpSessionState session, bool value) =>
session["CreateLotTravNewRevision"] = value;
public static void SetOOO(System.Web.SessionState.HttpSessionState session, bool value) =>
session[OOO] = value;
public static bool IsAdminValueNull(System.Web.HttpSessionStateBase session) =>
session[IS_ADMIN] == null;
public static bool IsUserIdValueNotNull(System.Web.HttpSessionStateBase session) =>
session[SESSION_USERID] != null;
public static bool IsAdminValueNotNull(System.Web.HttpSessionStateBase session) =>
session[IS_ADMIN] != null;
public static bool IsUserNameNull(System.Web.HttpSessionStateBase session) =>
session[SESSION_USERNAME] == null;
public static bool IsAdmin(System.Web.HttpSessionStateBase session) =>
bool.Parse(session[IS_ADMIN].ToString());
public static bool IsManager(System.Web.HttpSessionStateBase session) =>
bool.Parse(session[IS_MANAGER].ToString());
public static bool IsOOO(System.Web.HttpSessionStateBase session) =>
bool.Parse(session[OOO].ToString());
public static bool GetCreateNewRevision(System.Web.HttpSessionStateBase session) =>
bool.Parse(session["CreateNewRevision"].ToString());
public static bool GetCreateLotTravNewRevision(System.Web.HttpSessionStateBase session) =>
bool.Parse(session["CreateLotTravNewRevision"].ToString());
public static int GetUserId(System.Web.HttpSessionStateBase session) =>
int.Parse(GetUserIdValue(session));
public static string GetUserIdValue(System.Web.HttpSessionStateBase session) =>
session[SESSION_USERID].ToString();
public static string GetJWT(System.Web.HttpSessionStateBase session) =>
session["JWT"].ToString();
public static string GetRefreshToken(System.Web.HttpSessionStateBase session) =>
session["RefreshToken"].ToString();
public static string GetAllDocumentsFilterData(System.Web.HttpSessionStateBase session) =>
session["AllDocumentsFilterData"].ToString();
public static string GetSWRFilterData(System.Web.HttpSessionStateBase session) =>
session["SWRFilterData"].ToString();
public static string GetPCRBFilterData(System.Web.HttpSessionStateBase session) =>
session["PCRBFilterData"].ToString();
public static string GetUserName(System.Web.HttpSessionStateBase session) =>
session[SESSION_USERNAME].ToString();
public static bool GetCanCreatePartsRequest(System.Web.HttpSessionStateBase session) =>
bool.Parse(session[CAN_CREATE_PARTS_REQUEST].ToString());
public static void SetECNViewOption(System.Web.HttpSessionStateBase session, string value) =>
session[ECN_VIEW_OPTION] = value;
public static void SetCreateNewRevision(System.Web.HttpSessionStateBase session, bool value) =>
session["CreateNewRevision"] = value;
public static void SetSWRFilterData(System.Web.HttpSessionStateBase session, string value) =>
session["SWRFilterData"] = value;
public static void SetPCRBFilterData(System.Web.HttpSessionStateBase session, string value) =>
session["PCRBFilterData"] = value;
public static void SetAllDocumentsFilterData(System.Web.HttpSessionStateBase session, string value) =>
session["AllDocumentsFilterData"] = value;
public static void SetCreateLotTravNewRevision(System.Web.HttpSessionStateBase session, bool value) =>
session["CreateLotTravNewRevision"] = value;
public static void SetOOO(System.Web.HttpSessionStateBase session, bool value) =>
session[OOO] = value;
public static void SetSessionParameters(System.Web.HttpSessionStateBase session, LoginResult loginResult, LoginModel user) {
session["JWT"] = loginResult.AuthTokens.JwtToken;
session["RefreshToken"] = loginResult.AuthTokens.RefreshToken;
session[SESSION_USERID] = user.UserID;
session[SESSION_USERNAME] = user.FullName;
session[IS_ADMIN] = user.IsAdmin;
session[IS_MANAGER] = user.IsManager;
session[OOO] = user.OOO;
bool check = user.IsAdmin || Fab2ApprovalSystem.Controllers.PartsRequestController.CanCreatePartsRequest(user.UserID);
session[CAN_CREATE_PARTS_REQUEST] = check;
}
#endif
#if NET8
public static bool IsAdminValueNull(Microsoft.AspNetCore.Http.ISession session) =>
Microsoft.AspNetCore.Http.SessionExtensions.Get(session, IS_ADMIN) == null;
public static bool IsUserIdValueNotNull(Microsoft.AspNetCore.Http.ISession session) =>
Microsoft.AspNetCore.Http.SessionExtensions.Get(session, SESSION_USERID) != null;
public static bool IsAdminValueNotNull(Microsoft.AspNetCore.Http.ISession session) =>
Microsoft.AspNetCore.Http.SessionExtensions.Get(session, IS_ADMIN) != null;
public static bool IsUserNameNull(Microsoft.AspNetCore.Http.ISession session) =>
Microsoft.AspNetCore.Http.SessionExtensions.Get(session, SESSION_USERNAME) == null;
public static bool IsAdmin(Microsoft.AspNetCore.Http.ISession session) =>
bool.Parse(Microsoft.AspNetCore.Http.SessionExtensions.GetString(session, IS_ADMIN));
public static bool IsManager(Microsoft.AspNetCore.Http.ISession session) =>
bool.Parse(Microsoft.AspNetCore.Http.SessionExtensions.GetString(session, IS_MANAGER));
public static bool IsOOO(Microsoft.AspNetCore.Http.ISession session) =>
bool.Parse(Microsoft.AspNetCore.Http.SessionExtensions.GetString(session, OOO));
public static bool GetCreateNewRevision(Microsoft.AspNetCore.Http.ISession session) =>
bool.Parse(Microsoft.AspNetCore.Http.SessionExtensions.GetString(session, "CreateNewRevision"));
public static bool GetCreateLotTravNewRevision(Microsoft.AspNetCore.Http.ISession session) =>
bool.Parse(Microsoft.AspNetCore.Http.SessionExtensions.GetString(session, "CreateLotTravNewRevision"));
public static int GetUserId(Microsoft.AspNetCore.Http.ISession session) =>
int.Parse(GetUserIdValue(session));
public static string GetUserIdValue(Microsoft.AspNetCore.Http.ISession session) =>
Microsoft.AspNetCore.Http.SessionExtensions.GetString(session, SESSION_USERID);
public static string GetJWT(Microsoft.AspNetCore.Http.ISession session) =>
Microsoft.AspNetCore.Http.SessionExtensions.GetString(session, "JWT");
public static string GetRefreshToken(Microsoft.AspNetCore.Http.ISession session) =>
Microsoft.AspNetCore.Http.SessionExtensions.GetString(session, "RefreshToken");
public static string GetAllDocumentsFilterData(Microsoft.AspNetCore.Http.ISession session) =>
Microsoft.AspNetCore.Http.SessionExtensions.GetString(session, "AllDocumentsFilterData");
public static string GetSWRFilterData(Microsoft.AspNetCore.Http.ISession session) =>
Microsoft.AspNetCore.Http.SessionExtensions.GetString(session, "SWRFilterData");
public static string GetPCRBFilterData(Microsoft.AspNetCore.Http.ISession session) =>
Microsoft.AspNetCore.Http.SessionExtensions.GetString(session, "PCRBFilterData");
public static string GetUserName(Microsoft.AspNetCore.Http.ISession session) =>
Microsoft.AspNetCore.Http.SessionExtensions.GetString(session, SESSION_USERNAME);
public static bool GetCanCreatePartsRequest(Microsoft.AspNetCore.Http.ISession session) =>
bool.Parse(Microsoft.AspNetCore.Http.SessionExtensions.GetString(session, CAN_CREATE_PARTS_REQUEST));
public static void SetECNViewOption(Microsoft.AspNetCore.Http.ISession session, string value) =>
Microsoft.AspNetCore.Http.SessionExtensions.SetString(session, ECN_VIEW_OPTION, value);
public static void SetSWRFilterData(Microsoft.AspNetCore.Http.ISession session, string value) =>
Microsoft.AspNetCore.Http.SessionExtensions.SetString(session, "SWRFilterData", value);
public static void SetPCRBFilterData(Microsoft.AspNetCore.Http.ISession session, string value) =>
Microsoft.AspNetCore.Http.SessionExtensions.SetString(session, "PCRBFilterData", value);
public static void SetAllDocumentsFilterData(Microsoft.AspNetCore.Http.ISession session, string value) =>
Microsoft.AspNetCore.Http.SessionExtensions.SetString(session, "AllDocumentsFilterData", value);
public static void SetCreateNewRevision(Microsoft.AspNetCore.Http.ISession session, bool value) =>
Microsoft.AspNetCore.Http.SessionExtensions.SetString(session, "CreateNewRevision", value.ToString());
public static void SetCreateLotTravNewRevision(Microsoft.AspNetCore.Http.ISession session, bool value) =>
Microsoft.AspNetCore.Http.SessionExtensions.SetString(session, "CreateLotTravNewRevision", value.ToString());
public static void SetOOO(Microsoft.AspNetCore.Http.ISession session, bool value) =>
Microsoft.AspNetCore.Http.SessionExtensions.SetString(session, OOO, value.ToString());
public static void SetSessionParameters(Microsoft.AspNetCore.Http.ISession session, LoginResult loginResult, LoginModel user) {
Microsoft.AspNetCore.Http.SessionExtensions.SetString(session, "JWT", loginResult.AuthTokens.JwtToken);
Microsoft.AspNetCore.Http.SessionExtensions.SetString(session, "RefreshToken", loginResult.AuthTokens.RefreshToken);
Microsoft.AspNetCore.Http.SessionExtensions.SetInt32(session, SESSION_USERID, user.UserID);
Microsoft.AspNetCore.Http.SessionExtensions.SetString(session, SESSION_USERNAME, user.FullName);
Microsoft.AspNetCore.Http.SessionExtensions.SetString(session, IS_ADMIN, user.IsAdmin.ToString());
Microsoft.AspNetCore.Http.SessionExtensions.SetString(session, IS_MANAGER, user.IsManager.ToString());
Microsoft.AspNetCore.Http.SessionExtensions.SetString(session, OOO, user.OOO.ToString());
// bool check = user.IsAdmin || Fab2ApprovalSystem.Controllers.PartsRequestController.CanCreatePartsRequest(user.UserID);
// Microsoft.AspNetCore.Http.SessionExtensions.SetString(session, CAN_CREATE_PARTS_REQUEST, check.ToString());
}
#endif
}