119 lines
5.7 KiB
C#
119 lines
5.7 KiB
C#
using CPM;
|
|
using MLL;
|
|
using System;
|
|
using System.Drawing;
|
|
using System.Windows.Forms;
|
|
using UI;
|
|
|
|
namespace UI
|
|
{
|
|
public partial class BackupCadastroPanel : FormularioModelo
|
|
{
|
|
private ModeloBackup _backup = new ModeloBackup();
|
|
|
|
// Controles - Configuração Geral
|
|
private LV_TEXTBOX1 txtId, txtNome, txtOrigem, txtCaminhoDestino;
|
|
private ComboBox cbTipoBackup, cbDestinoTipo, cbFrequencia;
|
|
|
|
// Controles - Segurança e Compactação
|
|
private CheckBox chkCompactar, chkCriptografia, chkAtivo;
|
|
private LV_TEXTBOX1 txtAlgoritmo, txtManterUltimos;
|
|
|
|
// Controles - Agendamento
|
|
private DateTimePicker dtpHorario;
|
|
|
|
// Controles - Status e Logs (Somente Leitura)
|
|
private LV_TEXTBOX1 txtStatusUltimo, txtDataUltimo, txtLogUltimo;
|
|
|
|
public BackupCadastroPanel()
|
|
{
|
|
this.Titulo = "Configuração e Agendamento de Backup";
|
|
MontarInterface();
|
|
}
|
|
|
|
private void MontarInterface()
|
|
{
|
|
// --- SEÇÃO 1: Definição do Backup ---
|
|
content.Controls.Add(CreateSectionHeader("O QUE SERÁ SALVO?", 20));
|
|
|
|
txtId = AddInput(content, "ID", 20, 50, 70, 30, true);
|
|
txtNome = AddInput(content, "NOME DA ROTINA (EX: BACKUP DIÁRIO DB)", 100, 50, 300, 30);
|
|
|
|
Label lblTipo = new Label { Text = "TIPO", Location = new Point(410, 33), AutoSize = true };
|
|
cbTipoBackup = new ComboBox { Location = new Point(410, 50), Size = new Size(130, 30), DropDownStyle = ComboBoxStyle.DropDownList };
|
|
cbTipoBackup.Items.AddRange(new object[] { "database", "arquivos", "completo" });
|
|
|
|
txtOrigem = AddInput(content, "ORIGEM (NOME DO BANCO OU DIRETÓRIO)", 20, 105, 520, 30);
|
|
chkAtivo = new CheckBox { Text = "ATIVO", Location = new Point(560, 121), AutoSize = true, Checked = true };
|
|
|
|
content.Controls.Add(lblTipo);
|
|
content.Controls.Add(cbTipoBackup);
|
|
content.Controls.Add(chkAtivo);
|
|
|
|
// --- SEÇÃO 2: Destino e Frequência ---
|
|
content.Controls.Add(CreateSectionHeader("ONDE E QUANDO?", 165));
|
|
|
|
Label lblDest = new Label { Text = "DESTINO", Location = new Point(20, 178), AutoSize = true };
|
|
cbDestinoTipo = new ComboBox { Location = new Point(20, 195), Size = new Size(120, 30), DropDownStyle = ComboBoxStyle.DropDownList };
|
|
cbDestinoTipo.Items.AddRange(new object[] { "local", "ftp", "ssh", "nuvem" });
|
|
|
|
txtCaminhoDestino = AddInput(content, "CAMINHO DE DESTINO / PASTA REMOTA", 150, 195, 390, 30);
|
|
|
|
Label lblFreq = new Label { Text = "FREQUÊNCIA", Location = new Point(20, 233), AutoSize = true };
|
|
cbFrequencia = new ComboBox { Location = new Point(20, 250), Size = new Size(120, 30), DropDownStyle = ComboBoxStyle.DropDownList };
|
|
cbFrequencia.Items.AddRange(new object[] { "manual", "diario", "semanal", "mensal" });
|
|
|
|
Label lblHora = new Label { Text = "HORÁRIO", Location = new Point(150, 233), AutoSize = true };
|
|
dtpHorario = new DateTimePicker { Location = new Point(150, 250), Size = new Size(100, 30), Format = DateTimePickerFormat.Time, ShowUpDown = true };
|
|
|
|
txtManterUltimos = AddInput(content, "RETENÇÃO (QTD)", 270, 250, 100, 30);
|
|
|
|
content.Controls.Add(lblDest);
|
|
content.Controls.Add(cbDestinoTipo);
|
|
content.Controls.Add(lblFreq);
|
|
content.Controls.Add(cbFrequencia);
|
|
content.Controls.Add(lblHora);
|
|
content.Controls.Add(dtpHorario);
|
|
|
|
// --- SEÇÃO 3: Segurança ---
|
|
content.Controls.Add(CreateSectionHeader("OPÇÕES DE ARQUIVO", 305));
|
|
chkCompactar = new CheckBox { Text = "COMPACTAR (.ZIP)", Location = new Point(20, 335), AutoSize = true };
|
|
chkCriptografia = new CheckBox { Text = "CRIPTOGRAFAR", Location = new Point(160, 335), AutoSize = true };
|
|
txtAlgoritmo = AddInput(content, "ALGORITMO", 300, 325, 150, 30);
|
|
|
|
content.Controls.Add(chkCompactar);
|
|
content.Controls.Add(chkCriptografia);
|
|
|
|
// --- SEÇÃO 4: Última Execução (Monitoramento) ---
|
|
content.Controls.Add(CreateSectionHeader("MONITORAMENTO", 380));
|
|
txtStatusUltimo = AddInput(content, "STATUS", 20, 410, 120, 30, true);
|
|
txtDataUltimo = AddInput(content, "DATA ÚLT. EXECUÇÃO", 150, 410, 180, 30, true);
|
|
txtLogUltimo = AddInput(content, "LOG / MENSAGEM", 340, 410, 495, 30, true);
|
|
|
|
content.Height = 480;
|
|
}
|
|
|
|
private void PreencherModel()
|
|
{
|
|
_backup.Nome = txtNome.Text;
|
|
_backup.TipoBackup = cbTipoBackup.Text;
|
|
_backup.Origem = txtOrigem.Text;
|
|
_backup.DestinoTipo = cbDestinoTipo.Text;
|
|
_backup.CaminhoDestino = txtCaminhoDestino.Text;
|
|
_backup.Compactar = chkCompactar.Checked;
|
|
_backup.UsarCriptografia = chkCriptografia.Checked;
|
|
_backup.AlgoritmoCriptografia = txtAlgoritmo.Text;
|
|
_backup.Frequencia = cbFrequencia.Text;
|
|
_backup.Horario = dtpHorario.Value.TimeOfDay;
|
|
_backup.ManterUltimos = int.TryParse(txtManterUltimos.Text, out int m) ? m : 5;
|
|
_backup.Ativo = chkAtivo.Checked;
|
|
}
|
|
|
|
protected override void OnNovo() { _backup = new ModeloBackup(); cbTipoBackup.SelectedIndex = 0; }
|
|
protected override void OnSalvar() { PreencherModel(); MessageBox.Show("Rotina de backup agendada!", "LevelOS Security"); }
|
|
protected override void OnCancelar() { }
|
|
protected override void OnAlterar() { }
|
|
protected override void OnExcluir() { }
|
|
protected override void OnLocalizar(){ }
|
|
}
|
|
} |