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)); }
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)); }