Nackup / Restore of total DB is working
This commit is contained in:
@ -40,6 +40,17 @@ namespace StockDAL
|
|||||||
return entity;
|
return entity;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public BackupRegister GetBackupRegisterById(int brId)
|
||||||
|
{
|
||||||
|
using var context = new StockContext();
|
||||||
|
var entity = (from br in context.BackupRegings
|
||||||
|
where br.Id == brId
|
||||||
|
select br).FirstOrDefault();
|
||||||
|
return entity;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
public IEnumerable<BackupRegister> GetAllBackupRegisters()
|
public IEnumerable<BackupRegister> GetAllBackupRegisters()
|
||||||
{
|
{
|
||||||
using var context = new StockContext();
|
using var context = new StockContext();
|
||||||
|
|||||||
@ -10,6 +10,7 @@ namespace StockDAL.Interface
|
|||||||
public interface IBackupRepository
|
public interface IBackupRepository
|
||||||
{
|
{
|
||||||
IEnumerable<BackupRegister> GetAllBackupRegisters();
|
IEnumerable<BackupRegister> GetAllBackupRegisters();
|
||||||
|
BackupRegister GetBackupRegisterById(int brId);
|
||||||
BackupRegister SaveBackupReging(BackupRegister backupRegister);
|
BackupRegister SaveBackupReging(BackupRegister backupRegister);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -53,7 +53,7 @@
|
|||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<None Update="Stocks.db">
|
<None Update="Stocks.db">
|
||||||
<CopyToOutputDirectory>Never</CopyToOutputDirectory>
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||||
</None>
|
</None>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
|
|||||||
17
StockInfo/frmBackup.Designer.cs
generated
17
StockInfo/frmBackup.Designer.cs
generated
@ -36,6 +36,7 @@ namespace StockInfo
|
|||||||
this.txtBackupFile = new System.Windows.Forms.TextBox();
|
this.txtBackupFile = new System.Windows.Forms.TextBox();
|
||||||
this.lstBackups = new System.Windows.Forms.ListBox();
|
this.lstBackups = new System.Windows.Forms.ListBox();
|
||||||
this.btnClose = new System.Windows.Forms.Button();
|
this.btnClose = new System.Windows.Forms.Button();
|
||||||
|
this.btnRestore = new System.Windows.Forms.Button();
|
||||||
this.SuspendLayout();
|
this.SuspendLayout();
|
||||||
//
|
//
|
||||||
// label1
|
// label1
|
||||||
@ -83,7 +84,7 @@ namespace StockInfo
|
|||||||
this.lstBackups.ItemHeight = 15;
|
this.lstBackups.ItemHeight = 15;
|
||||||
this.lstBackups.Location = new System.Drawing.Point(13, 70);
|
this.lstBackups.Location = new System.Drawing.Point(13, 70);
|
||||||
this.lstBackups.Name = "lstBackups";
|
this.lstBackups.Name = "lstBackups";
|
||||||
this.lstBackups.Size = new System.Drawing.Size(214, 184);
|
this.lstBackups.Size = new System.Drawing.Size(306, 184);
|
||||||
this.lstBackups.TabIndex = 4;
|
this.lstBackups.TabIndex = 4;
|
||||||
//
|
//
|
||||||
// btnClose
|
// btnClose
|
||||||
@ -94,12 +95,24 @@ namespace StockInfo
|
|||||||
this.btnClose.TabIndex = 5;
|
this.btnClose.TabIndex = 5;
|
||||||
this.btnClose.Text = "Close";
|
this.btnClose.Text = "Close";
|
||||||
this.btnClose.UseVisualStyleBackColor = true;
|
this.btnClose.UseVisualStyleBackColor = true;
|
||||||
|
this.btnClose.Click += new System.EventHandler(this.btnClose_Click);
|
||||||
|
//
|
||||||
|
// btnRestore
|
||||||
|
//
|
||||||
|
this.btnRestore.Location = new System.Drawing.Point(350, 70);
|
||||||
|
this.btnRestore.Name = "btnRestore";
|
||||||
|
this.btnRestore.Size = new System.Drawing.Size(75, 23);
|
||||||
|
this.btnRestore.TabIndex = 6;
|
||||||
|
this.btnRestore.Text = "Restore";
|
||||||
|
this.btnRestore.UseVisualStyleBackColor = true;
|
||||||
|
this.btnRestore.Click += new System.EventHandler(this.btnRestore_Click);
|
||||||
//
|
//
|
||||||
// frmBackup
|
// frmBackup
|
||||||
//
|
//
|
||||||
this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 15F);
|
this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 15F);
|
||||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||||
this.ClientSize = new System.Drawing.Size(438, 294);
|
this.ClientSize = new System.Drawing.Size(438, 294);
|
||||||
|
this.Controls.Add(this.btnRestore);
|
||||||
this.Controls.Add(this.btnClose);
|
this.Controls.Add(this.btnClose);
|
||||||
this.Controls.Add(this.lstBackups);
|
this.Controls.Add(this.lstBackups);
|
||||||
this.Controls.Add(this.txtBackupFile);
|
this.Controls.Add(this.txtBackupFile);
|
||||||
@ -109,6 +122,7 @@ namespace StockInfo
|
|||||||
this.Name = "frmBackup";
|
this.Name = "frmBackup";
|
||||||
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
|
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
|
||||||
this.Text = "frmBackup";
|
this.Text = "frmBackup";
|
||||||
|
this.Shown += new System.EventHandler(this.frmBackup_Shown);
|
||||||
this.ResumeLayout(false);
|
this.ResumeLayout(false);
|
||||||
this.PerformLayout();
|
this.PerformLayout();
|
||||||
|
|
||||||
@ -123,5 +137,6 @@ namespace StockInfo
|
|||||||
private System.Windows.Forms.TextBox txtBackupFile;
|
private System.Windows.Forms.TextBox txtBackupFile;
|
||||||
private System.Windows.Forms.ListBox lstBackups;
|
private System.Windows.Forms.ListBox lstBackups;
|
||||||
private System.Windows.Forms.Button btnClose;
|
private System.Windows.Forms.Button btnClose;
|
||||||
|
private System.Windows.Forms.Button btnRestore;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -20,7 +20,7 @@ namespace StockInfo
|
|||||||
{
|
{
|
||||||
private readonly IBackupRepository _backupRepository;
|
private readonly IBackupRepository _backupRepository;
|
||||||
private readonly IBackupRoutines _backupRoutines;
|
private readonly IBackupRoutines _backupRoutines;
|
||||||
|
public List<BackupRegister> CurrentBackups { get; set; } = new List<BackupRegister>();
|
||||||
public frmBackup(IBackupRepository backupRepository,IBackupRoutines backupRoutines)
|
public frmBackup(IBackupRepository backupRepository,IBackupRoutines backupRoutines)
|
||||||
{
|
{
|
||||||
InitializeComponent();
|
InitializeComponent();
|
||||||
@ -43,12 +43,64 @@ namespace StockInfo
|
|||||||
reg.BackupDbName = file;
|
reg.BackupDbName = file;
|
||||||
reg.BackupPath = dir;
|
reg.BackupPath = dir;
|
||||||
reg = _backupRepository.SaveBackupReging(reg);
|
reg = _backupRepository.SaveBackupReging(reg);
|
||||||
|
txtBackupPath.Text = dir;
|
||||||
|
txtBackupFile.Text = file;
|
||||||
_backupRoutines.BackupSqliteDb(reg.DbName, Path.Combine(dir, 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);
|
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
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
14
StockInfo/frmInitial.Designer.cs
generated
14
StockInfo/frmInitial.Designer.cs
generated
@ -32,7 +32,6 @@ namespace StockInfo
|
|||||||
this.dataGridView = new System.Windows.Forms.DataGridView();
|
this.dataGridView = new System.Windows.Forms.DataGridView();
|
||||||
this.lblTotalRecords = new System.Windows.Forms.Label();
|
this.lblTotalRecords = new System.Windows.Forms.Label();
|
||||||
this.gB1 = new System.Windows.Forms.GroupBox();
|
this.gB1 = new System.Windows.Forms.GroupBox();
|
||||||
this.btnRestoreAll = new System.Windows.Forms.Button();
|
|
||||||
this.btnBackupAll = new System.Windows.Forms.Button();
|
this.btnBackupAll = new System.Windows.Forms.Button();
|
||||||
this.chkEnableBackRes = new System.Windows.Forms.CheckBox();
|
this.chkEnableBackRes = new System.Windows.Forms.CheckBox();
|
||||||
this.btnRestoreShares = new System.Windows.Forms.Button();
|
this.btnRestoreShares = new System.Windows.Forms.Button();
|
||||||
@ -83,7 +82,6 @@ namespace StockInfo
|
|||||||
// gB1
|
// gB1
|
||||||
//
|
//
|
||||||
this.gB1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
|
this.gB1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
|
||||||
this.gB1.Controls.Add(this.btnRestoreAll);
|
|
||||||
this.gB1.Controls.Add(this.btnBackupAll);
|
this.gB1.Controls.Add(this.btnBackupAll);
|
||||||
this.gB1.Controls.Add(this.chkEnableBackRes);
|
this.gB1.Controls.Add(this.chkEnableBackRes);
|
||||||
this.gB1.Controls.Add(this.btnRestoreShares);
|
this.gB1.Controls.Add(this.btnRestoreShares);
|
||||||
@ -96,22 +94,13 @@ namespace StockInfo
|
|||||||
this.gB1.TabStop = false;
|
this.gB1.TabStop = false;
|
||||||
this.gB1.Text = "Sharelist";
|
this.gB1.Text = "Sharelist";
|
||||||
//
|
//
|
||||||
// btnRestoreAll
|
|
||||||
//
|
|
||||||
this.btnRestoreAll.Location = new System.Drawing.Point(130, 111);
|
|
||||||
this.btnRestoreAll.Name = "btnRestoreAll";
|
|
||||||
this.btnRestoreAll.Size = new System.Drawing.Size(105, 23);
|
|
||||||
this.btnRestoreAll.TabIndex = 7;
|
|
||||||
this.btnRestoreAll.Text = "Restore All";
|
|
||||||
this.btnRestoreAll.UseVisualStyleBackColor = true;
|
|
||||||
//
|
|
||||||
// btnBackupAll
|
// btnBackupAll
|
||||||
//
|
//
|
||||||
this.btnBackupAll.Location = new System.Drawing.Point(130, 82);
|
this.btnBackupAll.Location = new System.Drawing.Point(130, 82);
|
||||||
this.btnBackupAll.Name = "btnBackupAll";
|
this.btnBackupAll.Name = "btnBackupAll";
|
||||||
this.btnBackupAll.Size = new System.Drawing.Size(105, 23);
|
this.btnBackupAll.Size = new System.Drawing.Size(105, 23);
|
||||||
this.btnBackupAll.TabIndex = 6;
|
this.btnBackupAll.TabIndex = 6;
|
||||||
this.btnBackupAll.Text = "Backup All";
|
this.btnBackupAll.Text = "Backup / Restore";
|
||||||
this.btnBackupAll.UseVisualStyleBackColor = true;
|
this.btnBackupAll.UseVisualStyleBackColor = true;
|
||||||
this.btnBackupAll.Click += new System.EventHandler(this.btnBackupAll_Click);
|
this.btnBackupAll.Click += new System.EventHandler(this.btnBackupAll_Click);
|
||||||
//
|
//
|
||||||
@ -347,7 +336,6 @@ namespace StockInfo
|
|||||||
private System.Windows.Forms.Button btnConnShares;
|
private System.Windows.Forms.Button btnConnShares;
|
||||||
private System.Windows.Forms.Button btnEditPerson;
|
private System.Windows.Forms.Button btnEditPerson;
|
||||||
private System.Windows.Forms.ComboBox cmbOwners;
|
private System.Windows.Forms.ComboBox cmbOwners;
|
||||||
private System.Windows.Forms.Button btnRestoreAll;
|
|
||||||
private System.Windows.Forms.Button btnBackupAll;
|
private System.Windows.Forms.Button btnBackupAll;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -63,7 +63,6 @@ namespace StockInfo
|
|||||||
btnRestoreShares.Enabled = false;
|
btnRestoreShares.Enabled = false;
|
||||||
btnBackupShares.Enabled = false;
|
btnBackupShares.Enabled = false;
|
||||||
btnReloadShares.Enabled = false;
|
btnReloadShares.Enabled = false;
|
||||||
btnRestoreAll.Enabled = false;
|
|
||||||
btnBackupAll.Enabled = false;
|
btnBackupAll.Enabled = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -146,14 +145,12 @@ namespace StockInfo
|
|||||||
btnRestoreShares.Enabled = true;
|
btnRestoreShares.Enabled = true;
|
||||||
btnBackupShares.Enabled = true;
|
btnBackupShares.Enabled = true;
|
||||||
btnBackupAll.Enabled = true;
|
btnBackupAll.Enabled = true;
|
||||||
btnRestoreAll.Enabled = true;
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
btnRestoreShares.Enabled = false;
|
btnRestoreShares.Enabled = false;
|
||||||
btnBackupShares.Enabled = false;
|
btnBackupShares.Enabled = false;
|
||||||
btnBackupAll.Enabled = false;
|
btnBackupAll.Enabled = false;
|
||||||
btnRestoreAll.Enabled = false;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user