Foro de elhacker.net

Programación => .NET (C#, VB.NET, ASP) => Mensaje iniciado por: Navidad en 25 Octubre 2012, 20:21 pm



Título: Ayuda
Publicado por: Navidad en 25 Octubre 2012, 20:21 pm
Estoy en un proyecto, de la creación de un programa en capas en c#.

1ra capa: es un winform el cual cargara un archivo xml, posteriormente la pasara a una capa de de WCF.

2da capa: WCF el cual es la encargada de recibir el archivo xml y pasarla a la siguiente capa.

3ra capa: BS es la encargada de recibir el archivo xml y validarlo por medio de un XSD y un XSL, los cuales deben ser ubicados en una carpeta de recursos de este proyecto. Posteriormente en esta capa los valores del xml vienen dolarizados.

WS BCCR: Servicio Web expuesto por el Banco Central de Costa Rica, por medio del cual podemos obtener el tipo de cambio de referencia del dólar para la fecha indicada.

posteriormente enviar el archivo xml a base de datos...


Espero me puedan ayudar en algo, cualquier aporte sera de gran ayuda.

de antemano gracias.

 


Título: Re: Ayuda
Publicado por: Novlucker en 25 Octubre 2012, 20:57 pm
¿Y cual sería la consulta? Parece más bien la letra de un ejercicio.

Saludos


Título: Re: Ayuda
Publicado por: .::IT::. en 26 Octubre 2012, 05:57 am
supongo que te refieres a esto:

http://indicadoreseconomicos.bccr.fi.cr/indicadoreseconomicos/WebServices/wsIndicadoresEconomicos.asmx

y quieres usar el web service desde tu aplicacion web pues lo tienes casi todo echo en .net solo agrega la referencia al web service y invoca al metodo:

ObtenerIndicadoresEconomicos

ObtenerIndicadoresEconomicosXML

o tambien puedes desde la consola de visual studio ejecutar:

Código:
wsdl http://indicadoreseconomicos.bccr.fi.cr/indicadoreseconomicos/WebServices/wsIndicadoresEconomicos.asmx?WSDL

eso te genera un archivo .cs para c# en el cual puedes usar en tu aplicacion


Título: Re: Ayuda
Publicado por: Navidad en 27 Octubre 2012, 05:05 am
Novlucker

en si ese es el planteamiento, lo que necesito es en cualquier aporte de todo eso, me gustaria como hago para validar el xml contra el xsd.. seria de grana yuda el aporte



.::IT::.

si estoy trabando con eso, lo que me tira es un xml con el tipo de cambio del dolar, me podrias ayudar, como hago para tomar ese dato del xml o no es necesario.???


Título: Re: Ayuda
Publicado por: Navidad2 en 27 Octubre 2012, 07:12 am
se ria algo como esto


servicio.wsObtener.... dd = new servicio.wsObtener();
dd.____________;

para pasar el objeto

xml wsd xsl se pueden hacer automaticos hay que cambiar u poco las validaciones suerte NAVIDAD


Título: Re: Ayuda
Publicado por: .::IT::. en 28 Octubre 2012, 18:06 pm
Según veo tienes dos métodos uno que devuelve un Dataset ( para usar .net es más fácil) y otro que devuelve un Xml en formato string(para consumirlo desde cualquier aplicación) bueno procedamos.

Para Invocar y recoger los datos desde webmethod “ObtenerIndicadoresEconomicos” bastaría con una función como la siguiente

Código
  1. private DataTable ObtenerIndicadoresEconomicos()
  2. {
  3.            IniciarParametros();
  4.  
  5.            DataSet resul = myWs.ObtenerIndicadoresEconomicos(tcIndicador,
  6.                                                              tcFechaInicio,
  7.                                                              tcFechaFinal,
  8.                                                              tcNombre,
  9.                                                              tcSubNiveles);
  10.  
  11.            if (resul != null)
  12.                return resul.Tables[0];
  13.            else
  14.                throw new Exception("No se encontraron resultados");
  15. }
  16.  

Y para “ObtenerIndicadoresEconomicosXML” seria:

Código
  1. private DataTable ObtenerIndicadoresEconomicosXml()
  2. {
  3.            IniciarParametros();
  4.            string resul = myWs.ObtenerIndicadoresEconomicosXML(tcIndicador,
  5.                                                     tcFechaInicio,
  6.                                                     tcFechaFinal,
  7.                                                     tcNombre,
  8.                                                     tcSubNiveles);
  9.            XmlDocument myXml = new XmlDocument();
  10.            myXml.LoadXml(resul);
  11.  
  12.            XmlNodeReader _reader = new XmlNodeReader(myXml);
  13.  
  14.            DataSet myDs = new DataSet();
  15.            myDs.ReadXml(_reader);
  16.  
  17.            if (myDs.Tables != null)
  18.                return myDs.Tables[0];
  19.            else
  20.                throw new Exception("No se encontraron resultados");
  21. }
  22.  

En donde :

"IniciarParametros()" es un metodo que incializa los valores para tcIndicador, tcFechaInicio, tcFechaFinal,tcNombre y tcSubNiveles respectivamente todos de tipo string segun indica el web service.

"myWs" es una clase de tipo "wsIndicadoresEconomicos" que me genero la utilidad wsdl de .net.

bueno aqui un ejemplo que hice.

(http://www.subirimagenes.net/pictures/f0ad69093770197182fd24af389abd80.png)

https://rapidshare.com/#!download|701p11|2599448488|bccr.zip|27|0|0

Nota: La carga demora un poco por lo que te recomiendo usar subprocesos para ello podrias usar la clase Thread o un el control BackgroundWorker que es mi favorito por ser muy sencillo de usar.

Saludos!!!


Título: Re: Ayuda
Publicado por: Navidad en 30 Octubre 2012, 06:20 am
.::IT::.

 Gracias por ese gran aporte, intentare trabajar con esos codigos cualquier duda ahi te escribo xD

me gustaria si me puedes ayudar con lo que sos las validaciones comparar el xml con el schema.

gracias xD


Título: Re: Ayuda
Publicado por: Novlucker en 30 Octubre 2012, 12:57 pm
Lo que estas pidiendo no es ayuda, es el ejercicio completo, por que no muestras tus avances? :¬¬

Saludos


Título: Re: Ayuda
Publicado por: Navidad en 30 Octubre 2012, 17:13 pm
el proyecto es grande, ya tengo el squema del archivo xml ahora neceito compararlos para ver si el archivo pasa la validación.


Título: Re: Ayuda
Publicado por: .::IT::. en 30 Octubre 2012, 19:01 pm
Aqui ya tienes el XmlDocument

Código
  1. string resul = myWs.ObtenerIndicadoresEconomicosXML(tcIndicador,
  2.                                                     tcFechaInicio,
  3.                                                     tcFechaFinal,
  4.                                                     tcNombre,
  5.                                                     tcSubNiveles);
  6.            XmlDocument myXml = new XmlDocument();
  7.            myXml.LoadXml(resul);
  8.  

de hi ya solo lo comparas con tu esquema Xml mira este link:

http://msdn.microsoft.com/en-us/library/aa302294.aspx

espero te ayude!!

Saludos!!!


Título: Re: Ayuda
Publicado por: monkey08 en 17 Agosto 2014, 02:01 am
Según veo tienes dos métodos uno que devuelve un Dataset ( para usar .net es más fácil) y otro que devuelve un Xml en formato string(para consumirlo desde cualquier aplicación) bueno procedamos.

Para Invocar y recoger los datos desde webmethod “ObtenerIndicadoresEconomicos” bastaría con una función como la siguiente

Código
  1. private DataTable ObtenerIndicadoresEconomicos()
  2. {
  3.            IniciarParametros();
  4.  
  5.            DataSet resul = myWs.ObtenerIndicadoresEconomicos(tcIndicador,
  6.                                                              tcFechaInicio,
  7.                                                              tcFechaFinal,
  8.                                                              tcNombre,
  9.                                                              tcSubNiveles);
  10.  
  11.            if (resul != null)
  12.                return resul.Tables[0];
  13.            else
  14.                throw new Exception("No se encontraron resultados");
  15. }
  16.  

Y para “ObtenerIndicadoresEconomicosXML” seria:

Código
  1. private DataTable ObtenerIndicadoresEconomicosXml()
  2. {
  3.            IniciarParametros();
  4.            string resul = myWs.ObtenerIndicadoresEconomicosXML(tcIndicador,
  5.                                                     tcFechaInicio,
  6.                                                     tcFechaFinal,
  7.                                                     tcNombre,
  8.                                                     tcSubNiveles);
  9.            XmlDocument myXml = new XmlDocument();
  10.            myXml.LoadXml(resul);
  11.  
  12.            XmlNodeReader _reader = new XmlNodeReader(myXml);
  13.  
  14.            DataSet myDs = new DataSet();
  15.            myDs.ReadXml(_reader);
  16.  
  17.            if (myDs.Tables != null)
  18.                return myDs.Tables[0];
  19.            else
  20.                throw new Exception("No se encontraron resultados");
  21. }
  22.  

En donde :

"IniciarParametros()" es un metodo que incializa los valores para tcIndicador, tcFechaInicio, tcFechaFinal,tcNombre y tcSubNiveles respectivamente todos de tipo string segun indica el web service.

"myWs" es una clase de tipo "wsIndicadoresEconomicos" que me genero la utilidad wsdl de .net.

bueno aqui un ejemplo que hice.

(http://www.subirimagenes.net/pictures/f0ad69093770197182fd24af389abd80.png)

https://rapidshare.com/#!download|701p11|2599448488|bccr.zip|27|0|0

Nota: La carga demora un poco por lo que te recomiendo usar subprocesos para ello podrias usar la clase Thread o un el control BackgroundWorker que es mi favorito por ser muy sencillo de usar.

Saludos!!!

Podrias pasar de nuevo el codigo de tu aplicaciön he intentado de muchas maneras y no lo consigo :( y no puedo descargarlo mediante reapidshare


Título: Re: Ayuda
Publicado por: Eleкtro en 17 Agosto 2014, 04:20 am
Está prohibido revivir temas antiguos, puedes enviar mensajes privados al usuario.

Tema cerrado

Saludos!