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);
        }