public IActionResult SaveNotificationPreferences(
            UserType?userType,
            IEnumerable <int> notificationIds,
            DlsSubApplication dlsSubApplication
            )
        {
            var userReference = GetUserReference(userType);

            if (userReference == null)
            {
                return(RedirectToAction("AccessDenied", "LearningSolutions"));
            }

            notificationPreferencesService.SetNotificationPreferencesForUser(
                userReference.UserType,
                userReference.Id,
                notificationIds
                );

            return(RedirectToAction(
                       "Index",
                       "NotificationPreferences",
                       new { dlsSubApplication = dlsSubApplication.UrlSegment }
                       ));
        }
Esempio n. 2
0
        public void SaveNotificationPreferences_redirects_to_expected_page_on_success()
        {
            // Given
            A.CallTo(
                () => notificationPreferencesService.SetNotificationPreferencesForUser(
                    UserType.AdminUser,
                    A <int?> ._,
                    A <IEnumerable <int> > ._
                    )
                ).DoesNothing();
            var parameterName = typeof(MyAccountController).GetMethod("Index")?.GetParameters()
                                .SingleOrDefault(p => p.ParameterType == typeof(DlsSubApplication))?.Name;

            // When
            var result = controller.SaveNotificationPreferences(
                UserType.AdminUser,
                new List <int>(),
                DlsSubApplication.Default
                );

            // Then
            result.Should().BeRedirectToActionResult().WithActionName("Index").WithRouteValue(
                parameterName,
                DlsSubApplication.Default.UrlSegment
                );
        }