예제 #1
0
        public void SalvarLista(Lista lista, string caminhoArquivo)
        {
            ListaPub listaPublicacao = null;

            Execute(d => { listaPublicacao = d.CarregarListaPublicacao(lista.IdLista); });
            PdfFileWriter.WriteToPdf(caminhoArquivo, Model, listaPublicacao);
            System.Diagnostics.Process.Start(caminhoArquivo);
        }
예제 #2
0
        public ListaPub CarregarListaPublicacao(int idLista)
        {
            ListaPub lista;

            using (SqlCeCommand command = CreateCommand("SELECT * FROM LISTA WHERE ID_LISTA = @ID_LISTA")) {
                command.Parameters.AddWithValue("ID_LISTA", idLista);
                using (SqlCeResultSet resultSet = command.ExecuteResultSet(ResultSetOptions.None)) {
                    resultSet.Read();
                    lista = new ListaPub()
                    {
                        IdLista             = resultSet.GetInt32(resultSet.GetOrdinal("ORDEM_SORTEIO")),
                        Nome                = resultSet.GetString(resultSet.GetOrdinal("NOME")),
                        FonteSementeSorteio = resultSet.GetString(resultSet.GetOrdinal("FONTE_SEMENTE")),
                        SementeSorteio      = resultSet.GetInt32(resultSet.GetOrdinal("SEMENTE_SORTEIO")),
                        Candidatos          = new List <CandidatoPub>()
                    };
                }
            }

            string queryCandidatos = @"
                SELECT
                    CANDIDATO_LISTA.SEQUENCIA_CONTEMPLACAO, CANDIDATO.CPF, CANDIDATO.NOME, QUANTIDADE_CRITERIOS
                FROM
                    CANDIDATO_LISTA
                    INNER JOIN LISTA ON CANDIDATO_LISTA.ID_LISTA = LISTA.ID_LISTA
                    INNER JOIN CANDIDATO ON CANDIDATO_LISTA.ID_CANDIDATO = CANDIDATO.ID_CANDIDATO
                WHERE LISTA.ID_LISTA = @ID_LISTA AND CANDIDATO_LISTA.SEQUENCIA_CONTEMPLACAO IS NOT NULL
                ORDER BY CANDIDATO_LISTA.SEQUENCIA_CONTEMPLACAO
            ";

            using (SqlCeCommand command = CreateCommand(queryCandidatos)) {
                command.Parameters.AddWithValue("ID_LISTA", idLista);
                using (SqlCeResultSet resultSet = command.ExecuteResultSet(ResultSetOptions.None)) {
                    while (resultSet.Read())
                    {
                        lista.Candidatos.Add(new CandidatoPub {
                            IdCandidato         = resultSet.GetInt32(resultSet.GetOrdinal("SEQUENCIA_CONTEMPLACAO")),
                            Cpf                 = resultSet.GetDecimal(resultSet.GetOrdinal("CPF")),
                            Nome                = resultSet.GetString(resultSet.GetOrdinal("NOME")),
                            QuantidadeCriterios = resultSet.GetInt32(resultSet.GetOrdinal("QUANTIDADE_CRITERIOS"))
                        });
                    }
                }
            }

            return(lista);
        }
예제 #3
0
        internal static void WriteToPdf(string caminhoArquivo, Sorteio sorteio, ListaPub lista)
        {
            using (FileStream fileStream = new FileStream(caminhoArquivo, FileMode.Create)) {
                PdfWriter writer = null;
                using (Document document = new Document(PageSize.A4)) {
                    document.SetMargins(20, 20, 20, 40);
                    document.AddCreationDate();
                    writer           = PdfWriter.GetInstance(document, fileStream);
                    writer.PageEvent = new CustomPdfPageEventHelper(lista.Nome);
                    document.Open();

                    Font      headerFont = FontFactory.GetFont(FontFactory.HELVETICA_BOLD, 12);
                    Paragraph p          = new Paragraph();
                    p.Alignment = Element.ALIGN_CENTER;
                    p.Font      = headerFont;
                    p.Add("PREFEITURA DE SOROCABA \n");
                    p.Add(string.Format("{0}\n", sorteio.Nome.ToUpper()));
                    p.Add(string.Format("{0:00} - {1}\n", lista.IdLista, lista.Nome.ToUpper()));
                    p.Add(string.Format("Semente de Sorteio: {0} ({1})\n\n", lista.SementeSorteio, lista.FonteSementeSorteio));
                    document.Add(p);

                    PdfPTable table = new PdfPTable(4);
                    table.WidthPercentage = 100f;
                    table.DefaultCell.HorizontalAlignment = 1;
                    table.SetWidths(new float[] { 1f, 2f, 8f, 1f });
                    table.HeaderRows = 1;

                    table.AddCell(new PdfPCell(new Phrase("Nº", headerFont))
                    {
                        HorizontalAlignment = 1,
                        BackgroundColor     = BaseColor.LIGHT_GRAY
                    });

                    table.AddCell(new PdfPCell(new Phrase("CPF", headerFont))
                    {
                        HorizontalAlignment = 1,
                        BackgroundColor     = BaseColor.LIGHT_GRAY
                    });

                    table.AddCell(new PdfPCell(new Phrase("NOME", headerFont))
                    {
                        HorizontalAlignment = 1,
                        BackgroundColor     = BaseColor.LIGHT_GRAY
                    });

                    table.AddCell(new PdfPCell(new Phrase("CRIT.", headerFont))
                    {
                        HorizontalAlignment = 1,
                        BackgroundColor     = BaseColor.LIGHT_GRAY
                    });

                    foreach (CandidatoPub candidato in lista.Candidatos)
                    {
                        table.AddCell(string.Format("{0:000}", candidato.IdCandidato));
                        table.AddCell(string.Format("{0:000'.'000'.'000-00}", candidato.Cpf));
                        table.AddCell(candidato.Nome.ToUpper());
                        table.AddCell(candidato.QuantidadeCriterios.ToString());
                    }

                    document.Add(table);
                }
                writer.Close();
            }
        }