+
+
+
+

+

+
@Model.DisplayFullName
+
+ - @Model.Title
+ - @Model.Department
+ - @Model.Email (@Model.EmailHost)
+ - Login ID: @Model.LoginId
+ @if (!String.IsNullOrEmpty(Model.URI)){ - URI: @Model.URI
}
+ @if (!String.IsNullOrEmpty(Model.Phone)){ - Phone: @Model.Phone
}
+ @if (!String.IsNullOrEmpty(Model.Mobile)){ - Mobile: @Model.Mobile
}
+ @if (!String.IsNullOrEmpty(Model.Pager)){ - Pager: @Model.Pager
}
+ @if (!String.IsNullOrEmpty(Model.PostalAddress)){ - Address: @Model.PostalAddress
}
+ @if (!String.IsNullOrEmpty(Model.MothraId)){ - Mothra ID: @Model.MothraId
}
+ @if (!String.IsNullOrEmpty(Model.EmployeeId)){ - Employee ID: @Model.EmployeeId
}
+ @if (!String.IsNullOrEmpty(Model.StudentId)){ - Student ID: @Model.StudentId
}
+ @if (!String.IsNullOrEmpty(Model.IamId)){ - IAM ID: @Model.IamId
}
+ @if (!String.IsNullOrEmpty(Model.Pidm)){ - PIDM: @Model.Pidm
}
+ @if (!String.IsNullOrEmpty(Model.MivId.ToString())){ - MIV ID: @Model.MivId
}
+
+
+
+
+
+
+ @if (!String.IsNullOrEmpty(Model.EmployeeId)){ - Employee ID: @Model.EmployeeId
}
+ @if (!String.IsNullOrEmpty(Model.EmployeePrimaryTitle)){ - Primary Title: @Model.EmployeePrimaryTitle
}
+ @if (!String.IsNullOrEmpty(Model.EmployeeSchoolDivision)){ - School Division: @Model.EmployeeSchoolDivision
}
+ @if (!String.IsNullOrEmpty(Model.EmployeeStatus)){ - Status: @Model.EmployeeStatus
}
+ @if (!String.IsNullOrEmpty(Model.EmployeeTerm.ToString())){ - Term: @Model.EmployeeTerm
}
+ @if (!String.IsNullOrEmpty(Model.EmployeeHomeDepartment)){ - Home Department: @Model.EmployeeHomeDepartment
}
+ @if (!String.IsNullOrEmpty(Model.EmployeeEffortHomeDepartment)){ - Effort Home Department: @Model.EmployeeEffortHomeDepartment
}
+ @if (!String.IsNullOrEmpty(Model.EmployeeTeachingHomeDepartment)){ - Teaching Home Department: @Model.EmployeeTeachingHomeDepartment
}
+ @if (!String.IsNullOrEmpty(Model.EmployeeTeachingPercentFulltime)){ - Teaching Percent Full-time: @Model.EmployeeTeachingPercentFulltime
}
+
+
+
+
+
+
+ @if (!String.IsNullOrEmpty(Model.StudentPriorName)){ - Prior Name @Model.StudentPriorName
}
+ @if (!String.IsNullOrEmpty(Model.StudentBannerId)){ - Banner ID @Model.StudentBannerId
}
+ @if (!String.IsNullOrEmpty(Model.StudentConfidential.ToString())){ - Confidential? @(Model.StudentConfidential ? "Yes":"No")
}
+ @if (!String.IsNullOrEmpty(Model.StudentStatus)){ - Student Status @Model.StudentStatus
}
+ @if (!String.IsNullOrEmpty(Model.StudentPrimaryMajor)){ - Primary Major @Model.StudentPrimaryMajor
}
+ @if (!String.IsNullOrEmpty(Model.StudentAllMajors)){ - All Majors @Model.StudentAllMajors
}
+ @if (!String.IsNullOrEmpty(Model.StudentRegistrationStatus)){ - Registration Status @Model.StudentRegistrationStatus
}
+ @if (!String.IsNullOrEmpty(Model.StudentClassLevel)){ - Class Level @Model.StudentClassLevel
}
+ @if (!String.IsNullOrEmpty(Model.StudentClassOf)){ - Class Of @Model.StudentClassOf
}
+
+
+
+
+
+
+ @if (!String.IsNullOrEmpty(Model.IamId)){ - IAM ID: @Model.IamId
}
+ @if (!String.IsNullOrEmpty(Model.PPSId)){ - PPS ID: @Model.PPSId
}
+ @if (!String.IsNullOrEmpty(Model.OFullName)){ - Full Name: @Model.OFullName
}
+ - Employee? @(Model.IsEmployee ? "Yes":"No")
+ - HS Employee? @(Model.IsHSEmployee ? "Yes":"No")
+ - Faculty? @(Model.IsFaculty ? "Yes":"No")
+ - Student? @(Model.IsStudent ? "Yes":"No")
+ - Staff? @(Model.IsStaff ? "Yes":"No")
+ - External? @(Model.IsExternal ? "Yes":"No")
+
+
+ @if (!String.IsNullOrEmpty(Model.AssociationsTitle)){ - Title: @Model.AssociationsTitle (@Model.AssociationsTitleCode)
}
+ @if (!String.IsNullOrEmpty(Model.AssociationsDepartment)){ - Department: @Model.AssociationsDepartment (@Model.AssociationsDepartmentCode)
}
+ @if (!String.IsNullOrEmpty(Model.AssociationsAdminDepartment)){ - Admin Department: @Model.AssociationsAdminDepartment (@Model.AssociationsAdminDepartmentAbbrev @Model.AssociationsAdminDepartmentCode)
}
+ @if (!String.IsNullOrEmpty(Model.AssociationsAppointmentDepartment)){ - Appointment Department: @Model.AssociationsAppointmentDepartment (@Model.AssociationsAppointmentDepartmentAbbrev @Model.AssociationsAppointmentDepartmentCode)
}
+ @if (!String.IsNullOrEmpty(Model.AssociationsPositionType)){ - Position Type: @Model.AssociationsPositionType
}
+ @if (!String.IsNullOrEmpty(Model.AssociationsEmployeeClass)){ - Employee Class: @Model.AssociationsEmployeeClass
}
+ @if (!String.IsNullOrEmpty(Model.AssociationsPercentFulltime.ToString())){ - Percent Full-time: @Model.AssociationsPercentFulltime
}
+ @if (!String.IsNullOrEmpty(Model.AssociationsStart.ToString())){ - Association: @Model.AssociationsStart – @Model.AssociationsEnd
}
+
+
+
+
+
+
+
+ | #perm# |
+
+
+
+ | #permFormat(p["displayName"][r])# |
+
+
+
+
+
+
System Permissions
+
+ -
+
+ #p["summary"]# (#p["count"]#)
+
+
+
+
+
+
+
+
+
+ - Roles: #ucpath_flags#
+
+
+ @if (!String.IsNullOrEmpty(Model.UCPathJobCode)){ - Position: @Model.UCPathJobCode @Model.UCPathJobDescription — @Model.UCPathDepartmentId @Model.UCPathDepartmentDescription
}
+ @if (!String.IsNullOrEmpty(Model.UCPathJobStatus)){ - Status: @Model.UCPathJobStatus (@Model.UCPathEmployeeStatus: @Model.UCPathJobStatusDescription)
}
+ @if (!String.IsNullOrEmpty(Model.UCPathPositionEffective)){ - Effective: @Model.UCPathPositionEffective – @Model.UCPathEndDate
}
+ @if (!String.IsNullOrEmpty(Model.UCPathFTE)){ - FTE: @Model.UCPathFTE
}
+ @if (!String.IsNullOrEmpty(Model.UCPathUnion)){ - Union: @Model.UCPathUnion
}
+ @if (!String.IsNullOrEmpty(Model.UCPathReportsToName)){ - Reports to: @Model.UCPathReportsToName, @Model.UCPathReportsToPosition
}
+
+
+
+
UCPath History
+
+
+ | Job Description | Action Description | Effective Date | Reports To |
+
+
+
+ | #ucpath_history.jobcode# #ucpath_history.jobcode_desc# — #ucpath_history.deptID# #ucpath_history.dept_desc# |
+ #ucpath_history.action_descr# |
+ #showDate(ucpath_history.position_effdt)# |
+ #ucpath_history.reportsToName#, #ucpath_history.reportsToPosition# |
+
+
+
+
+
+
+
+ @if (!Model.IDCards.Any())
+ {
+
No ID Cards have been issued.
+ }
+ else
+ {
+
+
+ | Card Number | Card Info | Status | Applied | Issued | Deactivated |
+
+
+ @foreach (var i in Model.IDCards)
+ {
+
+ | @i.Number |
+ @i.DisplayName @i.LastName / @i.Line2 |
+ @i.StatusDescription |
+ @i.Applied |
+ @i.Issued |
+ @i.DeactivatedReason |
+ @i.Deactivated |
+
+ }
+
+
+ }
+
+
+
+
+ @if (!Model.Keys.Any())
+ {
+
No keys have been issued.
+ }
+ else
+ {
+
+
+ | Access Description | Key Number | Cut Number | Issued |
+
+
+ @foreach (var k in Model.Keys)
+ {
+ | #keys.accessDescription# | #keys.keynumber# | #keys.cutNumber# | Issued #showDate(keys.issuedDate)# by #keys.issued_by# |
+ }
+
+
+ }
+
+
+
+
+ @if (!Model.Loans.Any())
+ {
+
No equipment has been loaned.
+ }
+ else
+ {
+
+
+ | Asset | Loan Date | Due Date | Comments |
+
+
+ @foreach (var l in Model.Loans)
+ {
+ | #loans.asset_name# | #showDate(loans.loan_date)# | #showDate(loans.loan_due_date)# | #loans.loan_comments# |
+ }
+
+
+ }
+
+
+
+
Instinct
+
+ - Instinct ID: #instinct.id#
+ - Instinct Username: #instinct.username#
+ - Roles: #arrayToList(instinct.roles,", ")#
+ - Status: #instinct.status#
+ - Password expires: #showDate(instinct.passwordExpiresAt)#
+ - Active account?: #showYesNo(instinct.isActive)#
+
+
+
+
+
Active Directory Group Membership
+
Information about ucsvm, ad.vmth, vetmed, and svm is not yet available.
+
+
+ - Display Name: #ad.displayName#
+ - Mail: #ad.mail#
+ - SAM Account Name: #ad.samAccountName#
+ - User Principal Name: #ad.userprincipalName#
+ - Distinguished Name: #permFormat(ad.distinguishedName)#
+
+
Member of:
+
+
diff --git a/web/Classes/SQLContext/EquipmentLoanContext.cs b/web/Classes/SQLContext/EquipmentLoanContext.cs
new file mode 100644
index 000000000..010f7693a
--- /dev/null
+++ b/web/Classes/SQLContext/EquipmentLoanContext.cs
@@ -0,0 +1,588 @@
+using System;
+using System.Collections.Generic;
+using Microsoft.EntityFrameworkCore;
+using Viper.Models.EquipmentLoan;
+
+namespace Viper.Classes.SQLContext;
+
+public partial class EquipmentLoanContext : DbContext
+{
+ public EquipmentLoanContext(DbContextOptions