public JsonResult IniciaCargaCSV(string Ruta, int UsuarioID) { ProcesoDto ProDto = new ProcesoDto(); ControlLog Log = new ControlLog(); ProcesoAvanceDto ProcADto = new ProcesoAvanceDto(); Proceso Proc = new Proceso(); ObjetoDto ObjDto = new ObjetoDto(); bool respuesta = false; bool ValidaLayOut = true; int DependenciaID = 0; DataTable DatosParseo; DataRow DatoProceso; List <string> Resultado = new List <string>(); try { using (TextFieldParser Lector = new TextFieldParser(Ruta)) { Lector.SetDelimiters(new string[] { "," }); Lector.HasFieldsEnclosedInQuotes = true; //Lector.ReadLine(); string[] LayOut = new string[] { "AplicacionID", "ClaveAplicacion", "NumLinea", "Referencia", "ObjetoBDID", "Objeto", "TipoObjetoID", "TipoObjeto", "BaseDatosID", "BaseDatos", "Archivo", "Extension", "BibPadre", "ObjPadre" }; while (!Lector.EndOfData) { string[] LineaActual = Lector.ReadFields(); if (Lector.LineNumber == 2) { for (int i = 0; i < LineaActual.Length; i++) { if (LineaActual[i].ToString() != LayOut[i].ToString()) { ValidaLayOut = false; } } } else { if (ValidaLayOut) { ObjDto.CveAplicacion = LineaActual[1].ToString(); ObjDto.BibPadre = LineaActual[12].ToString(); ObjDto.ObjPadre = LineaActual[13].ToString(); ObjDto.BaseDatosID = int.Parse(LineaActual[8]); ObjDto.ObjetoID = int.Parse(LineaActual[4]); ObjDto.TipoID = int.Parse(LineaActual[6]); ObjDto.NumLinea = int.Parse(LineaActual[2]); ObjDto.Referencia = LineaActual[3].ToString(); ObjDto.Archivo = LineaActual[10].ToString(); ObjDto.Lenguaje = LineaActual[11].ToString(); string Archivo = Path.GetFileName(ObjDto.Archivo); Archivo = Regex.Replace(Archivo, @"\.\w+", string.Empty).Trim(); ProDto.AplicacionID = int.Parse(ObjDto.CveAplicacion); ++DependenciaID; Resultado.Add(DependenciaID + "¡" + ObjDto.CveAplicacion + "¡" + (string.IsNullOrEmpty(ObjDto.BibPadre) ? Archivo : ObjDto.BibPadre) + "¡" + " " + "¡" + (string.IsNullOrEmpty(ObjDto.ObjPadre) ? Archivo : ObjDto.ObjPadre) + "¡" + ObjDto.BaseDatosID.ToString() + "¡" + ObjDto.ObjetoID.ToString() + "¡" + ObjDto.TipoID.ToString() + "¡" + ObjDto.NumLinea.ToString() + "¡" + ObjDto.Referencia + "¡" + ObjDto.Archivo + "¡" + ObjDto.Lenguaje); } else { Log.EscribeLog("LayOut incorrecto del archivo .csv."); return(null); } } } if (Resultado.Count >= 1 && ProDto.AplicacionID > 0) { DatosParseo = Proc.ConsultaProceso(ProDto.AplicacionID); if (DatosParseo.Rows.Count >= 1) { DatoProceso = DatosParseo.Rows[0]; ProDto.UsuarioID = UsuarioID; ProDto.ProcesoID = long.Parse(DatoProceso["ProcesoID"].ToString()); Proc.EliminarParseo(ProDto, 0); Proc.GuardaProcesoBD(ProcADto, ProDto, Resultado); } else { Log.EscribeLog("No se realizo la carga completa del archivo .csv"); DatosParseo = null; } } } } catch (Exception ex) { Log.EscribeLog("No existe un ProcesoID cargado. No es posible cargar el archivo " + Path.GetFileName(Ruta)); return(null); } return(Json(respuesta, JsonRequestBehavior.AllowGet)); }