Beispiel #1
0
        //identificar e notificar novos registros.
        private async Task Notificar()
        {
            var lc = await Task.Run(() => Celula.recuperarTodasCelulas());

            var lm = await Task.Run(() => Ministerio.recuperarTodosMinisterios());

            var lp = await Task.Run(() => Pessoa.recuperarTodos());

            var lr = await Task.Run(() => new Reuniao().recuperar(null));

            ListaPessoas     = lp.OfType <Pessoa>().Where(p => p.Codigo > UltimoRegistroPessoa).ToList();
            ListaMinisterios = lm.OfType <Ministerio>().Where(m => m.IdMinisterio > UltimoRegistroMinisterio).ToList();
            ListaCelulas     = lc.OfType <Celula>().Where(c => c.IdCelula > UltimoRegistroCelula).ToList();
            ListaReunioes    = lr.OfType <Reuniao>().Where(r => r.IdReuniao > UltimoRegistroReuniao).ToList();

            if (ListaPessoas != null)
            {
                if (ListaPessoas.Count != 0)
                {
                    foreach (var p in ListaPessoas)
                    {
                        notifyIcon.ShowBalloonTip(2000, "Info", "Novo registro de uma pessoa. ID: " + p.Codigo, ToolTipIcon.Info);
                    }

                    ListaPessoas.Clear();
                    UltimoRegistroPessoa = lp.OfType <Pessoa>().OrderBy(m => m.IdPessoa).Last().Codigo;
                }
            }

            if (ListaReunioes != null)
            {
                if (ListaReunioes.Count != 0)
                {
                    foreach (var p in ListaReunioes)
                    {
                        notifyIcon.ShowBalloonTip(2000, "Info", "Novo registro de uma reunião. ID: " + p.IdReuniao, ToolTipIcon.Info);
                    }

                    ListaReunioes.Clear();
                    UltimoRegistroReuniao = lr.OfType <Reuniao>().Last().IdReuniao;
                }
            }

            if (ListaMinisterios != null)
            {
                if (ListaMinisterios.Count != 0)
                {
                    foreach (var p in ListaMinisterios)
                    {
                        notifyIcon.ShowBalloonTip(2000, "Info", "Novo registro de um ministério. ID: " + p.IdMinisterio, ToolTipIcon.Info);
                    }

                    ListaMinisterios.Clear();
                    UltimoRegistroMinisterio = lm.OfType <Ministerio>().Last().IdMinisterio;
                }
            }

            if (ListaCelulas != null)
            {
                if (ListaCelulas.Count != 0)
                {
                    foreach (var p in ListaCelulas)
                    {
                        notifyIcon.ShowBalloonTip(2000, "Info", "Novo registro de uma celula. ID: " + p.IdCelula, ToolTipIcon.Info);
                    }

                    ListaCelulas.Clear();
                    UltimoRegistroCelula = lc.OfType <Celula>().Last().IdCelula;
                }
            }
        }
        public async Task  imprimir(modelocrud modelo, string tipo)
        {
            List <modelocrud> lista = new List <modelocrud>();
            PdfPTable         table = null;
            var valorTipo           = "";
            var porcentagem         = "";
            var ListaPessoas        = await Task.Run(() => Pessoa.recuperarTodos());

            int totalPessoas     = ListaPessoas.Count;
            var ListaMinisterios = await Task.Run(() => Ministerio.recuperarTodosMinisterios());

            int totalMinisterios = ListaMinisterios.Count;
            var ListaCelulas     = await Task.Run(() => Celula.recuperarTodasCelulas());

            int totalCelulas = ListaCelulas.Count;

            if (modelo != null)
            {
                lista = modelo.recuperar(null);
                var i = 0;
                foreach (var item in lista.ToList())
                {
                    Pessoa     p  = null;
                    Ministerio m  = null;
                    Celula     c  = null;
                    Reuniao    r  = null;
                    var        id = 0;
                    if (modelo is Pessoa)
                    {
                        p = (Pessoa)item; id = p.IdPessoa;
                    }
                    if (modelo is Ministerio)
                    {
                        m = (Ministerio)item; id = m.IdMinisterio;
                    }
                    if (modelo is Celula)
                    {
                        c = (Celula)item; id = c.IdCelula;
                    }
                    if (modelo is Reuniao)
                    {
                        r = (Reuniao)item; id = r.IdReuniao;
                    }

                    lista[i] = item.recuperar(id)[0];
                    i++;
                }
            }


            if (modelo != null && modelo is Pessoa)
            {
                table = new PdfPTable(2);
                var     quant = modelo.recuperar(null).Count;
                decimal p     = (quant / totalPessoas);
                porcentagem = "A procentagem em relação ao total de pessoas é "
                              + p.ToString("F2") + "%. Quantidade de registros é: "
                              + quant;
            }

            if (modelo != null && modelo is Celula)
            {
                var     quant = modelo.recuperar(null).Count;
                decimal p     = (quant / totalCelulas);
                porcentagem = "A procentagem em relação ao total de celulas é "
                              + p.ToString("f2") + "%. Quantidade de registros é: "
                              + quant;
            }

            if (modelo != null && modelo is Ministerio)
            {
                var     quant = modelo.recuperar(null).Count;
                decimal p     = (quant / totalMinisterios);
                porcentagem = "A procentagem em relação ao total de ministérios é "
                              + p.ToString("f2") + "%. Quantidade de registros é: "
                              + quant;
            }

            if (modelo is Reuniao)
            {
                table = new PdfPTable(3);
            }



            if (tipo == "Pessoa" && modelo == null)
            {
                lista = Pessoa.recuperarTodos();
                table = new PdfPTable(2);
                var i = 0;
                foreach (var item in lista.OfType <Pessoa>().ToList())
                {
                    lista[i] = item.recuperar(item.IdPessoa)[0];
                    i++;
                }
            }

            if (tipo == "MembroLgpd" && modelo == null)
            {
                lista = MembroLgpd.recuperarTodosMembros();
                table = new PdfPTable(2);
                var i = 0;
                foreach (var item in lista.OfType <Pessoa>().ToList())
                {
                    lista[i] = item.recuperar(item.IdPessoa)[0];
                    i++;
                }
            }

            if (tipo == "Membro" && modelo == null)
            {
                lista = Membro.recuperarTodosMembros();
                table = new PdfPTable(2);
                var i = 0;
                foreach (var item in lista.OfType <Pessoa>().ToList())
                {
                    lista[i] = item.recuperar(item.IdPessoa)[0];
                    i++;
                }
            }

            if (tipo == "Ministerio" && modelo == null)
            {
                lista = Ministerio.recuperarTodosMinisterios();
                table = new PdfPTable(2);
                var i = 0;
                foreach (var item in lista.OfType <Ministerio>().ToList())
                {
                    lista[i] = item.recuperar(item.IdMinisterio)[0];
                    i++;
                }
            }

            if (tipo == "Celula" && modelo == null)
            {
                lista = Celula.recuperarTodasCelulas();
                table = new PdfPTable(2);
                var i = 0;
                foreach (var item in lista.OfType <Celula>().ToList())
                {
                    lista[i] = item.recuperar(item.IdCelula)[0];
                    i++;
                }
            }

            if (modelo is MudancaEstado)
            {
                table = new PdfPTable(4);
            }

            if (tipo != "")
            {
                valorTipo = tipo;
            }
            else
            {
                valorTipo = modelo.GetType().Name;
            }

            Document doc = new Document(PageSize.A4);

            doc.SetMargins(40, 40, 40, 80);

            string path = Directory.GetCurrentDirectory();

            string caminho = path + @"\relatorio\" + "relatorio-" + valorTipo + "-" + DateTime.Now.ToString("dd-MM-yyyy") + ".pdf";

            PdfWriter writer = PdfWriter.GetInstance(doc, new FileStream(caminho, FileMode.Create));

            doc.Open();

            Paragraph titulo = new Paragraph();

            titulo.Font      = new Font(Font.FontFamily.COURIER, 40);
            titulo.Alignment = Element.ALIGN_CENTER;
            titulo.Add("Relatório \n\n");
            doc.Add(titulo);



            Paragraph paragrafo = new Paragraph("", new Font(Font.NORMAL, 12));
            string    conteudo  = "Este é um relatório do dia " + DateTime.Now.ToString("dd/MM/yyyy") +
                                  " cujo o conteudo é referente a " + valorTipo + $". {porcentagem} \n\n";

            paragrafo.Add(conteudo);
            doc.Add(paragrafo);



            foreach (var item in lista.OfType <Reuniao>())
            {
                table.AddCell("Id: " + item.IdReuniao.ToString());
                table.AddCell("Data da reunião: " + item.Data_reuniao.ToString());
            }

            foreach (var item in lista.OfType <PessoaDado>())
            {
                table.AddCell("ID: " + item.Codigo.ToString());
                table.AddCell("Nome: " + item.NomePessoa.ToString());
            }

            foreach (var item in lista.OfType <PessoaLgpd>().ToList())
            {
                table.AddCell("ID: " + item.Codigo.ToString());
                table.AddCell("Email: " + item.Email.ToString());
            }

            foreach (var item in lista.OfType <Ministerio>())
            {
                table.AddCell("Id: " + item.IdMinisterio.ToString());
                table.AddCell("Data da reunião: " + item.Nome.ToString());
            }

            foreach (var item in lista.OfType <Celula>())
            {
                table.AddCell("Id: " + item.IdCelula.ToString());
                table.AddCell("Data da reunião: " + item.Nome.ToString());
            }

            foreach (var item in lista.OfType <Historico>())
            {
                table.AddCell("Data de inicio: " + item.Data_inicio.ToString());
                table.AddCell("Data final: " + item.Data_inicio.AddDays(60).ToString());
                table.AddCell("Faltas: " + item.Falta.ToString());
            }

            foreach (var item in lista.OfType <MudancaEstado>())
            {
                table.AddCell("Data da mudança: " + item.DataMudanca.ToString("dd/MM/yyyy"));
                table.AddCell("antigo estado: " + item.velhoEstado);
                table.AddCell("novo estado: " + item.novoEstado);
                table.AddCell("Id da pessoa: " + item.CodigoPessoa);
            }

            doc.Add(table);

            string caminhoImg =
                "http://www.clickfamilia.org.br/oikos2015/wp-content/uploads/2019/07/what-is-family-ministry-lead-300x225.jpg";
            Image img = Image.GetInstance(caminhoImg);

            doc.Add(img);

            doc.Close();

            System.Diagnostics.Process.Start(caminho);
        }