Backup / Restore funktioner infört för kommande uppdateringar

This commit is contained in:
2021-03-07 15:57:33 +01:00
parent c2d8e76643
commit 03878ae8af
7 changed files with 167 additions and 33 deletions

View File

@ -10,6 +10,8 @@ using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Text.Json;
using System.IO;
namespace StockInfo
{
@ -32,6 +34,8 @@ namespace StockInfo
private void Form1_Load(object sender, EventArgs e)
{
ReloadData();
btnRestoreShares.Enabled = false;
btnBackupShares.Enabled = false;
}
private void ReloadData()
@ -86,7 +90,7 @@ namespace StockInfo
{
Cursor.Current = Cursors.WaitCursor;
_stockMarketRepository.LoadStockMarketList();
stockWindow = new frmMyStocks( _stockRepository, _stockMarketRepository);
stockWindow = new frmMyStocks(_stockRepository, _stockMarketRepository);
stockWindow.Stocks = _stockMarketRepository.StockMarketList;
Cursor.Current = DefaultCursor;
stockWindow.ShowDialog();
@ -101,5 +105,47 @@ namespace StockInfo
ReloadData();
}
private void chkEnableBackRes_CheckedChanged(object sender, EventArgs e)
{
if (chkEnableBackRes.Checked)
{
btnRestoreShares.Enabled = true;
btnBackupShares.Enabled = true;
}
else
{
btnRestoreShares.Enabled = false;
btnBackupShares.Enabled = false;
}
}
private void btnBackupShares_Click(object sender, EventArgs e)
{
var stockList = _stockRepository.GetAllStocks();
var jsonStr = JsonSerializer.Serialize(stockList);
sfdSaver.Title = "Backup your sharedata";
sfdSaver.Filter = "Backup file (.json)|*.json";
sfdSaver.FileName = $"StockBackup{DateTime.Now.ToFileTime()}";
if (sfdSaver.ShowDialog() == DialogResult.OK)
{
File.WriteAllText(sfdSaver.FileName, jsonStr);
}
}
private void btnRestoreShares_Click(object sender, EventArgs e)
{
ofdOpener.Title = "Restore your share data";
ofdOpener.Filter = "Restore file (.json)|*.json";
ofdOpener.CheckFileExists = true;
if (ofdOpener.ShowDialog() == DialogResult.OK)
{
var jsonStr = File.ReadAllText(ofdOpener.FileName);
var stockList = JsonSerializer.Deserialize<List<StockMember>>(jsonStr);
_stockRepository.RestoreStockMembers(stockList);
};
}
}
}