Esempio n. 1
0
        /*
         * Metodo se encarga de recorrer todo nuestra base de datos no relacional y guardarla en forma fisica
         */
        public void guardarArchivo(string archivo)
        {
            using (FileStream fileStream = File.Open("DATABASE/" + archivo + ".chison", FileMode.Truncate))
            {
                using (StreamWriter f = new StreamWriter(fileStream))
                {
                    BaseDeDatos last = TablaBaseDeDatos.global.Count() > 0 ? TablaBaseDeDatos.global.Last() : null;
                    f.WriteLine("$<");
                    f.WriteLine("\t\"DATABASES\" = [");
                    //-------------------------------------------------------------BASES DE DATOS ---------------------------------------------------------------------
                    foreach (BaseDeDatos bd in TablaBaseDeDatos.global)
                    {
                        f.WriteLine("\t\t<");
                        f.WriteLine("\t\t\t\"NAME\" = \"" + bd.nombre + "\",");
                        f.WriteLine("\t\t\t\"Data\" = [");

                        Objeto     o     = bd.objetos;
                        Tabla      lastT = o.tablas.Count > 0 ? o.tablas.Last() : null;
                        User_Types lastU = o.user_types.Count() > 0 ? o.user_types.Last() : null;
                        Procedures lastP = o.procedures.Count() > 0 ? o.procedures.Last() : null;

                        //---------------------------------------------- TABLAS --------------------------------------------------------------------------------------
                        foreach (Tabla t in o.tablas)
                        {
                            f.WriteLine("\t\t\t\t<");
                            f.WriteLine("\t\t\t\t\t\"CQL-TYPE\" = \"TABLE\",");
                            f.WriteLine("\t\t\t\t\t\"NAME\" = \"" + t.nombre + "\",");
                            f.WriteLine("\t\t\t\t\t\"COLUMNS\" = [");

                            //--------------------------------------------COLUMNAS ---------------------------------------------------------------------------------
                            Columna lastC = t.columnas.Count() > 0 ? t.columnas.Last() : null;
                            foreach (Columna c in t.columnas)
                            {
                                f.WriteLine("\t\t\t\t\t\t<");
                                f.WriteLine("\t\t\t\t\t\t\t\"NAME\" = \"" + c.name + "\",");
                                f.WriteLine("\t\t\t\t\t\t\t\"TYPE\" = \"" + c.tipo + "\",");
                                f.WriteLine("\t\t\t\t\t\t\t\"PK\" = " + c.pk);

                                if (c.Equals(lastC))
                                {
                                    f.WriteLine("\t\t\t\t\t\t>");
                                }
                                else
                                {
                                    f.WriteLine("\t\t\t\t\t\t>,");
                                }
                            }
                            f.WriteLine("\t\t\t\t\t],");

                            //-------------------------------------------- DATA ------------------------------------------------------------------------------------
                            f.WriteLine("\t\t\t\t\t\"DATA\" = [");
                            Data lastD = t.datos.Count() > 0 ? t.datos.Last() : null;
                            foreach (Data d in t.datos)
                            {
                                f.WriteLine("\t\t\t\t\t<");

                                //------------------------------------------------------ lista de Atributos --------------------------------------------------------
                                Atributo lastA = d.valores.Count() > 0 ? d.valores.Last() : null;
                                foreach (Atributo a in d.valores)
                                {
                                    if (a.valor != null)
                                    {
                                        string salida = getValor(a.valor, a.nombre, "\t\t\t\t\t\t");
                                        if (!a.Equals(lastA))
                                        {
                                            salida += ",";
                                        }
                                        f.WriteLine(salida);
                                    }
                                }

                                if (d.Equals(lastD))
                                {
                                    f.WriteLine("\t\t\t\t\t>");
                                }
                                else
                                {
                                    f.WriteLine("\t\t\t\t\t>,");
                                }
                            }
                            f.WriteLine("\t\t\t\t\t]");

                            if (t.Equals(lastT))
                            {
                                if (lastU != null || lastP != null)
                                {
                                    f.WriteLine("\t\t\t\t>,");
                                }
                                else
                                {
                                    f.WriteLine("\t\t\t\t>");
                                }
                            }
                            else
                            {
                                f.WriteLine("\t\t\t\t>,");
                            }
                        }

                        //--------------------------------------------- OBJECT ---------------------------------------------------------------------------------------

                        foreach (User_Types us in o.user_types)
                        {
                            f.WriteLine("\t\t\t\t<");
                            f.WriteLine("\t\t\t\t\t\"CQL-TYPE\" = \"OBJECT\",");
                            f.WriteLine("\t\t\t\t\t\"NAME\" = \"" + us.name + "\",");
                            f.WriteLine("\t\t\t\t\t\"ATTRS\" = [");

                            //------------------------------------------------------ ATTRS ---------------------------------------------------------------------------
                            Attrs lastA = us.type.Count() > 0 ? us.type.Last() : null;
                            foreach (Attrs a in us.type)
                            {
                                f.WriteLine("\t\t\t\t\t\t<");
                                f.WriteLine("\t\t\t\t\t\t\t\"NAME\" = \"" + a.name + "\",");
                                f.WriteLine("\t\t\t\t\t\t\t\"TYPE\" = \"" + a.type + "\"");

                                if (a.Equals(lastA))
                                {
                                    f.WriteLine("\t\t\t\t\t\t>");
                                }
                                else
                                {
                                    f.WriteLine("\t\t\t\t\t\t>,");
                                }
                            }

                            f.WriteLine("\t\t\t\t\t]");
                            if (us.Equals(lastU))
                            {
                                if (lastP != null)
                                {
                                    f.WriteLine("\t\t\t\t>,");
                                }
                                else
                                {
                                    f.WriteLine("\t\t\t\t>");
                                }
                            }
                            else
                            {
                                f.WriteLine("\t\t\t\t>,");
                            }
                        }

                        //------------------------------------------------ PROCEDURES -------------------------------------------------------------------------------

                        foreach (Procedures p in o.procedures)
                        {
                            f.WriteLine("\t\t\t\t<");
                            f.WriteLine("\t\t\t\t\t\"CQL-TYPE\" = \"PROCEDURE\",");
                            f.WriteLine("\t\t\t\t\t\"NAME\" = \"" + p.nombre + "\",");
                            f.WriteLine("\t\t\t\t\t\"PARAMETERS\" = [");

                            //------------------------------------------------------ PARAMETROS ---------------------------------------------------------------------
                            //.........................................................IN ...........................................................................
                            Boolean         flagHayParameter = false;
                            listaParametros parametro        = p.parametro.ElementAt(0);
                            if (parametro.lista.Count() > 0)
                            {
                                var nodeLastParameter = parametro.lista.Last();
                                foreach (Declaracion d in parametro.lista)
                                {
                                    flagHayParameter = true;
                                    f.WriteLine("\t\t\t\t\t<");
                                    f.WriteLine("\t\t\t\t\t\t\"NAME\" = \"" + d.id + "\",");
                                    f.WriteLine("\t\t\t\t\t\t\"TYPE\" = \"" + d.tipo + "\",");
                                    f.WriteLine("\t\t\t\t\t\t\"AS\" = \"IN\"");
                                    if (!d.Equals(nodeLastParameter))
                                    {
                                        f.WriteLine("\t\t\t\t\t>,");
                                    }
                                }
                            }

                            //------------------------------------------------------- OUT -------------------------------------------------------------------------------
                            parametro = p.retornos.ElementAt(0);
                            if (parametro.lista.Count() > 0)
                            {
                                if (flagHayParameter)
                                {
                                    f.WriteLine("\t\t\t\t\t>,");
                                }
                                var nodeLastParameter = parametro.lista.Last();
                                foreach (Declaracion d in parametro.lista)
                                {
                                    flagHayParameter = true;
                                    f.WriteLine("\t\t\t\t\t\t<");
                                    f.WriteLine("\t\t\t\t\t\t\t\"NAME\" = \"" + d.id + "\",");
                                    f.WriteLine("\t\t\t\t\t\t\t\"TYPE\" = \"" + d.tipo + "\",");
                                    f.WriteLine("\t\t\t\t\t\t\t\"AS\" = \"OUT\"");
                                    if (!d.Equals(nodeLastParameter))
                                    {
                                        f.WriteLine("\t\t\t\t\t>,");
                                    }
                                    else
                                    {
                                        f.WriteLine("\t\t\t\t\t>");
                                    }
                                }
                            }
                            else
                            {
                                if (flagHayParameter)
                                {
                                    f.WriteLine("\t\t\t\t\t>");
                                }
                            }
                            f.WriteLine("\t\t\t\t\t],");
                            f.WriteLine("\t\t\t\t\t\"INSTR\" = $" + p.instruccion + "$");
                            if (p.Equals(lastP))
                            {
                                f.WriteLine("\t\t\t\t>");
                            }
                            else
                            {
                                f.WriteLine("\t\t\t\t>,");
                            }
                        }

                        f.WriteLine("\t\t\t]");
                        if (bd.Equals(last))
                        {
                            f.WriteLine("\t\t>");
                        }
                        else
                        {
                            f.WriteLine("\t\t>,");
                        }
                    }

                    f.WriteLine("\t],");
                    f.WriteLine("\t\"USERS\" = [");

                    //---------------------------------------------------- USUARIOS -------------------------------------------------------------------------------
                    Usuario lastUser = TablaBaseDeDatos.listaUsuario.Count() > 0 ? TablaBaseDeDatos.listaUsuario.Last() : null;
                    foreach (Usuario us in TablaBaseDeDatos.listaUsuario)
                    {
                        f.WriteLine("\t\t<");
                        f.WriteLine("\t\t\t\"NAME\" = \"" + us.nombre + "\",");
                        f.WriteLine("\t\t\t\"PASSWORD\" = \"" + us.password + "\",");
                        f.WriteLine("\t\t\t\"PERMISSIONS\" = [");

                        string lasPer = us.bases.Count() > 0 ? us.bases.Last() : null;
                        foreach (string p in us.bases)
                        {
                            f.WriteLine("\t\t\t<");
                            f.WriteLine("\t\t\t\"NAME\" = \"" + p + "\"");
                            if (p.Equals(lasPer))
                            {
                                f.WriteLine("\t\t\t>");
                            }
                            else
                            {
                                f.WriteLine("\t\t\t>,");
                            }
                        }

                        f.WriteLine("\t\t\t]");
                        if (us.Equals(lastUser))
                        {
                            f.WriteLine("\t\t>");
                        }
                        else
                        {
                            f.WriteLine("\t\t>,");
                        }
                    }


                    f.WriteLine("\t]");

                    f.WriteLine(">$");
                }
            }
        }
Esempio n. 2
0
        public ItemGenerico UDB_Consulta(string strValor, ref string strMSGERROR, ref string strCodError)
        {
            string strkeyIMSI         = string.Empty;
            string strkeyRC           = string.Empty;
            string strIMSI            = string.Empty;
            string strRC              = string.Empty;
            string strUrl             = string.Empty;
            string strAccion          = string.Empty;
            string strApp             = string.Empty;
            string strIpApp           = string.Empty;
            string strUserSystem      = string.Empty;
            string strTransaccion     = string.Empty;
            string strParamEnvio      = string.Empty;
            string strParamListaEnvio = string.Empty;

            bool     blnIMSI   = false;
            bool     blnRC     = false;
            bool     blnAccion = false;
            DateTime fecha     = DateTime.Now;


            ItemGenerico objItemGenerico = new ItemGenerico();

            strkeyIMSI         = ConfigurationSettings.AppSettings["strWSKeyIMSI"];
            strkeyRC           = ConfigurationSettings.AppSettings["strWSKeyRC"];
            strUrl             = ConfigurationSettings.AppSettings["strWSConsultaUDB"];
            strAccion          = ConfigurationSettings.AppSettings["strWSidAccionUDB"];
            strApp             = ConfigurationSettings.AppSettings["constAplicacion"];
            strUserSystem      = ConfigurationSettings.AppSettings["CONS_SERVV_USUARIO_SISTEMA"];
            strIpApp           = ConfigurationSettings.AppSettings["strWebIpCod"];
            strParamEnvio      = ConfigurationSettings.AppSettings["strWSParamEnvio"];
            strParamListaEnvio = ConfigurationSettings.AppSettings["strWSParamListaEnvio"];
            strTransaccion     = strValor + fecha.ToString("ddMMyyyyHmm");

            try
            {
                //Configuración de Servicio
                UDBWSService objServicioUDB = new UDBWSService();
                objServicioUDB.Url         = strUrl;
                objServicioUDB.Credentials = System.Net.CredentialCache.DefaultCredentials;

                //Request
                consultarRequest objconsultarRequest = new consultarRequest();

                parametrosAuditRequest objAuditRequest = new parametrosAuditRequest();
                objAuditRequest.idTransaccion     = strTransaccion;
                objAuditRequest.ipAplicacion      = strIpApp;
                objAuditRequest.nombreAplicacion  = strApp;
                objAuditRequest.usuarioAplicacion = strUserSystem;

                objconsultarRequest.auditRequest = objAuditRequest;

                accionType objEntidad = new accionType();
                objEntidad.idAccion = strAccion;

                accionType objAccionRequest = new accionType();
                objAccionRequest = objEntidad;

                objconsultarRequest.accionRequest = objAccionRequest;                //Añadiendo idAccion -> accionRequest

                //listaParametrosParametro
                listaParametrosParametro objListaParametrosParametro = new listaParametrosParametro();
                objListaParametrosParametro.campo = strParamEnvio;
                objListaParametrosParametro.valor = strValor;

                listaParametrosParametro[] objArrListaParametrosParametro = new listaParametrosParametro[1];
                objArrListaParametrosParametro[0] = objListaParametrosParametro;

                listaParametros objListaParametros = new listaParametros();
                objListaParametros.nombreLista = strParamListaEnvio;
                objListaParametros.parametro   = objArrListaParametrosParametro;

                listaParametros[] objArrListaParametros = new listaParametros[1];
                objArrListaParametros[0] = objListaParametros;

                objAccionRequest.listaParametros = objArrListaParametros;

                objconsultarRequest.accionRequest = objAccionRequest;

                //Response
                ConsultaUDBWS.consultarResponse objResponseUDB = new ConsultaUDBWS.consultarResponse();
                objResponseUDB = objServicioUDB.consultar(objconsultarRequest);

                if (objResponseUDB.accionResponse.listaParametros != null)
                {
                    for (int i = 0; i < objResponseUDB.accionResponse.listaParametros.Length; i++)
                    {
                        if (objResponseUDB.accionResponse.listaParametros[i].nombreLista.Equals(strAccion))
                        {
                            blnAccion = true;
                            for (int j = 0; j < objResponseUDB.accionResponse.listaParametros[i].parametro.Length; j++)
                            {
                                if (objResponseUDB.accionResponse.listaParametros[i].parametro[j].campo.Equals(strkeyIMSI))
                                {
                                    strIMSI = objResponseUDB.accionResponse.listaParametros[i].parametro[j].valor.ToString();
                                    blnIMSI = true;
                                }
                                else if (objResponseUDB.accionResponse.listaParametros[i].parametro[j].campo.Equals(strkeyRC))
                                {
                                    strRC = objResponseUDB.accionResponse.listaParametros[i].parametro[j].valor.ToString();
                                    blnRC = true;
                                }
                                if (blnIMSI && blnRC)
                                {
                                    break;
                                }
                            }
                        }
                        if (blnAccion)
                        {
                            break;
                        }
                    }
                }

                strMSGERROR = objResponseUDB.auditResponse.msjRespuesta.ToString();
                strCodError = objResponseUDB.auditResponse.codRespuesta.ToString();


                objItemGenerico.Codigo  = strIMSI;
                objItemGenerico.Codigo2 = strRC;
            }
            catch (Exception ex)
            {
                if (strMSGERROR != "")
                {
                    strMSGERROR = strMSGERROR + ". Error ComandoHLRNegocios:ComandoUDB(): " + ex.Message;
                }
                else
                {
                    strMSGERROR = "Error ComandoHLRNegocios:ComandoUDB(): " + ex.Message;
                }
                throw ex;
            }

            return(objItemGenerico);
        }