public void Save(ApplicationSettings settings, string filename)
        {
            // check if directory exists first
            string directory = new FileInfo(filename).Directory.FullName;

            if (!Directory.Exists(directory))
            {
                SaveFileDialog d = new SaveFileDialog();
                d.Filter = FileFilter;
                if (d.ShowDialog() == DialogResult.OK && !string.IsNullOrEmpty(d.FileName))
                {
                    filename = d.FileName;
                }
                else
                {
                    return;
                }
            }

            Logger.Instance.WriteLine("Saving settings as \"{0}\".", filename);

            using (var writer = new JsonSettingsWriter(filename))
            {
                writer.Write(settings);
            }

            if (CurrentSettingsFile != filename)
            {
                CurrentSettingsFile = filename;
            }
        }
        public void SaveSettings(Source[] sources)
        {
            //Have to skip the first 2 elements because S+ is stupid.
            var sourcesList = sources.Skip(2).ToList();
            var writer      = new JsonSettingsWriter(_filePath);

            writer.SaveSection(sourcesList, _sectionName);
        }
        public void SaveSettings(string path, ApplicationSettings settings)
        {
            if (path == null)
            {
                throw new ArgumentNullException(nameof(path));
            }

            var directory = new DirectoryInfo(Path.GetDirectoryName(path));

            if (!directory.Exists)
            {
                Logger.Info($"Created directory at: \"{directory.FullName}\".");

                directory.Create();
            }

            Logger.Info($"Saving settings at: \"{path}\".");

            using (var writer = new JsonSettingsWriter(path))
            {
                writer.Write(settings);
            }
        }
        /// <summary>
        /// Method to save settings to specified file
        /// </summary>
        /// <param name="settings">Object to save</param>
        public void SaveSettings(EnvironmentControls settings)
        {
            var writer = new JsonSettingsWriter(_fileName);

            writer.SaveSection(settings);
        }