Esempio n. 1
0
        public MediatorResponse <SettingsViewModel> SaveSettings(Guid candidateId, SettingsViewModel settingsViewModel)
        {
            var validationResult   = _settingsViewModelServerValidator.Validate(settingsViewModel);
            var traineeshipFeature = _apprenticeshipApplicationProvider.GetTraineeshipFeatureViewModel(candidateId);

            settingsViewModel.TraineeshipFeature = traineeshipFeature;

            if (!validationResult.IsValid)
            {
                return(GetMediatorResponse(AccountMediatorCodes.Settings.ValidationError, settingsViewModel, validationResult));
            }

            Candidate candidate;
            var       saved = _accountProvider.TrySaveSettings(candidateId, settingsViewModel, out candidate);

            if (saved)
            {
                if (candidate.MobileVerificationRequired())
                {
                    return(GetMediatorResponse(AccountMediatorCodes.Settings.MobileVerificationRequired, settingsViewModel, AccountPageMessages.MobileVerificationRequired, UserMessageLevel.Success));
                }

                return(GetMediatorResponse(AccountMediatorCodes.Settings.Success, settingsViewModel));
            }

            return(GetMediatorResponse(AccountMediatorCodes.Settings.SaveError, settingsViewModel, AccountPageMessages.SettingsUpdateFailed, UserMessageLevel.Warning));
        }
Esempio n. 2
0
        public MediatorResponse <SettingsViewModel> SaveSettings(Guid candidateId, SettingsViewModel settingsViewModel)
        {
            var validationResult   = _settingsViewModelServerValidator.Validate(settingsViewModel);
            var traineeshipFeature = _apprenticeshipApplicationProvider.GetTraineeshipFeatureViewModel(candidateId);

            settingsViewModel.TraineeshipFeature = traineeshipFeature;

            if (!validationResult.IsValid)
            {
                var savedSearchesModel = _accountProvider.GetSettingsViewModel(candidateId);
                settingsViewModel.SavedSearches = savedSearchesModel.SavedSearches;
                return(GetMediatorResponse(AccountMediatorCodes.Settings.ValidationError, settingsViewModel, validationResult));
            }

            Candidate candidate;
            var       saved = _accountProvider.TrySaveSettings(candidateId, settingsViewModel, out candidate);

            if (!saved)
            {
                return(GetMediatorResponse(AccountMediatorCodes.Settings.SaveError, settingsViewModel, AccountPageMessages.SettingsUpdateFailed, UserMessageLevel.Warning));
            }

            if (candidate.MobileVerificationRequired())
            {
                return(GetMediatorResponse(AccountMediatorCodes.Settings.MobileVerificationRequired, settingsViewModel, AccountPageMessages.MobileVerificationRequired, UserMessageLevel.Success));
            }

            if (settingsViewModel.Mode == SettingsViewModel.SettingsMode.YourAccount)
            {
                var anyNotificationEnabled =
                    settingsViewModel.EnableApplicationStatusChangeAlertsViaEmail ||
                    settingsViewModel.EnableApplicationStatusChangeAlertsViaText ||
                    settingsViewModel.EnableExpiringApplicationAlertsViaEmail ||
                    settingsViewModel.EnableExpiringApplicationAlertsViaText ||
                    settingsViewModel.EnableMarketingViaEmail ||
                    settingsViewModel.EnableMarketingViaText;

                if (!anyNotificationEnabled)
                {
                    return(GetMediatorResponse(AccountMediatorCodes.Settings.SuccessWithWarning, settingsViewModel, AccountPageMessages.SettingsUpdatedNotificationsAlertWarning, UserMessageLevel.Info));
                }
            }

            if (settingsViewModel.Mode == SettingsViewModel.SettingsMode.SavedSearches)
            {
                var anySavedSearchAlertsEnabled =
                    settingsViewModel.SavedSearches != null && settingsViewModel.SavedSearches.Any(s => s.AlertsEnabled);

                var shouldSendSavedSearchAlerts =
                    settingsViewModel.EnableSavedSearchAlertsViaEmail || settingsViewModel.EnableSavedSearchAlertsViaText;

                if ((shouldSendSavedSearchAlerts &&
                     (!anySavedSearchAlertsEnabled && settingsViewModel.SavedSearches != null)) ||
                    (anySavedSearchAlertsEnabled && !shouldSendSavedSearchAlerts))
                {
                    return(GetMediatorResponse(AccountMediatorCodes.Settings.SuccessWithWarning, settingsViewModel,
                                               AccountPageMessages.SettingsUpdatedSavedSearchesAlertWarning, UserMessageLevel.Info));
                }
            }

            return(GetMediatorResponse(AccountMediatorCodes.Settings.Success, settingsViewModel));
        }