public bool ProcesarDependenciasCM(ProcesoDto ProcDto, string Ruta) { bool respuesta = false; ParseadorCM PCM = new ParseadorCM(); Proceso proc = new Proceso(); try { if (validadatos(ProcDto.UsuarioID, ProcDto.ProcesoID, Ruta)) { string Extensiones; DataTable ExtensionesApp = proc.Consultas(1, ProcDto.AplicacionID); if (ExtensionesApp == null || ExtensionesApp.Rows.Count < 1) { ErrLog.EscribeLogWS("No se encontraron los datos de lenguaje de la Aplicación"); ExtensionesApp = null; } else { DataRow Lenguaje = ExtensionesApp.Rows[0]; Extensiones = Lenguaje["Extensiones"].ToString(); string[] extArray = Extensiones.ToLower().Split(','); List <string> Archivos = new List <string>(); foreach (string Extension in extArray) { string tipo = "*." + Extension; string[] ArchivosArray = Directory.GetFiles(Ruta, tipo, SearchOption.AllDirectories); for (int i = 0; i <= ArchivosArray.Count() - 1; i++) { Archivos.Add(ArchivosArray[i].ToString()); } } HashSet <string> InventarioCM = new HashSet <string>(); foreach (string Archivo in Archivos) { InventarioCM = PCM.GenerarInventarioCM(Archivo, ProcDto); } ProcesoAvanceDto pdtoA = new ProcesoAvanceDto(); proc.SeteaAvance("En Proceso", "OK", "OK", "72", "70", "", "Inventario CM Generado", pdtoA, ProcDto); proc.ActualizaProcesoAvance(pdtoA, ProcDto); PCM.GenerarSalidaCM(InventarioCM, Archivos, ProcDto.AplicacionID.ToString(), ProcDto); proc.SeteaAvance("Terminado", "OK", "OK", "OK", "OK", "", "Parseo Terminado", pdtoA, ProcDto); proc.ActualizaProcesoAvance(pdtoA, ProcDto); respuesta = true; } } } catch (Exception Err) { ErrLog.EscribeLogWS("WSDependencias.ProcesaDependenciasCM " + Err.Message.ToString()); } return(respuesta); }