Example #1
0
        public async Task <IActionResult> OnPostEnviarCorreo(string recibido)
        {
            try
            {
                InfoLiquid liq = JsonConvert.DeserializeObject <InfoLiquid>(recibido);
                //liq.idCierre = idCierre;
                //liq.emailDest = emailDest;
                //liq.emailCC = emailCC;
                //liq.body = body;

                await info.EnviarCorreo(liq);

                return(new JsonResult(true));
            }
            catch (Exception ex)
            {
                return(new JsonResult(false));
            }
        }
        public HttpResponseMessage GetEnviarCorreo([FromBody] InfoLiquid item)
        {
            try
            {
                G.AbrirConexionAPP(out db);
                List <Attachment> adjuntos = new List <Attachment>();
                // List<EncCompras> compras = new List<EncCompras>();
                SendGridEmail.EmailSender emailsender = new SendGridEmail.EmailSender();
                var parametros = db.Parametros.FirstOrDefault();

                var Cierre = db.DetCierre.Where(a => a.idCierre == item.idCierre).ToList();


                foreach (var det in Cierre)
                {
                    var Compra = db.EncCompras.Where(a => a.id == det.idFactura).FirstOrDefault();
                    if (Compra.PdfFac != null)
                    {
                        Attachment att = new Attachment(new MemoryStream(Compra.PdfFac), Compra.PdfFactura);
                        adjuntos.Add(att);
                    }
                }

                var       bodyH     = item.body;
                HtmlToPdf converter = new HtmlToPdf();

                // set converter options
                converter.Options.PdfPageSize        = PdfPageSize.A4;
                converter.Options.PdfPageOrientation = PdfPageOrientation.Portrait;
                converter.Options.MarginLeft         = 5;
                converter.Options.MarginRight        = 5;
                // create a new pdf document converting an html string
                SelectPdf.PdfDocument doc = converter.ConvertHtmlString(bodyH);

                var bytes = doc.Save();
                doc.Close();

                Attachment att3 = new Attachment(new MemoryStream(bytes), "Liquidacion.pdf");
                adjuntos.Add(att3);



                var resp = emailsender.SendV2(item.emailDest, item.emailCC, "", parametros.RecepcionEmail, "Liquidación", "Liquidación por revisar", item.body, parametros.RecepcionHostName, parametros.EnvioPort, parametros.RecepcionUseSSL.Value, parametros.RecepcionEmail, parametros.RecepcionPassword, adjuntos);

                if (!resp)
                {
                    throw new Exception("No se ha podido enviar el correo con la liquidación");
                }

                G.CerrarConexionAPP(db);
                return(Request.CreateResponse(HttpStatusCode.OK));
            }
            catch (Exception ex)
            {
                BitacoraErrores be = new BitacoraErrores();
                be.Descripcion = ex.Message;
                be.StackTrace  = ex.StackTrace;
                be.Metodo      = "Error de Correo";
                be.Fecha       = DateTime.Now;
                db.BitacoraErrores.Add(be);
                db.SaveChanges();

                G.GuardarTxt("ErrorCorreo.txt", ex.Message + " -> " + ex.StackTrace);
                G.CerrarConexionAPP(db);
                return(Request.CreateResponse(HttpStatusCode.InternalServerError, ex));
            }
        }