コード例 #1
0
        public int GuardaProceso(ProcesoDto pdto)
        {
            int idnewProc = 0;

            try{
                if (ValidaDto(pdto))
                {
                    PrepareSp(SPGUARDAPROCESO);
                    CargaCmdParameter("UsuarioID", SqlDbType.Int, 8, ParameterDirection.Input, pdto.UsuarioID);
                    CargaCmdParameter("AplicacionID", SqlDbType.Int, 8, ParameterDirection.Input, pdto.AplicacionID);
                    CargaCmdParameter("ProcesoID", SqlDbType.Int, 8, ParameterDirection.InputOutput, 0);
                    ExecStoredProcNoQuery();
                    idnewProc = (int)RegresaValorParam("ProcesoID");
                    Close();
                }
                else
                {
                    EscribeLog("Proceso.GuardaProceso " + msjerr);
                    return(idnewProc);
                }
            }
            catch (Exception Err) {
                EscribeLog("Proceso.GuardaProceso " + Err.Message.ToString());
            }
            return(idnewProc);
        }
コード例 #2
0
        public void TransactionLog(ProcesoDto proceso)
        {
            string json = JsonConvert.SerializeObject(proceso);

            string fileName = @"D:\Calculadora.txt";

            try
            {
                if (File.Exists(fileName))
                {
                    using (StreamReader sr = File.OpenText(fileName))
                    {
                        Console.WriteLine(json);
                    }
                }
                else
                {
                    using (StreamWriter fs = new StreamWriter(fileName))
                    {
                        Console.WriteLine(json);
                    }
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex);
            }
        }
コード例 #3
0
        public ActionResult GraficaDB_Detalle2()
        {
            Proceso    Proc    = new Proceso();
            ProcesoDto ProcDto = new ProcesoDto();

            Bitmap   Imagen = new Bitmap(300, 50);
            Graphics Grafica = Graphics.FromImage(Imagen);
            Chart    Chart = new Chart();
            int      i = 0, tiposp;
            string   App;

            Chart.Width  = 600;
            Chart.Height = 220;
            Chart.ChartAreas.Add("ObjetosDB_Detalle").BackColor             = System.Drawing.Color.FromArgb(64, System.Drawing.Color.White);
            Chart.ChartAreas["ObjetosDB_Detalle"].AxisX.MajorGrid.LineWidth = 0;
            Chart.ChartAreas["ObjetosDB_Detalle"].AxisX.LabelStyle.Enabled  = false;
            Chart.Titles.Add("USO OBJETOS");
            Chart.Legends.Add(new Legend("Leyenda"));
            App = "Datos";
            Chart.Series.Add(App);
            Chart.Series[App].ChartType        = SeriesChartType.Pie;
            Chart.Series[App].Label            = "#PERCENT{P0}";
            Chart.Series[App]["PieLabelStyle"] = "Outside";
            Chart.Series[App].Legend           = "Leyenda";

            if (ProcDto.AplicacionID != 0)
            {
                tiposp = 8;
            }
            else
            {
                tiposp = 4;
            }


            if (Proc.ObtenGrafica(tiposp, ProcDto.AplicacionID))
            {
                XmlDocument consultaxml = Proc.PAvanceXML;
                foreach (XmlNode Fila in consultaxml.DocumentElement.SelectSingleNode("ObjetosDB_Detalle").SelectNodes("row"))
                {
                    Chart.Series[App].Points.AddY(Fila.Attributes["Numero"].Value.ToString());
                    Chart.Series[App].Points[i].LegendText = Fila.Attributes["TipoObjeto"].Value.ToString();

                    ++i;
                }
            }

            Chart.Legends["Leyenda"].Docking   = Docking.Bottom;
            Chart.Legends["Leyenda"].Alignment = StringAlignment.Center;
            Chart.BackColor = Color.Transparent;
            MemoryStream imageStream = new MemoryStream();

            Chart.SaveImage(imageStream, ChartImageFormat.Png);
            Chart.TextAntiAliasingQuality = TextAntiAliasingQuality.SystemDefault;
            Response.ContentType          = "image/png";
            imageStream.WriteTo(Response.OutputStream);
            Grafica.Dispose();
            Imagen.Dispose();
            return(null);
        }
コード例 #4
0
        public bool ActualizaProcesoAvance(ProcesoAvanceDto pdtoA, ProcesoDto pdto)
        {
            bool exito = false;

            try
            {
                if (ValidaAvanceDto(pdtoA) && ValidaDto(pdto))
                {
                    PrepareSp(SPACTUALIZAPROCESO);
                    CargaCmdParameter("UsuarioID", SqlDbType.Int, 8, ParameterDirection.Input, pdto.UsuarioID);
                    CargaCmdParameter("ProcesoID", SqlDbType.BigInt, 8, ParameterDirection.Input, pdto.ProcesoID);
                    CargaCmdParameter("Carga", SqlDbType.VarChar, 2, ParameterDirection.Input, pdtoA.Carga);
                    CargaCmdParameter("Descomprimir", SqlDbType.VarChar, 2, ParameterDirection.Input, pdtoA.Descomprimir);
                    CargaCmdParameter("Parseo", SqlDbType.VarChar, 2, ParameterDirection.Input, pdtoA.Parseo);
                    CargaCmdParameter("GenInfo", SqlDbType.VarChar, 2, ParameterDirection.Input, pdtoA.Getinfo);
                    CargaCmdParameter("Estatus", SqlDbType.VarChar, 10, ParameterDirection.Input, pdtoA.Estatus);
                    CargaCmdParameter("UltMensaje", SqlDbType.VarChar, 1000, ParameterDirection.Input, pdto.UltMensaje);
                    CargaCmdParameter("Observacion", SqlDbType.VarChar, 100, ParameterDirection.Input, pdtoA.Observacion);
                    ExecStoredProcNoQuery();
                    Close();
                }
                else
                {
                    EscribeLog("Proceso.ActualizaProcesoAvance " + msjerr + msjerravance);
                    return(false);
                }
            }
            catch (Exception Err) {
                EscribeLog("Proceso.GuardaProceso " + Err.Message.ToString());
            }
            return(exito);
        }
コード例 #5
0
        private void actualizaStatus(string appid, string filename)
        {
            Proceso    proc    = new Proceso();
            ProcesoDto procdto = new ProcesoDto();

            try {
                procdto.UsuarioID    = int.Parse(Session["usuid"].ToString());
                procdto.AplicacionID = int.Parse(appid);
                procdto.ProcesoID    = 0;
                procdto.ProcesoID    = proc.GuardaProceso(procdto);
                if (procdto.ProcesoID > 0)
                {
                    ViewData["ProcesoID"]    = procdto.ProcesoID.ToString();
                    ViewData["AplicacionID"] = procdto.AplicacionID.ToString();
                    ViewData["UsuarioID"]    = Session["usuid"].ToString();
                    ViewData["ruta"]         = System.Web.HttpContext.Current.Request.MapPath(ConfigurationManager.AppSettings["codigoUP"].ToString()) + filename;
                    ViewData["rutaDestno"]   = System.Web.HttpContext.Current.Request.MapPath(ConfigurationManager.AppSettings["codigoUN"].ToString() + procdto.ProcesoID.ToString() + "-" + procdto.UsuarioID.ToString() + "-" + procdto.AplicacionID.ToString() + "_" + DateTime.Now.ToString("ddMMyyyyHHmmss"));
                    ViewData["rutaCSV"]      = System.Web.HttpContext.Current.Request.MapPath(ConfigurationManager.AppSettings["pcsv"].ToString());
                    sth  = new ThreadStart(this.LlamarWS);
                    hilo = new Thread(sth);
                    hilo.Start();
                    TempData["ProcesoID"] = procdto.ProcesoID;
                    ViewData["ProcesoID"] = procdto.ProcesoID;
                    ViewBag["ProcesoID"]  = procdto.ProcesoID;
                }
            }
            catch (Exception exe)
            {
                proc.EscribeLog("actualizaStatus.UploadComplete " + exe.Message.ToString());
            }
        }
コード例 #6
0
        public JsonResult GeneraArbol(int idpadre, int idapp)
        {
            string      arbol       = string.Empty;
            ConsultaDep consultaobj = new ConsultaDep();

            try
            {
                if (consultaobj.VerificaDatosConsulta())
                {
                    Proceso    procesoobj = new Proceso();
                    ProcesoDto prodto     = new ProcesoDto();
                    prodto.AplicacionID = idapp;
                    prodto.ProcesoID    = 50;
                    prodto.UsuarioID    = 1;
                    if (procesoobj.ObtenProcesoJerarquia(prodto))
                    {
                        arbol = CargaTree(procesoobj);
                    }
                }
            }
            catch (Exception err)
            {
                consultaobj.EscribeLogWS("DependenciasController.GeneraArbol " + err.Message.ToString());
            }
            finally
            {
                consultaobj = null;
            }
            return(Json(arbol, JsonRequestBehavior.AllowGet));
        }
コード例 #7
0
        public string GetSustration(string digito1, string digito2, string digito3)
        {
            ProcesoDto dto = new ProcesoDto();

            dto.Digito1   = digito1;
            dto.Digito2   = digito2;
            dto.Digito3   = digito3;
            dto.Operacion = "Resta";

            try
            {
                double respuesta = Convert.ToDouble(digito1) - Convert.ToDouble(digito2) - Convert.ToDouble(digito3);

                dto.Resultado = respuesta.ToString();

                this.TransactionLog(dto);

                return(respuesta.ToString());
            }
            catch (Exception)
            {
                throw new HttpResponseException(
                          new HttpResponseMessage()
                {
                    Content    = new StringContent(Resources.ErrorMessages.InternalError),
                    StatusCode = System.Net.HttpStatusCode.InternalServerError
                }
                          );
            }
        }
コード例 #8
0
        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);
        }
コード例 #9
0
        public bool GuardaProcesoCM(ProcesoAvanceDto pdtoA, ProcesoDto pdto, List <string> resultado)
        {
            bool   resp   = false;
            double total  = resultado.Count();
            double avance = 30 / total;

            try
            {
                int conta = 0;
                foreach (string res in resultado)
                {
                    string[] conceptos = res.Replace('\"', ' ').Split('|');
                    ConnexionPermanentePrepareSp(SPGGUARDARESULTADOCM);
                    if (conta == 0)
                    {
                        InicializaTran();
                    }
                    AsignaTran();
                    CargaCmdParameter("UsuarioID", SqlDbType.Int, 8, ParameterDirection.Input, pdto.UsuarioID);
                    CargaCmdParameter("ProcesoID", SqlDbType.Int, 8, ParameterDirection.Input, pdto.ProcesoID);
                    CargaCmdParameter("AplicacionID", SqlDbType.Int, 8, ParameterDirection.Input, pdto.AplicacionID);
                    CargaCmdParameter("NumLinea", SqlDbType.Int, 8, ParameterDirection.Input, int.Parse(conceptos[7]));
                    CargaCmdParameter("Referencia", SqlDbType.VarChar, 3000, ParameterDirection.Input, conceptos[11]);
                    CargaCmdParameter("NombreArchivo", SqlDbType.VarChar, 400, ParameterDirection.Input, conceptos[6]);
                    CargaCmdParameter("LenguajeApp", SqlDbType.VarChar, 10, ParameterDirection.Input, conceptos[8]);
                    CargaCmdParameter("BibPadre", SqlDbType.VarChar, 100, ParameterDirection.Input, conceptos[1]);
                    CargaCmdParameter("TipoPadre", SqlDbType.VarChar, 100, ParameterDirection.Input, conceptos[0]);
                    CargaCmdParameter("ObjPadre", SqlDbType.VarChar, 100, ParameterDirection.Input, conceptos[2]);
                    CargaCmdParameter("BibHijo", SqlDbType.VarChar, 100, ParameterDirection.Input, conceptos[4]);
                    CargaCmdParameter("TipoHijo", SqlDbType.VarChar, 100, ParameterDirection.Input, conceptos[3]);
                    CargaCmdParameter("ObjHijo", SqlDbType.VarChar, 100, ParameterDirection.Input, conceptos[5]);
                    CargaCmdParameter("DependenciaCMID", SqlDbType.Int, 8, ParameterDirection.Input, int.Parse(conceptos[9]));
                    CargaCmdParameter("IDPadre", SqlDbType.Int, 8, ParameterDirection.Input, int.Parse(conceptos[10]));
                    ++conta;
                    ExecStoredProcNoQuery();
                    SeteaAvance("En Proceso", "OK", "OK", "OK", Math.Round((70 + avance * conta), 0).ToString(), "", "Leyendo Archivos", pdtoA, pdto);
                }
                CommitTran();
                Close();
                ActualizaProcesoAvance(pdtoA, pdto);
            }
            catch (Exception Err)
            {
                EscribeLogWS("Guarda Resultado" + Err.Message.ToString());
                RollBackTran();
                Close();
                SeteaAvance("Error", "OK", "OK", "OK", "X", "Proceso terminado incorrectamente", Err.Message.ToString(), pdtoA, pdto);
                ActualizaProcesoAvance(pdtoA, pdto);
            }
            return(resp);
        }
コード例 #10
0
        public ActionResult GraficaDBTotal(int appid)
        {
            Proceso    Proc    = new Proceso();
            ProcesoDto ProcDto = new ProcesoDto();

            Bitmap   Imagen  = new Bitmap(300, 50);
            Graphics Grafica = Graphics.FromImage(Imagen);
            Chart    Chart   = new Chart();
            int      i       = 0;

            ProcDto.AplicacionID = appid;
            Chart.Width          = 600;
            Chart.Height         = 400;
            Chart.ChartAreas.Add("ObjetosDB").BackColor                 = System.Drawing.Color.FromArgb(64, System.Drawing.Color.White);
            Chart.ChartAreas["ObjetosDB"].AxisX.MajorGrid.LineWidth     = 0;
            Chart.ChartAreas["ObjetosDB"].AxisX.LabelStyle.Enabled      = false;
            Chart.ChartAreas["ObjetosDB"].AxisX.ScaleBreakStyle.Spacing = 2;
            Chart.Titles.Add("OBJETOSDB");
            Chart.Legends.Add(new Legend("Leyenda"));

            if (Proc.ObtenGrafica(9, ProcDto.AplicacionID))
            {
                XmlDocument consultaxml = Proc.PAvanceXML;
                foreach (XmlNode Fila in consultaxml.DocumentElement.SelectSingleNode("ObjetosDB").SelectNodes("row"))
                {
                    Chart.Series.Add("ObjetosDB" + i);
                    Chart.Series["ObjetosDB" + i].ChartType = SeriesChartType.Column;
                    Chart.Series["ObjetosDB" + i].Points.AddY(Fila.Attributes["Numero"].Value.ToString());
                    Chart.Series["ObjetosDB" + i].Label            = "#VALY";
                    Chart.Series["ObjetosDB" + i].LegendText       = Fila.Attributes["TipoObjeto"].Value.ToString();
                    Chart.Series["ObjetosDB" + i].Font             = new Font("Segoe UI", 10.0f, FontStyle.Regular);
                    Chart.Series["ObjetosDB" + i]["PieLabelStyle"] = "Outside";
                    Chart.Series["ObjetosDB" + i].Legend           = "Leyenda";

                    ++i;
                }
            }

            Chart.Legends["Leyenda"].Docking   = Docking.Bottom;
            Chart.Legends["Leyenda"].Alignment = StringAlignment.Center;
            Chart.BackColor = Color.Transparent;
            MemoryStream imageStream = new MemoryStream();

            Chart.SaveImage(imageStream, ChartImageFormat.Png);
            Chart.TextAntiAliasingQuality = TextAntiAliasingQuality.SystemDefault;
            imageStream.Position          = 0;
            Grafica.Dispose();
            Imagen.Dispose();
            return(new FileStreamResult(imageStream, "image/png"));
        }
コード例 #11
0
        private void LlamarWS()
        {
            ProcesoDto ProcDto = new ProcesoDto();

            WSParseador objwsp = new WSParseador();

            try
            {
                ProcDto.UsuarioID    = int.Parse(ViewData["UsuarioID"].ToString());
                ProcDto.ProcesoID    = long.Parse(ViewData["ProcesoID"].ToString());
                ProcDto.AplicacionID = int.Parse(ViewData["AplicacionID"].ToString());
                objwsp.ProcesarAplicacion(ProcDto, ViewData["ruta"].ToString(), ViewData["rutaDestno"].ToString(), ViewData["rutaCSV"].ToString());
            } catch (Exception)
            {
            }
        }
コード例 #12
0
        public bool EliminarParseo(ProcesoDto ProcDto)
        {
            bool respuesta = false;

            try
            {
                Proceso Proc = new Proceso();
                if (Proc.EliminarParseo(ProcDto, 1))
                {
                    respuesta = true;
                }
            }
            catch (Exception Err)
            {
                ErrLog.EscribeLogWS("WSDependencias.EliminarParseo " + Err.Message.ToString());
            }
            return(respuesta);
        }
コード例 #13
0
        public bool Descomprimir(ProcesoDto ProcDto, string rutaorigen, string rutadestino)
        {
            bool respuesta = false;

            try
            {
                ZipControl unzip = new ZipControl();
                unzip.Origen  = rutaorigen;
                unzip.Destino = rutadestino;
                unzip.DescmprimirArchivos();
                respuesta = true;
            }
            catch (Exception Err)
            {
                ErrLog.EscribeLogWS("WSDependencias.Descomprimir " + Err.Message.ToString());
            }
            return(respuesta);
        }
コード例 #14
0
        public HashSet <string> GenerarInventarioCM(string Ruta, ProcesoDto pdto)
        {
            RevisaLinea DatosInventario = new RevisaLinea();

            try
            {
                string Archivo = Path.GetFileName(Ruta);
                Archivo = Regex.Replace(Archivo, @"\.\w+", string.Empty).Trim();
                using (StreamReader sr = new StreamReader(Ruta))
                {
                    while (sr.Peek() >= 0)
                    {
                        string lineaCodigo = sr.ReadLine().Trim();

                        if (!String.IsNullOrEmpty(lineaCodigo))
                        {
                            //if (lineaCodigo.IndexOf("oWorkgroup") > -1)
                            //    lineaCodigo = lineaCodigo;

                            lineaCodigo = VerCom.BuscarComentario(lineaCodigo);
                            if (!String.IsNullOrEmpty(lineaCodigo))
                            {
                                DatosInventario = DatosInventario.ObtenerInventario(lineaCodigo, Librerias);
                                if (DatosInventario.EsValido)
                                {
                                    InventarioCM.Add((string.IsNullOrEmpty(DatosInventario.NombreEspacio) ?
                                                      Archivo : DatosInventario.NombreEspacio) + "|" + DatosInventario.Nombre +
                                                     "|" + DatosInventario.Tipo);
                                }
                            }
                        }
                    }
                }
            }catch (Exception Err) {
                EscribeLogWS("ParseadorCM.GenerarInventarioCM " + Err.Message.ToString());
                ProcesoAvanceDto pdtoA = new ProcesoAvanceDto();
                Proceso          proc  = new Proceso();
                proc.SeteaAvance("Error", "OK", "X", "--", "--", Err.Message.ToString(), "Error al realizar la descompresión del archivo", pdtoA, pdto);
                proc.ActualizaProcesoAvance(pdtoA, pdto);
            }
            return(InventarioCM);
        }
コード例 #15
0
        public bool EliminarParseo(ProcesoDto ProcDto, int Tipo)
        {
            bool respuesta = false;

            try
            {
                PrepareSp(SPELIMINAPARSEO);
                CargaCmdParameter("UsuarioID", SqlDbType.Int, 8, ParameterDirection.Input, ProcDto.UsuarioID);
                CargaCmdParameter("AplicacionID", SqlDbType.Int, 8, ParameterDirection.Input, ProcDto.AplicacionID);
                CargaCmdParameter("Tipo", SqlDbType.Int, 8, ParameterDirection.Input, Tipo);
                ExecStoredProcNoQuery();
                respuesta = true;
                Close();
            }
            catch (Exception Err)
            {
                EscribeLog("Proceso.ConsultaPalabras " + Err.Message.ToString());
            }
            return(respuesta);
        }
コード例 #16
0
        private bool ValidaDto(ProcesoDto pdto)
        {
            bool valida = true;

            msjerr = "";
            try {
                if (pdto.UsuarioID <= 0)
                {
                    msjerr = "UsuarioID incorrecto ";
                    valida = false;
                }
                if (pdto.AplicacionID <= 0)
                {
                    msjerr += "AplicacionID incorrecto ";
                    valida  = false;
                }
            }catch (Exception Err) {
                EscribeLog("Proceso.validadto " + Err.Message.ToString());
                valida = false;
            }
            return(valida);
        }
コード例 #17
0
        public bool ObtenProcesoJerarquia(ProcesoDto pdto)
        {
            bool exito = false;

            try
            {
                if (ValidaDto(pdto))
                {
                    PrepareSp(SPOBTENJERARQUIA);
                    CargaCmdParameter("UsuarioID", SqlDbType.Int, 8, ParameterDirection.Input, pdto.UsuarioID);
                    CargaCmdParameter("ProcesoID", SqlDbType.Int, 8, ParameterDirection.Input, pdto.ProcesoID);
                    CargaCmdParameter("AplicacionID", SqlDbType.Int, 8, ParameterDirection.Input, pdto.AplicacionID);
                    SqlDataReader objrst = GetResultStoredSQLReader();
                    if (objrst.Read())
                    {
                        pAvanceXML = new XmlDocument();
                        pAvanceXML.LoadXml(objrst[0].ToString());
                        XmlNode select = pAvanceXML.DocumentElement.SelectSingleNode("Padre");
                        exito = select.HasChildNodes;
                    }
                    else
                    {
                        exito = false;
                    }
                    Close();
                }
                else
                {
                    EscribeLog("Proceso.ObtenProcesoJerarquia " + msjerr);
                    return(exito);
                }
            }
            catch (Exception Err)
            {
                EscribeLog("Proceso.ObtenProcesoJerarquia " + Err.Message.ToString());
            }
            return(exito);
        }
コード例 #18
0
        public bool ProcesarAplicacion(ProcesoDto ProcDto, string origen, string destino, string csv)
        {
            bool respuesta = false;

            try
            {
                EliminarParseo(ProcDto);
                if (Descomprimir(ProcDto, origen, destino))
                {
                    ProcesarDependenciasBD(ProcDto, destino, csv);
                    ProcesarDependenciasWS(ProcDto, destino);
                    ProcesarDependenciasCM(ProcDto, destino);
                }
            }
            catch (Exception Err)
            {
                Proceso          proceso = new Proceso();
                ProcesoAvanceDto pdtoA   = new ProcesoAvanceDto();
                proceso.SeteaAvance("En Proceso", "OK", "OK", "X", "X", "", "Parseo Fallido", pdtoA, ProcDto);
                proceso.ActualizaProcesoAvance(pdtoA, ProcDto);
                ErrLog.EscribeLogWS("WSDependencias.ProcesarAplicacion " + Err.Message.ToString());
            }
            return(respuesta);
        }
コード例 #19
0
        public bool ProcesarDependenciasBD(ProcesoDto ProcDto, string Ruta, string csv)
        {
            bool             respuesta = false;
            ParseadorBD      PBD       = new ParseadorBD();
            ProcesoAvanceDto pdtoA     = new ProcesoAvanceDto();
            Proceso          proc      = new Proceso();

            try
            {
                if (validadatos(ProcDto.UsuarioID, ProcDto.ProcesoID, Ruta))
                {
                    PBD.pathsalida = csv;
                    PBD.GeneraSalida(ProcDto.AplicacionID, Ruta, ProcDto);
                    proc.SeteaAvance("En Proceso", "OK", "OK", "40", "40", "", "Parseo BD Terminado", pdtoA, ProcDto);
                    proc.ActualizaProcesoAvance(pdtoA, ProcDto);
                    respuesta = true;
                }
            }
            catch (Exception Err)
            {
                ErrLog.EscribeLogWS("WSBaseDatosWebService.ProcesaDependenciasBD " + Err.Message.ToString());
            }
            return(respuesta);
        }
コード例 #20
0
        //ConfigurationManager.AppSettings["pcsv"].ToString()
        public void GeneraSalida(int CveAplicacion, string Ruta, ProcesoDto pdto)
        {
            ControlLog         ErrLog   = new ControlLog();
            Entrada            Ent      = new Entrada();
            AplicacionDto      AppDto   = new AplicacionDto();
            ExcluyeComentarios ExcCom   = new ExcluyeComentarios();
            Procesos           Procesos = new Procesos();
            Salida             Salida   = new Salida();
            DataTable          configuracionDt;
            DataRow            configuracion;
            string             extensiones  = "";
            ProcesoAvanceDto   pdtoA        = new ProcesoAvanceDto();
            Proceso            proc         = new Proceso();
            string             TipoAnalisis = "BD";

            proc.SeteaAvance("En Proceso", "OK", "OK", "1", "--", "", "Iniciando Parseo BD", pdtoA, pdto);
            proc.ActualizaProcesoAvance(pdtoA, pdto);

            //Carga los datos de configuracion la ruta ya se trae, no se utiliza la de configuración
            using (configuracionDt = Consultas(1, CveAplicacion));
            {
                if (configuracionDt == null || configuracionDt.Rows.Count < 1)
                {
                    ErrLog.EscribeLogWS("No se encontraron los datos de configuración de la aplicación");
                    configuracion = null;
                }
                else
                {
                    configuracion = configuracionDt.Rows[0];
                }
            }

            //Determina que extensiones se deben leer deacuerdo al lenguaje
            DataTable LenguajeApp = ConsultaLenguaje(Convert.ToString(CveAplicacion));

            if (LenguajeApp == null || LenguajeApp.Rows.Count < 1)
            {
                ErrLog.EscribeLogWS("No se encontraron los datos de lenguaje de la Aplicación");
                LenguajeApp = null;
            }

            DataRow Lenguaje = LenguajeApp.Rows[0];

            //if (Lenguaje["Lenguaje"].ToString() == "ASP")
            extensiones = configuracion["Extensiones"].ToString();
            //else
            // extensiones = configuracion["ExtensionesJava"].ToString();

            String[] extArray = extensiones.ToLower().Split(',');


            //Validación
            if (String.IsNullOrEmpty(Convert.ToString(CveAplicacion)))
            {
                ErrLog.EscribeLogWS("No asigno la clave de la aplicación a analizar.");
                return;
            }

            //Obtiene todos los archivos de la ruta que deben leerse se cambio la ruta como parametro
            Ent.ListarArchivos(listaArchivos, Ruta, extArray, Convert.ToString(CveAplicacion));

            //Validación
            if (listaArchivos.Where(l => l.Extension == "java").Count() > 5)
            {
                AppDto.Tecnologia = "JAVA";
            }
            else if (listaArchivos.Where(l => l.Extension == "cs").Count() > 5)
            {
                AppDto.Tecnologia = "NET";
            }
            else if (listaArchivos.Where(l => l.Extension == "asp").Count() > 5)
            {
                AppDto.Tecnologia = "ASP";
            }
            else if (listaArchivos.Where(l => l.Extension == "sql").Count() > 5)
            {
                AppDto.Tecnologia = "Oracle";
            }
            else if (listaArchivos.Where(l => l.Extension == "frm").Count() > 5)
            {
                AppDto.Tecnologia = "Visual Basic 6";
            }

            AppDto.CveAplicacion = Convert.ToString(CveAplicacion);

            ////Obtiene lista de marcas de comentarios
            //Comentarios = Ent.CargarComentarios(configuracion["RutaComentarios"].ToString());
            //if (Comentarios == null || !Comentarios.Any())
            //{
            //    ErrLog.EscribeLogWS("El archivo de comentarios esta vacío");
            //    return;
            //}
            //ExcCom.Comentarios = Comentarios;
            //ErrLog.EscribeLogWS("El archivo de comentarios ha sido cargado.");

            //Carga las cadenas que no deben considerarse
            _CadenasAIgnorar = Ent.CargarAIgnorar();
            if (_CadenasAIgnorar == null || !_CadenasAIgnorar.Any())
            {
                ErrLog.EscribeLogWS("No se encontraron cadenas a Ignorar");
                return;
            }
            ErrLog.EscribeLogWS("Cargando cadenas a encontrar...");

            //Obtener las lineas que contienen palabras relacionadas con objetos de la BD
            if (TipoAnalisis == "BD")
            {
                _CadenasAEncontrar = Ent.CargarObjetosBD();
                if (_CadenasAEncontrar == null)
                {
                    ErrLog.EscribeLogWS("No hay cadenas a encontrar, verifique el inventario de objetos");
                    return;
                }
                ErrLog.EscribeLogWS("Las cadenas a encontrar han sido cargadas.");

                if (AppDto.Tecnologia == "NET" || AppDto.Tecnologia == "ASP")
                {
                    ConexionesBd = Ent.EncontrarConexionesNet();
                }

                if (AppDto.Tecnologia == "JAVA")
                {
                    ConexionesBd = Ent.EncontrarConexionesJava();
                }

                if (ConexionesBd == null || ConexionesBd.Count < 1)
                {
                    ErrLog.EscribeLogWS("Dentro de la aplicación no se encontraron conexiones a BD");
                }
                else
                {
                    ErrLog.EscribeLogWS("Se encontraron en la aplicación conexiones a BD");
                    ConexionesBd.ForEach(conexion =>
                    {
                        _CadenasAEncontrar.Add(new CadenaAEncontrarDto
                        {
                            Grupo        = conexion.BaseDatos,
                            NombreObjeto = conexion.Nombre,
                            TipoObjeto   = "ConexionBD",
                            TipoBusqueda = 0,
                            TipoObjetoID = 7
                        });
                    });
                    _CadenasAEncontrar = Procesos.ReordenarCadenas(_CadenasAEncontrar, ConexionesBd, AppDto);
                }
            }

            Ent.CargarCadenasDesdeBD(_CadenasAEncontrar, TipoAnalisis, AppDto);
            Parseador parser = new Parseador()
            {
                CadenasAIgnorar   = _CadenasAIgnorar,
                CadenasAEncontrar = _CadenasAEncontrar,
                RutaAnalisis      = Ruta,
                Comentarios       = Comentarios,
                ConexionesBd      = ConexionesBd
            };

            proc.SeteaAvance("En Proceso", "OK", "OK", "2", "--", "", "Guardando Datos", pdtoA, pdto);
            proc.ActualizaProcesoAvance(pdtoA, pdto);

            try
            {
                listaHallazgos = parser.ProcesarArchivos(listaArchivos, AppDto, pdto);
            }
            catch (Exception ex)
            {
                ErrLog.EscribeLogWS("Fallo el procesamiento de archivos: " + ex.Message + " " + ex.StackTrace);
                return;
            }
            StringBuilder csvSalida = new StringBuilder();

            try
            {
                csvSalida.AppendLine("AplicacionID" + separador + "ClaveAplicacion" + separador + "NumLinea" + separador + "Referencia" + separador + "ObjetoBDID" + separador +
                                     "Objeto" + separador + "TipoObjetoID" + separador + "TipoObjeto" + separador + "BaseDatosID" + separador + "BaseDatos" + separador + "Archivo" + separador
                                     + "Extension" + separador + "BibPadre" + separador + "ObjPadre");

                ErrLog.EscribeLogWS("Generando salida ...");

                List <string> resultado = new List <string>();
                resultado = Salida.GenerarSalida(separador, csvSalida, listaHallazgos);
                GuardaProcesoBD(pdtoA, pdto, resultado);
            }
            catch (Exception ex)
            {
                ErrLog.EscribeLogWS("Fallo en GenerarSalida " + ex.Message + " " + ex.StackTrace);
                return;
            }

            string rutaSalida = pathsalida + pdto.ProcesoID + ".csv";

            try
            {
                //Agregar la carga a la tabla
                File.WriteAllText(rutaSalida + "", csvSalida.ToString());
                ErrLog.EscribeLogWS("Salida CSV '" + rutaSalida + "' generada.");
            }
            catch (Exception ex)
            {
                ErrLog.EscribeLogWS("El archivo de salida CSV no pudo generarse: " + ex.Message);
                return;
            }
            finally
            {
                ErrLog.EscribeLogWS("Proceso terminado");
            }
        }
コード例 #21
0
        //Este metodo se encarga de comparar linea por linea del archivo con las cadenas
        //a encontrar e ignorar
        public List <ObjetoDto> ProcesarArchivos(List <ArchivoDto> listaArchivos, AplicacionDto AppDto, ProcesoDto pdto)
        {
            double           total  = listaArchivos.Count();
            double           avance = 38 / total;
            ProcesoAvanceDto pdtoA  = new ProcesoAvanceDto();
            Proceso          proc   = new Proceso();

            //if (AppDto.Tecnologia == "NET")
            //    EncontrarWsNet(listaArchivos);
            //else
            //    EncontrarWsJava(listaArchivos);

            int numArchivo = 1;

            Archivos = listaArchivos;

            foreach (ArchivoDto archivo in listaArchivos)
            //Parallel.ForEach(listaArchivos, archivo =>
            {
                ErrLog.EscribeLogWS("Procesando archivo: " + numArchivo + " de " + listaArchivos.Count + " " + archivo.Ruta);
                VerCom.ComentarioBloque = "";
                EncMet.Limpiar();

                using (StreamReader sr = new StreamReader(archivo.Ruta))
                {
                    NumLinea = 1;
                    while (sr.Peek() >= 0)
                    {
                        string lineaCodigo = sr.ReadLine().Trim();

                        if (!String.IsNullOrEmpty(lineaCodigo))
                        {
                            //lineaCodigo = ExcCom.BuscarComentario(lineaCodigo, archivo.Extension);
                            lineaCodigo = VerCom.BuscarComentario(lineaCodigo);
                            if (archivo.Extension == "cs" || archivo.Extension == "java")
                            {
                                ClaseMetodo = EncMet.EncuentraNombre(lineaCodigo);
                            }
                            else
                            {
                                ClaseMetodo = "";
                            }

                            if (!Excluir(lineaCodigo) && !string.IsNullOrEmpty(lineaCodigo))
                            {
                                ArchivoActual = archivo;

                                if (archivo.Extension == "aspx")
                                {
                                    if (lineaCodigo.ToLower().IndexOf("command") >= 0)
                                    {
                                        EncontrarCadena(lineaCodigo);
                                    }
                                }
                                else
                                {
                                    EncontrarCadena(lineaCodigo);
                                }
                            }
                        }
                        NumLinea++;
                    }
                }
                numArchivo++;
                proc.SeteaAvance("En Proceso", "OK", "OK", Math.Round(2 + (avance * numArchivo), 0).ToString(), "--", "", "Leyendo Archivos", pdtoA, pdto);
                proc.ActualizaProcesoAvance(pdtoA, pdto);
            }
            return(Objetos);
        }
コード例 #22
0
        public void GenerarSalidaCM(HashSet <string> InventarioCM, List <string> Archivos, string App, ProcesoDto pdt)
        {
            ProcesoAvanceDto pdtoA  = new ProcesoAvanceDto();
            Proceso          proc   = new Proceso();
            double           total  = Archivos.Count();
            double           avance = 27 / total;

            for (int i = 0; i <= Archivos.Count() - 1; i++)
            {
                //Aquí van a ir los parametros para iniciar
                string      Ruta       = Archivos[i];
                string      Archivo    = Path.GetFileName(Ruta);
                int         NoLinea    = 0;
                RevisaLinea datosLinea = new RevisaLinea();

                //Empezar a leer el archivo
                using (StreamReader sr = new StreamReader(Ruta))
                {
                    while (sr.Peek() >= 0)
                    {
                        string lineaCodigo = sr.ReadLine().Trim();

                        //Contar No. Linea
                        ++NoLinea;

                        if (NoLinea == 1639)
                        {
                            NoLinea = NoLinea;
                        }

                        if (!String.IsNullOrEmpty(lineaCodigo))
                        {
                            //Actualizar el nuevo VerificaComentarios
                            lineaCodigo = VerCom.BuscarComentario(lineaCodigo);
                            if (!String.IsNullOrEmpty(lineaCodigo))
                            {
                                datosLinea.ObtenerSalida(lineaCodigo, Archivo, InventarioCM, Resultado, NoLinea, Ruta, Librerias);
                            }
                        }
                    }
                }
                proc.SeteaAvance("En Proceso", "OK", "OK", Math.Round((72 + avance * i), 0).ToString(), "70", "", "Recuperando Datos", pdtoA, pdt);
                proc.ActualizaProcesoAvance(pdtoA, pdt);
            }

            proc.SeteaAvance("En Proceso", "OK", "OK", "OK", "70", "", "Recuperando Datos", pdtoA, pdt);
            proc.ActualizaProcesoAvance(pdtoA, pdt);

            GuardaProcesoCM(pdtoA, pdt, Resultado);
            //System.IO.File.WriteAllLines(@"C:\INFONAVIT\ClasesMetodos.txt", Resultado);
        }
コード例 #23
0
        public bool ProcesarDependenciasWS(ProcesoDto ProcDto, string Ruta)
        {
            bool             respuesta = false;
            ParseadorWS      PWS       = new ParseadorWS();
            ProcesoAvanceDto pdtoA     = new ProcesoAvanceDto();
            Proceso          proc      = new Proceso();

            try
            {
                if (validadatos(ProcDto.UsuarioID, ProcDto.ProcesoID, Ruta))
                {
                    DataTable LenguajeApp = proc.ConsultaLenguaje(Convert.ToString(ProcDto.AplicacionID));
                    if (LenguajeApp == null || LenguajeApp.Rows.Count < 1)
                    {
                        ErrLog.EscribeLogWS("No se encontraron los datos de lenguaje de la Aplicación");
                        LenguajeApp = null;
                    }
                    else
                    {
                        DataRow Lenguaje = LenguajeApp.Rows[0];
                        string  Tipo     = Lenguaje["Extension"].ToString();
                        if (Tipo == "cs")
                        {
                            Tipo = "*.config";
                        }
                        else if (Tipo == "java")
                        {
                            Tipo = "*.wsdl";
                        }
                        else if (Tipo == "asp")
                        {
                            Tipo = "*.asp";
                        }

                        string[] Archivos = Directory.GetFiles(Ruta, Tipo, SearchOption.AllDirectories);

                        HashSet <string> InventarioWS = new HashSet <string>();

                        proc.SeteaAvance("En Proceso", "OK", "OK", "40", "40", "", "Iniciando Parseo WS", pdtoA, ProcDto);
                        proc.ActualizaProcesoAvance(pdtoA, ProcDto);

                        for (int i = 0; i <= Archivos.Count() - 1; i++)
                        {
                            InventarioWS = PWS.GenerarInventarioWS(Archivos[i], ProcDto, Tipo);
                        }

                        proc.SeteaAvance("En Proceso", "OK", "OK", "42", "40", "", "Inventario de WS Generado", pdtoA, ProcDto);
                        proc.ActualizaProcesoAvance(pdtoA, ProcDto);

                        Tipo     = "*." + Lenguaje["Extension"].ToString();
                        Archivos = Directory.GetFiles(Ruta, Tipo, SearchOption.AllDirectories);

                        PWS.GenerarSalidaWS(InventarioWS, Archivos, ProcDto.AplicacionID.ToString(), ProcDto);
                        proc.SeteaAvance("En Proceso", "OK", "OK", "70", "70", "", "Parseo WS Terminado", pdtoA, ProcDto);
                        proc.ActualizaProcesoAvance(pdtoA, ProcDto);
                        respuesta = true;
                    }
                }
            }
            catch (Exception Err)
            {
                ErrLog.EscribeLogWS("WSInterfacesWebService.ProcesaDependenciasWS " + Err.Message.ToString());
            }
            return(respuesta);
        }
コード例 #24
0
 public void SeteaAvance(string estatus, string carga, string descomprimir, string parseo, string getinfo, string umsj, string obs, ProcesoAvanceDto pdtoA, ProcesoDto pdto)
 {
     pdtoA.ProcesoID    = pdto.ProcesoID;
     pdtoA.Carga        = carga;
     pdtoA.Descomprimir = descomprimir;
     pdtoA.Parseo       = parseo;
     pdtoA.Getinfo      = getinfo;
     pdto.UltMensaje    = umsj;
     pdtoA.Observacion  = obs;
     pdtoA.Estatus      = estatus;
 }
コード例 #25
0
        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));
        }
コード例 #26
0
        public InterfacesDto ObtenerInventario(string LineaCodigo, ProcesoDto pdto)
        {
            try
            {
                InterfacesDto IntDto = new InterfacesDto();
                LineaCodigo = LineaCodigo.Trim();
                string Linea = LineaCodigo.ToLower();

                //Extraer IP
                Regex Regex = new Regex(@"\b\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\b");
                Match Match = Regex.Match(Linea);
                if (Match.Success)
                {
                    Regex = new Regex(@"add key=""\w+.\w+");
                    Match = Regex.Match(LineaCodigo);
                    if (Match.Success)
                    {
                        string Nombre = Match.Value.Replace(@"""", string.Empty);
                        IntDto.Nombre = Nombre.Replace("add key=", string.Empty);
                    }

                    Regex = new Regex(@"\bhttp://\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\S+\b");
                    Match = Regex.Match(Linea);
                    if (Match.Success)
                    {
                        string IP = Match.Value;
                        IntDto.IP = IP.Trim();
                    }

                    if (!string.IsNullOrEmpty(IntDto.Nombre) && !string.IsNullOrEmpty(IntDto.IP))
                    {
                        IntDto.Tipo = "Out";
                    }

                    if (!string.IsNullOrEmpty(IntDto.IP))
                    {
                        if (Proceso.ObtenMiddleware(pdto.UsuarioID))
                        {
                            XmlDocument consultaxml = Proceso.PAvanceXML;
                            foreach (XmlNode Fila in consultaxml.DocumentElement.SelectSingleNode("Middleware").SelectNodes("row"))
                            {
                                if (IntDto.IP.IndexOf(Fila.Attributes["IP"].Value.ToString()) > -1)
                                {
                                    IntDto.Middleware = Fila.Attributes["Middleware"].Value.ToString();
                                    break;
                                }
                            }
                        }
                    }
                }

                //Extraer URL
                Regex RegexURL = new Regex(@"(http|ftp|https):\/\/([\w\-_]+(?:(?:\.[\w\-_]+)+))([\w\-\.,@?^=%&amp;:/~\+#]*[\w\-\@?^=%&amp;/~\+#])?");
                Match MatchURL = RegexURL.Match(Linea);
                if (MatchURL.Success)
                {
                    IntDto.Nombre     = MatchURL.Value;
                    IntDto.IP         = MatchURL.Value;
                    IntDto.Tipo       = "Externo";
                    IntDto.Middleware = "";
                }

                return(IntDto);
            }
            catch (Exception ex)
            {
                throw new Exception("RevisaInterfaces.ObtenerInventario ", ex);
            }
        }
コード例 #27
0
        public HashSet <string> GenerarInventarioWS(string Ruta, ProcesoDto pdto, string Tipo)
        {
            try
            {
                using (StreamReader sr = new StreamReader(Ruta))
                {
                    IntDto.Nombre     = string.Empty;
                    IntDto.IP         = string.Empty;
                    IntDto.Middleware = string.Empty;
                    while (sr.Peek() >= 0)
                    {
                        string LineaCodigo = sr.ReadLine().Trim();

                        //if (LineaCodigo.IndexOf("http://www.presidencia.gob.mx") > -1)
                        //    LineaCodigo = LineaCodigo;

                        if (!String.IsNullOrEmpty(LineaCodigo))
                        {
                            // Los datos para los servicios de C# se encuentran dentro de la misma línea
                            if (Tipo.IndexOf("config") > -1)
                            {
                                IntDto = RI.ObtenerInventario(LineaCodigo, pdto);
                                if (!string.IsNullOrEmpty(IntDto.Nombre) && !string.IsNullOrEmpty(IntDto.IP))
                                {
                                    InventarioWS.Add(IntDto.Nombre + "|" + IntDto.IP + "|" + IntDto.Tipo + "|" + IntDto.Middleware);
                                }
                            }

                            // Los datos para los servicios de C# se encuentran dentro de la misma línea
                            if (Tipo.IndexOf("asp") > -1)
                            {
                                IntDto = RI.ObtenerInventario(LineaCodigo, pdto);
                                if (!string.IsNullOrEmpty(IntDto.Nombre) && !string.IsNullOrEmpty(IntDto.IP))
                                {
                                    InventarioWS.Add(IntDto.Nombre + "|" + IntDto.IP + "|" + IntDto.Tipo + "|" + IntDto.Middleware);
                                }
                            }

                            //Los datos para los servicios Java se encuentran en varias líneas
                            if (Tipo.IndexOf("wsdl") > -1)
                            {
                                //string Linea = LineaCodigo.ToLower();
                                Regex Regex = new Regex(@"service name=""\w+");
                                Match Match = Regex.Match(LineaCodigo);
                                if (Match.Success)
                                {
                                    string Nombre = Regex.Replace(Match.Value, @"service name=", string.Empty);
                                    Nombre        = Nombre.Replace(@"""", string.Empty).Replace("Service", string.Empty);
                                    IntDto.Nombre = Nombre.Trim();
                                }

                                Regex = new Regex(@"\bhttp://\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\S+\b");
                                Match = Regex.Match(LineaCodigo);
                                if (Match.Success)
                                {
                                    string IP = Match.Value;
                                    IntDto.IP = IP.Trim();
                                }

                                if (!string.IsNullOrEmpty(IntDto.IP))
                                {
                                    if (ObtenMiddleware(pdto.UsuarioID))
                                    {
                                        XmlDocument consultaxml = PAvanceXML;
                                        foreach (XmlNode Fila in consultaxml.DocumentElement.SelectSingleNode("Middleware").SelectNodes("row"))
                                        {
                                            if (IntDto.IP.IndexOf(Fila.Attributes["IP"].Value.ToString()) > -1)
                                            {
                                                IntDto.Middleware = Fila.Attributes["Middleware"].Value.ToString();
                                                break;
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }

                    if (!string.IsNullOrEmpty(IntDto.Nombre) && !string.IsNullOrEmpty(IntDto.IP))
                    {
                        InventarioWS.Add(IntDto.Nombre + "|" + IntDto.IP + "|" + IntDto.Tipo + "|" + IntDto.Middleware);
                    }
                }
            }
            catch (Exception Err)
            {
                EscribeLogWS("ParseadorWS.GenerarInventarioWS " + Err.Message.ToString());
                ProcesoAvanceDto pdtoA = new ProcesoAvanceDto();
                Proceso          proc  = new Proceso();
                proc.SeteaAvance("Error", "OK", "X", "--", "--", Err.Message.ToString(), "Error al realizar la descompresión del archivo", pdtoA, pdto);
                proc.ActualizaProcesoAvance(pdtoA, pdto);
            }
            return(InventarioWS);
        }