using InfosysPublisher.Classes; using Newtonsoft.Json; using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Reflection; using System.Text; using System.Threading.Tasks; using System.Windows; using System.Windows.Controls; using System.Windows.Data; using System.Windows.Documents; using System.Windows.Input; using System.Windows.Media; using System.Windows.Media.Imaging; namespace InfosysPublisher { /// /// Interaction logic for WinSettings.xaml /// public partial class WinSettings : Window { private static string _settingsPath; private static string _applicationPath; public WinSettings() { InitializeComponent(); BtnSave.Click += BtnSave_Click; LoadSettings(); } private void BtnSave_Click(object sender, RoutedEventArgs e) { SaveSettings(); } private void SaveSettings() { var settings = new Settings.Application { BuildSeconds = Convert.ToInt32(TbBuildDuration.Text) }; SaveSettings(settings); this.DialogResult = true; } private void LoadSettings() { var settings = GetSettings() ?? new Settings.Application(); TbBuildDuration.Text = settings.BuildSeconds.ToString(); } private static void SetPaths() { _applicationPath = Path.GetDirectoryName(Assembly.GetEntryAssembly().Location); _settingsPath = _applicationPath + @"\InfosysPublisher.json"; } internal static Settings.Application? GetSettings() { SetPaths(); if (File.Exists(_settingsPath)) { return JsonConvert.DeserializeObject(File.ReadAllText(_settingsPath)) ?? new Settings.Application(); } return null; } internal static void SaveSettings(Settings.Application iSettings) { SetPaths(); iSettings.Save(_settingsPath); } } }