private bool GenerarArchivoOmitidos() { try { if ((this.lngOmitidos > 0) || (this.lngErroneos > 0)) { string strProceso = "ImportacionMasiva"; string strFolder = Path.Combine(System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase).ToString().Replace("file:\\", ""), "files"); string strNombre = "ERR_" + this.strUsuario + "_" + strProceso + ".csv"; string strRuta = Path.Combine(strFolder, strNombre); ComprobarRuta(strFolder); this.archivoDesviaciones = new INF_Archive(strRuta, 3); this.archivoDesviaciones.Separador = ","; this.archivoDesviaciones.Proceso = strProceso; this.archivoDesviaciones.CrearArchivoTexto(false, true); using (StreamWriter pfile = new StreamWriter(this.archivoDesviaciones.Ruta)) { DataRow[] rowFind = this.resultados.Select("RES_ROM = true OR RES_RER = true", "NUM_REGISTRO ASC"); pfile.WriteLine("RENGLON,OBSERVACIONES"); foreach (DataRow row in rowFind) { string strLine = row["NUM_REGISTRO"].ToString() + this.archivoDesviaciones.Separador + row["OBSERVACIONES"].ToString(); pfile.WriteLine(strLine); } } return(true); } else { // No se creo archivo return(false); } } catch (Exception Error) { string strMsgError = Error.Message; return(false); } }
//---------------------------- #region Constructor public CL_ImportacionMasiva(int IdNegocio, int IdLayout, INF_Archive Archivo, string Usuario = "SYS") { // Inicializa variables archivo = Archivo; strUsuario = Usuario; intIdNegocio = IdNegocio; intIdLayout = IdLayout; dteInicio = DateTime.Now; dteTermino = null; lngCorrectos = 0; lngOmitidos = 0; lngErroneos = 0; strObservaciones = string.Empty; encabezados = null; if (cnf.Estatus == Configuracion.Status.Correcto) { db.DBConString = cnf.CnnString; CL_Layout loadLayout = new CL_Layout(IdNegocio, IdLayout, db); this.layout = loadLayout; strNegocio = this.layout.Negocio; strLayout = this.layout.Nombre; // Prepara contenedor de resultados this.resultados = new DataTable(); this.resultados.Columns.Add("NUM_REGISTRO", Type.GetType("System.Int64")); this.resultados.Columns.Add("RES_ROK", Type.GetType("System.Boolean")); this.resultados.Columns.Add("RES_ROM", Type.GetType("System.Boolean")); this.resultados.Columns.Add("RES_RER", Type.GetType("System.Boolean")); this.resultados.Columns.Add("OBSERVACIONES", Type.GetType("System.String")); // Carga archivo CargarArchivo(); dteTermino = DateTime.Now; // Registra en base de datos registrarDatosEnBD(); File.Delete(archivo.Ruta); } }
protected void btnUpload_Click(object sender, EventArgs e) { // Ruta de archivos temporales en servidor string strFolder = Server.MapPath("../Files/tmp/"); if (getArchivo.Value != "") { // Recepción de archivo INF_Archive arcSorce = new INF_Archive(getArchivo.PostedFile.FileName); // En caso de no existir el folder, lo crea if (!Directory.Exists(strFolder)) { Directory.CreateDirectory(strFolder); } // Carga archivo en servidor INF_Archive arcTarget = new INF_Archive(strFolder + arcSorce.NombreCompleto); int i = 0; string nombreOriginal = arcTarget.Nombre; // Comprueba existencia en servidor while (File.Exists(arcTarget.Ruta)) { // Obtiene nombre de archivo consecutivo i++; arcTarget.Nombre = nombreOriginal + "(" + i + ")"; } // Carga archivo en servidor try { getArchivo.PostedFile.SaveAs(arcTarget.Ruta); int IdNegocio = 1; int IdLayout = 1; CL_ImportacionMasiva importar = new CL_ImportacionMasiva(IdNegocio, IdLayout, arcTarget); if (importar.ExisteArchivoDesviaciones) { string strArchivo = importar.ArchivoDesviaciones.NombreCompleto; Response.Clear(); Response.AddHeader("content-disposition", "attachment;filename=" + strArchivo); Response.ContentType = "application/vnd.csv"; Response.Charset = "UTF-8"; Response.ContentEncoding = System.Text.Encoding.UTF8; byte[] MyData = (byte[])System.IO.File.ReadAllBytes(Server.MapPath("~/bin/files/") + strArchivo); Response.BinaryWrite(MyData); Response.End(); } lblUploadResult.Text = "Archivo cargado en: " + arcTarget.Ruta; } catch (Exception Error) { lblUploadResult.Text = "Error al cargar archivo: " + Error.Message; } } else { lblUploadResult.Text = "Seleccione un archivo. De click en 'Explorar...'"; } // Display the result of the upload. frmConfirmation.Visible = true; }