public async Task <IActionResult> OnGetAsync() { Notification = await NotificationRepository.GetNotificationAsync(NotificationId); await AuthorizeAndSetBannerAsync(); // Check edit permission and redirect if not allowed if (PermissionLevel != PermissionLevel.Edit) { return(RedirectToPage("/Notifications/Overview", new { NotificationId })); } var pendingTransferAlert = await _alertRepository.GetOpenAlertByNotificationId <TransferAlert>(NotificationId); if (pendingTransferAlert != null) { TransferAlert = pendingTransferAlert; return(Partial("_TransferPendingPartial", this)); } TransferRequest = new TransferRequestViewModel(); await SetDropdownsAsync(); return(Page()); }
public async Task AutoDismissAlertAsync <T>(Notification notification) where T : Alert { var alert = await _alertRepository.GetOpenAlertByNotificationId <T>(notification.NotificationId); if (alert == null) { return; } Func <Notification, bool> notificationQualifiesCheck; switch (alert) { case DataQualityBirthCountryAlert _: notificationQualifiesCheck = DataQualityBirthCountryAlert.NotificationQualifies; break; case DataQualityDraftAlert _: notificationQualifiesCheck = DataQualityDraftAlert.NotificationQualifies; break; case DataQualityClinicalDatesAlert _: notificationQualifiesCheck = DataQualityClinicalDatesAlert.NotificationQualifies; break; case DataQualityClusterAlert _: notificationQualifiesCheck = DataQualityClusterAlert.NotificationQualifies; break; case DataQualityTreatmentOutcome12 _: notificationQualifiesCheck = DataQualityTreatmentOutcome12.NotificationQualifies; break; case DataQualityTreatmentOutcome24 _: notificationQualifiesCheck = DataQualityTreatmentOutcome24.NotificationQualifies; break; case DataQualityTreatmentOutcome36 _: notificationQualifiesCheck = DataQualityTreatmentOutcome36.NotificationQualifies; break; case DataQualityDotVotAlert _: notificationQualifiesCheck = DataQualityDotVotAlert.NotificationQualifies; break; case DataQualityChildECMLevel _: notificationQualifiesCheck = DataQualityChildECMLevel.NotificationQualifies; break; default: throw new ArgumentException("Unexpected alert type passed for automatic closing"); } if (!notificationQualifiesCheck(notification)) { await DismissAlertAsync(alert.AlertId, null); } }
public async Task <IActionResult> OnGetAsync() { Notification = await NotificationRepository.GetNotificationAsync(NotificationId); TransferRejectedAlert = await _alertRepository.GetOpenAlertByNotificationId <TransferRejectedAlert>(NotificationId); await AuthorizeAndSetBannerAsync(); // Check edit permission of user and redirect if they don't have permission or the alert does not exist var(permissionLevel, _) = await _authorizationService.GetPermissionLevelAsync(User, Notification); if (permissionLevel != PermissionLevel.Edit || TransferRejectedAlert == null) { return(RedirectToPage("/Notifications/Overview", new { NotificationId })); } return(Page()); }
public async Task <IActionResult> OnGetAsync() { Notification = await NotificationRepository.GetNotificationAsync(NotificationId); TransferAlert = await _alertRepository.GetOpenAlertByNotificationId <TransferAlert>(NotificationId); await AuthorizeAndSetBannerAsync(); // Check edit permission of user and redirect if not allowed if (!await _authorizationService.IsUserAuthorizedToManageAlert(User, TransferAlert)) { return(RedirectToPage("/Notifications/Overview", new { NotificationId })); } if (TransferAlert == null) { return(RedirectToPage("/Notifications/Overview", new { NotificationId })); } var hospitals = await _referenceDataRepository.GetHospitalsByTbServiceCodesAsync( new List <string> { TransferAlert.TbServiceCode }); Hospitals = new SelectList(hospitals, nameof(Hospital.HospitalId), nameof(Hospital.Name)); var caseManagers = await _referenceDataRepository.GetCaseManagersByTbServiceCodesAsync( new List <string> { TransferAlert.TbServiceCode }); CaseManagers = new SelectList(caseManagers, nameof(Models.Entities.User.Username), nameof(Models.Entities.User.DisplayName)); TargetCaseManagerUsername = TransferAlert.CaseManagerUsername; return(Page()); }
public async Task RejectTransferAndDismissAlertAsync() { var user = await _referenceDataRepository.GetUserByUsernameAsync(User.Username()); var transferRejectedAlert = new TransferRejectedAlert { NotificationId = NotificationId, RejectionReason = TransferRequest.DeclineTransferReason ?? "No reason was given when declining this transfer.", DecliningUserAndTbServiceString = $"{user.DisplayName}, {TransferRequest.TransferAlert.TbService.Name}" }; // Dismiss any existing transfer rejected alert so that the new one can be created var pendingTransferRejectedAlert = await _alertRepository.GetOpenAlertByNotificationId <TransferRejectedAlert>(NotificationId); if (pendingTransferRejectedAlert != null) { await _alertService.DismissAlertAsync(pendingTransferRejectedAlert.AlertId, User.Username()); } await _alertService.AddUniqueOpenAlertAsync(transferRejectedAlert); await _alertService.DismissAlertAsync(TransferRequest.TransferAlert.AlertId, User.Username()); }