/// <summary> /// quando clicar no botão cadastro o metodo ativa /// </summary> public void CadastraLivro() { bool teste = true; // testar if (Validacao_Nome(nome)) { nome = ""; onpropertyChange("nome"); xnome = "Valor Incorreto, Digite Apenas caracteres"; teste = false; } // testar se o nome do autor é valido if (Validacao_Nome(autor)) { autor = ""; onpropertyChange("autor"); xautor = "Nome Incorreto"; teste = false; } if (validar_isbn(isbn)) { isbn = ""; onpropertyChange("isbn"); xisbn = "ISBN invalido"; teste = false; } // se tudo estiver correto, então e executado o comando if (teste) { // cadastra o livro bd_Livro.Db_SetDada(Dados.Last().Codigo + 1, nome, autor, isbn, 1); // MessageBox.Show("Livro Cadastrado Com Sucesso" + Environment.NewLine + "Codigo do Livro " + (Dados.Last().Codigo + 1).ToString()); Dados.Add(new Livros(Dados.Count + 1, nome, autor, isbn, "Disponível")); onpropertyChange("ItensFiltrados"); nome = ""; xnome = ""; onpropertyChange("nome"); autor = ""; xautor = ""; onpropertyChange("autor"); isbn = ""; xisbn = ""; onpropertyChange("isbn"); } }
private void AtribuiEntrada(string[] atributo, string classe) { var entrada = new Entrada { Atributos = atributo, Classe = classe }; Dados.Add(entrada); if (!Classes.ContainsKey(classe)) { Classes.Add(classe, 0); } Classes[classe] += 1; }
private void Recuperar() { if (LoggerFile.Exists) { using (var reader = new StreamReader(LoggerFile.FullName)) { var linhas = reader.ReadToEnd().Split(new char[] { '\n', '\r' }, StringSplitOptions.RemoveEmptyEntries); if (!linhas[linhas.Length - 1].StartsWith("Checkpoint")) { MyList <string> undo = new MyList <string>(), redo = new MyList <string>(); Console.WriteLine("Banco corrompido"); var eventos = LogEvent.ParsarLog(linhas); int i; for (i = eventos.Count - 1; i >= 0; i--) { if (eventos[i].Type == LogEventTypes.Checkpoint) { foreach (var pendente in Regex.Match(linhas[i], "\\((.*)\\)").Groups[1].Value.Split(';')) { if (!redo.Contains(eventos[i].Id)) { undo.AddIfUnique(eventos[i].Id); } } break; } else if (eventos[i].Type == LogEventTypes.Commit) { redo.AddIfUnique(eventos[i].Id); } else if (!redo.Contains(eventos[i].Id)) { undo.AddIfUnique(eventos[i].Id); } } foreach (var evento in eventos) { if (redo.Contains(evento.Id)) { switch (evento.Type) { case LogEventTypes.Remove: Dados.RemoveAll(registro => registro.Id == evento.Data.Id); break; case LogEventTypes.Insert: Dados.Add(evento.Data); break; case LogEventTypes.Update: var antiga = Dados.FindIndex(entrada => entrada.Id == evento.Data.Id); if (antiga == -1) { throw new DBException($"Registro de Id {evento.Data.Id} não foi encontrado, então não pode ser alterado."); } Dados.RemoveAt(antiga); Dados.Insert(antiga, evento.Data); break; } } } recuperado = true; MessageBox.Show($"Undo: {string.Join(", ", undo)}\nRedo: {string.Join(", ", redo)}"); } } } }