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); }
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); }
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(); } }