Nackup / Restore of total DB is working
This commit is contained in:
@ -20,7 +20,7 @@ namespace StockInfo
|
||||
{
|
||||
private readonly IBackupRepository _backupRepository;
|
||||
private readonly IBackupRoutines _backupRoutines;
|
||||
|
||||
public List<BackupRegister> CurrentBackups { get; set; } = new List<BackupRegister>();
|
||||
public frmBackup(IBackupRepository backupRepository,IBackupRoutines backupRoutines)
|
||||
{
|
||||
InitializeComponent();
|
||||
@ -43,12 +43,64 @@ namespace StockInfo
|
||||
reg.BackupDbName = file;
|
||||
reg.BackupPath = dir;
|
||||
reg = _backupRepository.SaveBackupReging(reg);
|
||||
txtBackupPath.Text = dir;
|
||||
txtBackupFile.Text = file;
|
||||
_backupRoutines.BackupSqliteDb(reg.DbName, Path.Combine(dir, file));
|
||||
var cmbItem = new ComboboxItem(wholeFile, reg.Id);
|
||||
var cmbItem = new ComboboxItem($"{reg.BackedUp.ToLocalTime()} {wholeFile}", reg.Id);
|
||||
lstBackups.Items.Add(cmbItem);
|
||||
|
||||
CurrentBackups = _backupRepository.GetAllBackupRegisters().ToList();
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
private void btnClose_Click(object sender, EventArgs e)
|
||||
{
|
||||
this.Close();
|
||||
}
|
||||
|
||||
private void frmBackup_Shown(object sender, EventArgs e)
|
||||
{
|
||||
CurrentBackups =_backupRepository.GetAllBackupRegisters().ToList();
|
||||
lstBackups.Items.Clear();
|
||||
foreach(var bckrg in CurrentBackups)
|
||||
{
|
||||
var cmbItem = new ComboboxItem($"{bckrg.BackedUp.ToLocalTime()} {Path.Combine(bckrg.BackupPath, bckrg.BackupDbName)}", bckrg.Id);
|
||||
lstBackups.Items.Add(cmbItem);
|
||||
}
|
||||
}
|
||||
|
||||
private void btnRestore_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (lstBackups.SelectedIndex != -1)
|
||||
{
|
||||
BackupRegister br = new();
|
||||
br.Id = ((ComboboxItem)lstBackups.SelectedItem).HiddenValue;
|
||||
var backupReg = _backupRepository.GetBackupRegisterById(br.Id);
|
||||
if (File.Exists(backupReg.DbName))
|
||||
{
|
||||
File.Move(backupReg.DbName, "tempFile.bak",true);
|
||||
}
|
||||
_backupRoutines.BackupSqliteDb(Path.Combine(backupReg.BackupPath, backupReg.BackupDbName), backupReg.DbName);
|
||||
UpdateBackupRegs(CurrentBackups);
|
||||
MessageBox.Show($"Backup {Path.Combine(backupReg.BackupPath, backupReg.BackupDbName)} loaded !");
|
||||
}
|
||||
}
|
||||
|
||||
private void UpdateBackupRegs(List<BackupRegister> currentBackups)
|
||||
{
|
||||
var backupRegs = _backupRepository.GetAllBackupRegisters();
|
||||
var result = currentBackups.Where(cb => backupRegs.All(br => br.BackupDbName != cb.BackupDbName || br.BackupPath != cb.BackupPath));
|
||||
foreach(var br in result)
|
||||
{
|
||||
_backupRepository.SaveBackupReging(new BackupRegister
|
||||
{
|
||||
BackedUp = br.BackedUp,
|
||||
BackupDbName = br.BackupDbName,
|
||||
BackupPath = br.BackupPath,
|
||||
DbName = br.DbName,
|
||||
Id = 0
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user