bool SaveSettings()
{
if(CurrentEnvironment.IsConnected)
{
if(CurrentEnvironment.AuthorizationService.IsAuthorized(AuthorizationContext.Administrator, null))
{
Tracker.TrackEvent(TrackerEventGroup.Settings, TrackerEventName.SaveClicked);
// Need to reset sub view models so that selecting something in them fires our OnIsDirtyPropertyChanged()
ClearErrors();
if(SecurityViewModel.HasDuplicateResourcePermissions())
{
IsSaved = false;
IsDirty = true;
ShowError(StringResources.SaveSettingErrorPrefix, StringResources.SaveSettingsDuplicateResourcePermissions);
return false;
}
if(SecurityViewModel.HasDuplicateServerPermissions())
{
IsSaved = false;
IsDirty = true;
ShowError(StringResources.SaveSettingErrorPrefix, StringResources.SaveSettingsDuplicateServerPermissions);
return false;
}
SecurityViewModel.Save(Settings.Security);
if (LogSettingsViewModel.IsDirty)
{
LogSettingsViewModel.Save(Settings.Logging);
}
var isWritten = WriteSettings();
if(isWritten)
{
ResetIsDirtyForChildren();
IsSaved = true;
IsDirty = false;
ClearErrors();
}
else
{
IsSaved = false;
IsDirty = true;
}
return IsSaved;
}
ShowError(StringResources.SaveSettingErrorPrefix, StringResources.SaveSettingsPermissionsErrorMsg);
return false;
}
ShowError(StringResources.SaveSettingErrorPrefix, StringResources.SaveSettingsNotReachableErrorMsg);
return false;
}