/* * 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(">$"); } } }
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); }