Рефакторинг + DI
This commit is contained in:
@@ -1,4 +1,7 @@
|
||||
using System;
|
||||
using System.IO;
|
||||
using System.Windows.Forms;
|
||||
using Newtonsoft.Json;
|
||||
|
||||
namespace JiraTimeBotForm.Configuration
|
||||
{
|
||||
@@ -14,5 +17,34 @@ namespace JiraTimeBotForm.Configuration
|
||||
public TimeSpan ActivationTime { get; set; }
|
||||
public bool DummyMode { get; set; }
|
||||
public bool AddCommentsToWorklog { get; set; }
|
||||
|
||||
|
||||
public static Settings Load()
|
||||
{
|
||||
var settingsPath = Path.Combine(Application.UserAppDataPath, _settingsFileName);
|
||||
if (!File.Exists(settingsPath))
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
var settingsText = File.ReadAllText(settingsPath);
|
||||
var settings = JsonConvert.DeserializeObject<Settings>(settingsText);
|
||||
|
||||
var password = new PasswordEncryptionClass().Decrypt(settings.JiraUserName, settings.JiraPassword, settings.JiraUrl);
|
||||
settings.JiraPassword = password;
|
||||
return settings;
|
||||
}
|
||||
|
||||
public void Save()
|
||||
{
|
||||
var password = new PasswordEncryptionClass().Encrypt(this.JiraUserName, this.JiraPassword, this.JiraUrl);
|
||||
this.JiraPassword = password;
|
||||
|
||||
var settingsPath = Path.Combine(Application.UserAppDataPath, _settingsFileName);
|
||||
var settingsString = JsonConvert.SerializeObject(this);
|
||||
File.WriteAllText(settingsPath, settingsString);
|
||||
}
|
||||
|
||||
private static string _settingsFileName = "settings.json";
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user