/// <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");
            }
        }
Beispiel #2
0
        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;
        }
Beispiel #3
0
        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)}");
                    }
                }
            }
        }