private void enviarPackExpress(string extension) { System.Text.StringBuilder strb = new System.Text.StringBuilder(); string sTexto = ""; svcSendPack.SendPackClient oPaq = null; try { string strMensaje = ""; string strCabecera = ""; string strDatos = ""; string strAsunto = ""; string strTO = ""; string[] aNombreProfesionales = Regex.Split(strNombreProfesionales, @"/"); strAsunto = "Pedido CVT (Localizador: " + trackingId + ")"; strMensaje = "El pedido que has realizado para obtener los curriculums de los profesionales que se muestran al final de este correo, ha generado un documento que excede el tamaño máximo para ser enviado por correo (10Mb), por lo que se te enviará en breve a través de PAQEXPRESS.<br><br>"; strMensaje += "Lozalizador asignado: " + trackingId; strDatos = "<br><br><table id='tblTitulo' width='100%' class='texto' border='0' cellspacing='0' cellpadding='0'>"; //for (int i = aNombreProfesionales.Length - 1; i >= 0; i--) for (int i = 0; i < aNombreProfesionales.Length; i++) { if (aNombreProfesionales[i] == "") { continue; } strDatos += "<tr>"; strDatos += "<td width='100%'>" + aNombreProfesionales[i].ToString() + "</td>"; strDatos += "</tr>"; } strDatos += "</table>"; ArrayList aListCorreo = new ArrayList(); string[] aDestinatarios = Regex.Split(strDestinatarios, @","); for (int i = 0; i < aDestinatarios.Length; i++) { try { strMensaje += strCabecera + strDatos; strTO = aDestinatarios[i].ToString(); string[] aMail = { strAsunto, strMensaje, strTO, "" }; aListCorreo.Add(aMail); } catch (System.Exception objError) { enviarCorreoErrorEDA("Error al enviar el mail.", objError); enviarCorreoErrorUsuario(); } } if (aDestinatarios.Length != 0) { SUPER.Capa_Negocio.Correo.EnviarCorreosCVT(aListCorreo); } /********** Inicio de envío a PaqExpress **************/ oPaq = new svcSendPack.SendPackClient(); DateTime dtIni = DateTime.Now; sTexto = dtIni.ToString() + "\r\n"; strb.Append("<Pack>"); strb.Append("<User>PAQEXPRESS</User>"); strb.Append("<Clave>XRJ001-WCF-SUPER-CV.</Clave>"); strb.Append("<IdFicepi>" + strDestinatariosIdFicepi + "</IdFicepi>"); strb.Append("<FPedido>" + DateTime.Now.ToString() + "</FPedido>"); strb.Append("<Profesionales>" + strNombreProfesionales.Replace("/", ";") + "</Profesionales>"); strb.Append("<Ref>" + trackingId + "</Ref>");//Nº de referencia para tracking strb.Append("</Pack>"); //oPaq.CrearPaqueteCV(new FileInfo(nombreDoc + extension).Name, strb.ToString(), File.OpenRead(pathDirectory + trackingId + @"\" + nombreDoc + extension)); oPaq.CrearPaqueteCV(new FileInfo(sFileName).Name, strb.ToString(), File.OpenRead(sFileName)); /********** Fin de envío a PaqExpress **************/ } catch (FaultException <svcSendPack.PackException> cex) { string sError = "Error: Código:" + cex.Detail.ErrorCode + ". Descripción: " + cex.Detail.Message;// +" " + cex.Detail.InnerMessage; if (cex.Detail.InnerMessage != "") { sError += "\r\nInnerMessage: " + cex.Detail.InnerMessage; } sTexto += sError + "\r\n"; enviarCorreoErrorEDA(sTexto, cex); enviarCorreoErrorUsuario(); } catch (Exception ex) { enviarCorreoErrorEDA(ex.Message + "\r\n", ex); enviarCorreoErrorUsuario(); } finally { //Cierre del canal if (oPaq != null && oPaq.State != System.ServiceModel.CommunicationState.Closed) { if (oPaq.State != System.ServiceModel.CommunicationState.Faulted) { oPaq.Close(); } else if (oPaq.State != System.ServiceModel.CommunicationState.Closed) { oPaq.Abort(); } } } }
private string Procesar(int nAnomes, string strDatos) { string sRes = "OK", sIdFicepi = Session["IDFICEPI_ENTRADA"].ToString(), sNomArchivoZip = ""; StringBuilder strb = new StringBuilder(); try { DataSet ds = NODO.FicherosIAP(null, nAnomes, strDatos); #region Crear directorio //string path = @"D:\cursos\ficheros"; //if (!impersonateValidUser("aplicacion_super", @"ibdatdo\aplicacion_super", "@pL1suP3r!")) // return "Error@#@Error en la impersonación"; //string path = ConfigurationManager.AppSettings["pathFicherosIAP"].ToString(); string path = Request.PhysicalApplicationPath + "TempImagesGraficos\\FicheroIAP\\" + Session["IDRED"]; //SUPER.DAL.Log.Insertar("Verificar si el path existe"); if (Directory.Exists(path)) { Directory.Delete(path, true); } Directory.CreateDirectory(path); #endregion #region creacion de ficheros StringBuilder result = new StringBuilder(); foreach (DataRow oProyecto in ds.Tables[0].Rows)//Recorro tabla de proyectos { for (int i = 0; i < ds.Tables[0].Columns.Count; i++) { result.Append(oProyecto[i].ToString()); result.Append(i == ds.Tables[0].Columns.Count - 1 ? "\r\n" : "\t"); } //result.AppendLine(); } StreamWriter swProyecto = new StreamWriter(path + @"\proyecto.txt", false); swProyecto.WriteLine(result.ToString()); swProyecto.Close(); //SUPER.DAL.Log.Insertar("Fin tabla Proyectos"); result.Length = 0; foreach (DataRow oTarea in ds.Tables[1].Rows)//Recorro tabla de tarea { for (int i = 0; i < ds.Tables[1].Columns.Count; i++) { result.Append(oTarea[i].ToString()); result.Append(i == ds.Tables[1].Columns.Count - 1 ? "\r\n" : "\t"); } } StreamWriter swTarea = new StreamWriter(path + @"\tarea.txt", false); swTarea.WriteLine(result.ToString()); swTarea.Close(); result.Length = 0; foreach (DataRow oAtributo in ds.Tables[2].Rows)//Recorro tabla de Atributo { for (int i = 0; i < ds.Tables[2].Columns.Count; i++) { result.Append(oAtributo[i].ToString()); result.Append(i == ds.Tables[2].Columns.Count - 1 ? "\r\n" : "\t"); } } StreamWriter swAtributo = new StreamWriter(path + @"\atributo.txt", false); swAtributo.WriteLine(result.ToString()); swAtributo.Close(); result.Length = 0; foreach (DataRow oConsumo in ds.Tables[3].Rows)//Recorro tabla de Consumo { for (int i = 0; i < ds.Tables[3].Columns.Count; i++) { result.Append(oConsumo[i].ToString()); result.Append(i == ds.Tables[3].Columns.Count - 1 ? "\r\n" : "\t"); } } StreamWriter swConsumo = new StreamWriter(path + @"\consumo.txt", false); swConsumo.WriteLine(result.ToString()); swConsumo.Close(); result.Length = 0; foreach (DataRow oCliente in ds.Tables[4].Rows)//Recorro tabla de Cliente { for (int i = 0; i < ds.Tables[4].Columns.Count; i++) { result.Append(oCliente[i].ToString()); result.Append(i == ds.Tables[4].Columns.Count - 1 ? "\r\n" : "\t"); } } StreamWriter swCliente = new StreamWriter(path + @"\cliente.txt", false); swCliente.WriteLine(result.ToString()); swCliente.Close(); result.Length = 0; foreach (DataRow oEmpleado in ds.Tables[5].Rows)//Recorro tabla de Empleado { for (int i = 0; i < ds.Tables[5].Columns.Count; i++) { result.Append(oEmpleado[i].ToString()); result.Append(i == ds.Tables[5].Columns.Count - 1 ? "\r\n" : "\t"); } } StreamWriter swEmpleado = new StreamWriter(path + @"\empleado.txt", false); swEmpleado.WriteLine(result.ToString()); swEmpleado.Close(); result.Length = 0; foreach (DataRow oOrdenFact in ds.Tables[6].Rows)//Recorro tabla de Ordenes de facturación { for (int i = 0; i < ds.Tables[6].Columns.Count; i++) { result.Append(oOrdenFact[i].ToString()); result.Append(i == ds.Tables[6].Columns.Count - 1 ? "\r\n" : "\t"); } } StreamWriter swOrdenFact = new StreamWriter(path + @"\ordenesFacturacion.txt", false); swOrdenFact.WriteLine(result.ToString()); swOrdenFact.Close(); #endregion #region Genero un zip con todos los archivos de la carpeta sNomArchivoZip = CompressFile(path); FileInfo fInfo = new FileInfo(sNomArchivoZip); long lTamFich = fInfo.Length; long iTamEnBytes = fInfo.Length, TamMaxPermitido = 104857600;//100Mb string sTamMax = ConfigurationManager.AppSettings["TamMaxPack"]; if (sTamMax != "") { TamMaxPermitido = long.Parse(sTamMax) * 1024 * 1024;//Paso de Mb a bytes } if (iTamEnBytes > TamMaxPermitido) { return("TAMANO_EXCEDIDO@#@" + iTamEnBytes.ToString()); } #endregion #region Envío los ficheros al usuario //Si el fichero < 10Mb -> envío por correo sino por PaqExpress #region Establezco el tamaño del archivo double dTamMax = 10; bool bPaqExpress = false; FileStream fsFichero = System.IO.File.OpenRead(sNomArchivoZip); if ((fsFichero.Length / 1048576) > dTamMax) {//Si el resultado es > 10Mb enviarlo por PaqExpress bPaqExpress = true; } #endregion if (bPaqExpress) { #region Envío por PaqExpress svcSendPack.SendPackClient oPaq = new svcSendPack.SendPackClient(); try { strb.Append("<Pack>"); strb.Append("<User>PAQEXPRESS</User>"); strb.Append("<Clave>XRJ001-WCF-SUPER-CV.</Clave>"); strb.Append("<IdFicepi>" + sIdFicepi + "</IdFicepi>"); strb.Append("<FPedido>" + DateTime.Now.ToString() + "</FPedido>"); strb.Append("<Profesionales></Profesionales>"); strb.Append("<Obs>Paquete de ficheros para IAP</Obs>"); strb.Append("<Ref></Ref>");//Nº de referencia para tracking strb.Append("</Pack>"); //oPaq.CrearPaqueteCV(new FileInfo(nombreDoc + extension).Name, strb.ToString(), File.OpenRead(pathDirectory + trackingId + @"\" + nombreDoc + extension)); FileStream fAux = File.OpenRead(sNomArchivoZip); string sAuxName = new FileInfo(sNomArchivoZip).Name; oPaq.CrearPaqueteCV(sAuxName, strb.ToString(), fAux); } catch (FaultException <svcSendPack.PackException> cex) { string sError = "Error: Código:" + cex.Detail.ErrorCode + ". Descripción: " + cex.Detail.Message;// +" " + cex.Detail.InnerMessage; if (cex.Detail.InnerMessage != "") { sError += "\r\nInnerMessage: " + cex.Detail.InnerMessage; } sRes = sError + "\r\n"; } catch (Exception ex) { sRes = ex.Message; } finally { //Cierre del canal if (oPaq != null && oPaq.State != System.ServiceModel.CommunicationState.Closed) { if (oPaq.State != System.ServiceModel.CommunicationState.Faulted) { oPaq.Close(); } else if (oPaq.State != System.ServiceModel.CommunicationState.Closed) { oPaq.Abort(); } } } #endregion } else { #region Envío por correo string strAsunto = "Ficheros generados para IAP"; string strMensaje = "Se adjunta archivo comprimido que contiene los archivos generados para IAP"; string sDestinatario = Session["IDRED"].ToString(); string[] aMail = { strAsunto, strMensaje, sDestinatario, sNomArchivoZip }; ArrayList aListCorreo = new ArrayList(); aListCorreo.Add(aMail); SUPER.Capa_Negocio.Correo.EnviarCorreosCita(aListCorreo); #endregion } #endregion return(sRes + "@#@" + path); } catch (Exception ex) { return("Error@#@" + Errores.mostrarError("Error al obtener los datos.", ex)); } }