Dev2.Settings.SettingsViewModel.SaveSettings C# (CSharp) Method

SaveSettings() private method

Saves the settings.
private SaveSettings ( ) : bool
return bool
        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;
        }