private void cargaDatos() { //cargar grid var parameters = new Dictionary <string, object>(); try { parameters.Add("@idPlanta", ddlPlanta.SelectedValue); var dt = DataAccess.executeStoreProcedureDataTable("spr_GET_BoletinChildPublicado", parameters, this.Session["connection"].ToString()); gdvBoletin.DataSource = dt; gdvBoletin.DataBind(); GridViewMail.DataSource = dt; GridViewMail.DataBind(); ViewState["GridBoletin"] = dt; //campos de cabecera txtNombre.Text = dt.Rows.Count > 0 ? dt.Rows[0]["vNombreBoletinHeader"].ToString() : ""; //txtDesde.Text = dt.Rows.Count > 0 ? dt.Rows[0]["dateFechaInicioBoletinHeader"].ToString() : "";txtHasta.Text = dt.Rows.Count > 0 ? dt.Rows[0]["dateFechaFinBoletinHeader"].ToString() : ""; //si no se cargo nada en el boletín, no mostrar el botón de enviar correo: if (gdvBoletin.Rows.Count < 1) { bntEnviar.Visible = false; } else { bntEnviar.Visible = true; } } catch (Exception EX) { Log.Error(EX); popUpMessageControl1.setAndShowInfoMessage(GetLocalResourceObject("ErrorDatos").ToString(), Common.MESSAGE_TYPE.Error); } }
protected void bntEnviar_Click(object sender, EventArgs e) { try { string path = HttpContext.Current.Server.MapPath(string.Format("{0}/{1}", _XMLRootFolder, GetLocalResourceObject("Boletin.pdf"))); var sb = new StringBuilder(); var sw = new StringWriter(sb); var htmlTw = new HtmlTextWriter(sw); //gdvBoletin.RenderControl(htmlTw); GridViewMail.Visible = true; GridViewMail.RenderControl(htmlTw); GridViewMail.Visible = false; var html = sb.ToString(); //var html = ""; //Create PDF document //var ms = new MemoryStream(); Rectangle rect = PageSize.A4.Rotate(); var pdfDocument = new Document(rect); var writer = PdfWriter.GetInstance(pdfDocument, new FileStream(path, FileMode.Create)); pdfDocument.Open(); pdfDocument.Open(); XMLWorkerHelper.GetInstance().ParseXHtml(writer, pdfDocument, new StringReader(html)); pdfDocument.Close(); #region Correo var parameters = new Dictionary <string, object>(); parameters.Add("@ACTIVO", true); parameters.Add("@planta", ddlPlanta.SelectedValue); var dt = DataAccess.executeStoreProcedureDataTable("spr_ObtieneCorreos", parameters, this.Session["connection"].ToString()); if (dt.Rows.Count > 0) { foreach (DataRow row in dt.Rows) { var ms = new FileStream(path, FileMode.Open); try{ if (DBNull.Value != row["correo"] && !string.IsNullOrEmpty(row["correo"].ToString())) { //Envío de correo var pv = new Dictionary <string, string>(); var files = new Dictionary <string, Stream> { { "Boletin.pdf", ms } }; Common.SendMailByDictionary(pv, files, row["correo"].ToString(), "BoletinPublicado"); //popUpMessageControl1.setAndShowInfoMessage("Correo enviado exitosamente", Common.MESSAGE_TYPE.Success); popUpMessageControl1.setAndShowInfoMessage(GetLocalResourceObject("CorreoExito").ToString(), Common.MESSAGE_TYPE.Success); } ms.Close(); } catch (Exception ex) { Log.Error(ex); //popUpMessageControl1.setAndShowInfoMessage("No fue posible enviar el correo: " + ex.Message, Common.MESSAGE_TYPE.Warning); popUpMessageControl1.setAndShowInfoMessage(GetLocalResourceObject("CorreoError").ToString(), Common.MESSAGE_TYPE.Warning); } finally { ms.Close(); } } if (File.Exists(path)) { File.Delete(path); } } #endregion } catch (Exception ex) { Log.Error(ex); popUpMessageControl1.setAndShowInfoMessage(GetLocalResourceObject("ErrorCorreo").ToString(), Common.MESSAGE_TYPE.Warning); } //finally { // //ms = null; // //ms.Close(); //} }