public static List <Leitor> ListarTodos(BaseDados bd, int primeiro,
                                                int ultimo)
        {
            string sql = $@"SELECT nleitor,nome,data_nasc,fotografia,estado
                            FROM (
                                SELECT row_number() over (order by nleitor) as num,
                                nleitor,nome,data_nasc,fotografia,estado FROM Leitores) as p
                            WHERE num>={primeiro} and num<={ultimo}";

            var dados = bd.devolveSQL(sql);

            List <Leitor> lista = new List <Leitor>();

            foreach (DataRow linha in dados.Rows)
            {
                int      nleitor    = int.Parse(linha["nleitor"].ToString());
                string   nome       = linha["nome"].ToString();
                DateTime data       = DateTime.Parse(linha["data_nasc"].ToString());
                byte[]   fotografia = (byte[])linha["fotografia"];
                bool     estado     = bool.Parse(linha["estado"].ToString());
                Leitor   novo       = new Leitor(nleitor, nome, data, fotografia, estado);
                lista.Add(novo);
            }
            return(lista);
        }
Ejemplo n.º 2
0
        private void DGLeitores_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            Leitor lt = (Leitor)DGLeitores.SelectedItem;

            if (lt == null)
            {
                return;
            }
            tbNome.Text         = lt.nome;
            DPData.SelectedDate = lt.data_nascimento;
            string ficheiro = Utils.pastaDoPrograma() + @"\temp.jpg";

            Utils.VetorParaImagem(lt.fotografia, ficheiro);
            //Corrigir o problema do lock ao ficheiro
            BitmapImage img = new BitmapImage();

            img.BeginInit();
            img.CacheOption   = BitmapCacheOption.OnLoad;
            img.CreateOptions = BitmapCreateOptions.IgnoreImageCache;
            img.UriSource     = new Uri(ficheiro);
            img.EndInit();
            ImgFoto.Source = img;

            //apagar o ficheiro temp.jpg
            File.Delete(ficheiro);
            btRemover.Visibility   = Visibility.Visible;
            btAtualizar.Visibility = Visibility.Visible;
        }
Ejemplo n.º 3
0
        void ContarPaginas()
        {
            decimal npaginas = Math.Ceiling((decimal)Leitor.NrLeitores(bd) / LeitoresPorPagina);

            cbPaginacao.Items.Clear();
            for (int i = 1; i <= npaginas; i++)
            {
                cbPaginacao.Items.Add(i);
            }
        }
Ejemplo n.º 4
0
 private void AtualizaGrid()
 {
     if (cbPaginacao.SelectedItem == null)
     {
         DGLeitores.ItemsSource = Leitor.ListarTodos(bd);
     }
     else
     {
         int p        = int.Parse(cbPaginacao.SelectedItem.ToString());
         int primeiro = (p - 1) * LeitoresPorPagina;
         DGLeitores.ItemsSource = Leitor.ListarTodos(bd, primeiro + 1, primeiro + LeitoresPorPagina);
     }
 }
Ejemplo n.º 5
0
        //remover
        private void btRemover_Click(object sender, RoutedEventArgs e)
        {
            Leitor lt = (Leitor)DGLeitores.SelectedItem;

            if (lt == null)
            {
                return;
            }
            Leitor.Remover(bd, lt.nleitor);
            LimparForm();
            AtualizaGrid();
            ContarPaginas();
        }
Ejemplo n.º 6
0
        //adicionar
        private void Button_Click(object sender, RoutedEventArgs e)
        {
            string   nome = tbNome.Text;
            DateTime data = DPData.SelectedDate.Value;
            var      foto = Utils.ImagemParaVetor(ImgFoto.Tag.ToString());

            Leitor novo = new Leitor(0, nome, data, foto, true);

            novo.Adicionar(bd);

            LimparForm();
            AtualizaGrid();
            ContarPaginas();
        }
        public static List <Leitor> ListarTodos(BaseDados bd)
        {
            var           dados = bd.devolveSQL("SELECT * FROM Leitores");
            List <Leitor> lista = new List <Leitor>();

            foreach (DataRow linha in dados.Rows)
            {
                int      nleitor    = int.Parse(linha["nleitor"].ToString());
                string   nome       = linha["nome"].ToString();
                DateTime data       = DateTime.Parse(linha["data_nasc"].ToString());
                byte[]   fotografia = (byte[])linha["fotografia"];
                bool     estado     = bool.Parse(linha["estado"].ToString());
                Leitor   novo       = new Leitor(nleitor, nome, data, fotografia, estado);
                lista.Add(novo);
            }
            return(lista);
        }
Ejemplo n.º 8
0
        //atualizar
        private void btAtualizar_Click(object sender, RoutedEventArgs e)
        {
            Leitor lt = (Leitor)DGLeitores.SelectedItem;

            if (lt == null)
            {
                return;
            }
            lt.nome            = tbNome.Text;
            lt.data_nascimento = DPData.SelectedDate.Value;
            if (ImgFoto.Tag != null)
            {
                lt.fotografia = Utils.ImagemParaVetor(ImgFoto.Tag.ToString());
            }
            lt.Atualizar(bd);
            LimparForm();
            AtualizaGrid();
        }