From 827189e7241c10c3b5e4a088fc8a7a9b04cd786d Mon Sep 17 00:00:00 2001 From: Tom Karasch Date: Mon, 10 Aug 2026 19:56:04 -0400 Subject: [PATCH] Enhance VRP Facility Details page and add null checks This update expands the "HSI Properties" tab visibility to VRP facility types and simplifies the conditional activation of the "Events" tab. Additionally, null checks were added for `StatusDetails` and `LocationDetails` to prevent potential runtime errors, improving the page's overall robustness. A new `GetVrpTrackingStatus` helper method was also introduced. --- FMS/Pages/Facilities/Details.cshtml | 26 ++++++++++++++++------- FMS/Pages/Facilities/Details.cshtml.cs | 29 +++++++++++++++++++------- 2 files changed, 40 insertions(+), 15 deletions(-) diff --git a/FMS/Pages/Facilities/Details.cshtml b/FMS/Pages/Facilities/Details.cshtml index 96e0f9db..25b2abe4 100644 --- a/FMS/Pages/Facilities/Details.cshtml +++ b/FMS/Pages/Facilities/Details.cshtml @@ -385,7 +385,7 @@
- @if (Model.FacilityDetail.FacilityType.Name == "HSI") + @if (Model.FacilityDetail.FacilityType.Name == "HSI" || Model.FacilityDetail.FacilityType.Name == "VRP") {

@@ -1413,7 +1421,7 @@
@Html.DisplayNameFor(model => model.FacilityDetail.StatusDetails.Lien)
- @if (Model.FacilityDetail.StatusDetails.Lien) + @if (Model.FacilityDetail.StatusDetails != null && Model.FacilityDetail.StatusDetails.Lien) {
Liens Filed with County @@ -1430,7 +1438,7 @@
@Html.DisplayNameFor(model => model.FacilityDetail.StatusDetails.FinancialAssurance)
- @if (Model.FacilityDetail.StatusDetails.FinancialAssurance) + @if (Model.FacilityDetail.StatusDetails != null && Model.FacilityDetail.StatusDetails.FinancialAssurance) {
HSRP Financial Assurance Tracker @@ -1444,7 +1452,7 @@
@Html.DisplayNameFor(model => model.FacilityDetail.StatusDetails.UEC)
- @if (Model.FacilityDetail.StatusDetails.UEC) + @if (Model.FacilityDetail.StatusDetails != null && Model.FacilityDetail.StatusDetails.UEC) {
EC Online Knack Table @@ -1453,7 +1461,11 @@
} -
+

Events diff --git a/FMS/Pages/Facilities/Details.cshtml.cs b/FMS/Pages/Facilities/Details.cshtml.cs index 2f7c8457..c3a109bf 100644 --- a/FMS/Pages/Facilities/Details.cshtml.cs +++ b/FMS/Pages/Facilities/Details.cshtml.cs @@ -20,8 +20,8 @@ public class DetailsModel : PageModel private readonly IFacilityRepository _repository; private readonly IEventRepository _eventRepository; private readonly Microsoft.Extensions.Configuration.IConfiguration _configuration; - public DetailsModel(IFacilityRepository repository, - IEventRepository eventRepository, + public DetailsModel(IFacilityRepository repository, + IEventRepository eventRepository, Microsoft.Extensions.Configuration.IConfiguration configuration) { _repository = repository; @@ -67,7 +67,9 @@ public DetailsModel(IFacilityRepository repository, public EventSort SortBy { get; set; } - public async Task OnGetAsync(Guid? id, Guid? hr, string tab, EventSort sortBy = EventSort.StartDateDesc) + public bool IsVrpTracked { get; set; } + + public async Task OnGetAsync(Guid? id, Guid? hr, string tab, EventSort sortBy = EventSort.StartDateDesc) { if (id == null) { @@ -92,11 +94,11 @@ public async Task OnGetAsync(Guid? id, Guid? hr, string tab, Eve HighlightRecord = hr.Value; } - if(FacilityDetail.FacilityType.Name == "HSI" || (FacilityDetail.FacilityType.Name == "NPL" && FacilityDetail.FacilityStatus.Name == "EPA Referred")) + if (FacilityDetail.FacilityType.Name == "HSI" || (FacilityDetail.FacilityType.Name == "NPL" && FacilityDetail.FacilityStatus.Name == "EPA Referred")) { HSIFolderLink = UrlHelper.GetHSIFolderLink(FacilityDetail.FacilityNumber); } - + if (FacilityDetail.FacilityType.Name == "RN") { if (FacilityDetail.DeterminationLetterDate.HasValue && string.IsNullOrEmpty(FacilityDetail.HSInumber)) @@ -107,14 +109,14 @@ public async Task OnGetAsync(Guid? id, Guid? hr, string tab, Eve { PendingNotificationFolderLink = UrlHelper.GetPendingNotificationFolderLink(FacilityDetail.FacilityNumber); } - if (FacilityDetail.FacilityStatus.Name == "COMPLAINT") + if (FacilityDetail.FacilityStatus.Name == "COMPLAINT") { ComplaintsFolderLink = UrlHelper.GetComplaintsFolderLink(FacilityDetail.FacilityNumber); } else { RNHSIFolderLink = UrlHelper.GetHSIFolderLink(FacilityDetail.HSInumber); - } + } } ActiveTab = tab ?? "HSIProperties"; @@ -187,11 +189,22 @@ public string GetMapLink() public string GetGoogleMapsUrl(FacilityDetailDto facility) { - if (facility.Latitude != 0 && facility.Longitude != 0) + if (facility.Latitude != 0 && facility.Longitude != 0 && facility.LocationDetails != null) { return $"https://maps.googleapis.com/maps/api/staticmap?center={facility.Latitude},{facility.Longitude}&zoom={facility.LocationDetails.MapZoom}&size=250x250&markers=color:red|{facility.Latitude},{facility.Longitude}&maptype={facility.LocationDetails.MapType}&key={GoogleMapsApiKey}&style=feature:poi|visibility:off"; } return null; } + + public bool GetVrpTrackingStatus(FacilityDetailDto facility) + { + if (facility != null && + facility.HsrpFacilityPropertyDetails.VRPDate != null && + !facility.HsrpFacilityPropertyDetails.VRPTerminated) + { + return true; + } + return false; + } } } \ No newline at end of file