Bien es momento de empezar a trabajar con esta app les voy a pedir que vayamos nuevamente a nuestro
programa déjeme cerrar todo y aquí en ese vamos a crear un nuevo directorio llamado modelos o modelos
o módem como ustedes quieran ponerle modelos está bien dentro de modelos voy a crear un nuevo archivo
llamado película sin acento sin nada película y un bajo Model Dart.
Aquí voy a trabajar con toda la información relacionada a los objetos que voy a crear de tipo película
es decir vamos a revisar aquí el ejemplo.
Todo esto que tenemos acá de los resultados todo esto hasta aquí va a ser tratado como un objeto película
porque tiene cuántos votos ha tenido esta película el Heydi si tiene video el promedio de votos el título
La popularidad el póster Paz el idioma original todos estos valores.
Todo esto va a ser considerado un modelo.
Noten que aquí en el género Heydi tenemos también un arreglo de enteros que nos va a ayudar o nos ayudaría.
Si nosotros queremos definir los géneros en los cuales esa película es considerada entonces aquí les
voy a decir o les voy a pedir que hagamos lo siguiente hagamos clic en Rock and Roll hagan controlã
o Cumana para copiar todo el contenido del mismo osaban a copiarse todos los datos a todo lo que está
aquí adentro lo copian.
Regresemos al estudio Coupet y se buscan la extensión llamada Paix Jayson.
Scott presiona Enter.
Les va a pedir cuál es el nivel principal.
Digamos que respuesta.
Esto ya lo vamos a arreglar y presionar ENTER.
Qué es lo que tenemos acá.
Bueno primero me dice que fue generado por el Quicktime.
Eso si quieren no dejan.
La respuesta es prácticamente lo que nos está retornando dado muy bien.
Pero yo no lo voy a manejar de esta manera se pudiera utilizar todo esto sí perfectamente pero yo no
lo voy a hacer de esa manera.
OK.
Los de texto también lo voy a borrar eso no me sirve eso de acá se llama una película que es una película
porque tiene su conteo de votos.
Noten que lo está capitalizando sea int booklet en vez de ponerlo así como estaba en la documentación
lo está manejando de esta manera y está bien.
Está bien que sea así.
Luego tenemos el Heydi tenemos el bullían o adobos Bridge y perfecto encontró todos inclusive.
Inclusive me puso acá lo que era el original lenguaje como si fuera un tipo y este tipo lo definió aquí
abajo.
Podríamos dejarlo de esa manera y si nosotros vemos la respuesta vamos a ver como él está trabajando
acá que es lo que viene en ese idioma.
Viene un estreno.
Entonces podríamos manejarlo como una enumeración de esos dos pero quitemos lo mejor dejémoslo como
un string y así no nos complicamos la existencia.
Luego tenemos la lista de géneros o de géneros es una lista de enteros y eso está bien.
Y aquí nos están marcando un error que nos está marcando un error vamos encima y es porque nosotros
le cambiamos el nombre a la película y por eso el constructor no se puede llamar así de película.
Lo voy a grabar los cambios y eso es todo por este lado.
Qué es lo que serviría o para qué me serviría esta clase de película.
Bueno suponiendo que yo recibo una película suponiendo que yo sólo recibiera una.
Perfectamente puedo crear esa instancia pero en este caso yo voy a recibir una colección o una lista
de películas.
Nosotros vimos en el reforzamiento de tard que esta información va a venir en un formato Jayson que
es como un plano o sea un tren ese tren yo lo voy a decodificar con el Jayson Scott y me va a retomar
un mapa ese mapa puede contener listas por lo cual tengo que hacer un cierto trabajo con la respuesta
porque no lo puedo trabajar directamente porque esto es un Jayson y a pesar de que la información viene
bien estructurada necesito transformarla de alguna manera y por eso el primer paso fue quedarme esta
película.
Ahora yo voy a suponer que yo tengo un constructor acá voy a crearme otro constructor llamado película
punto from Jayson Mapp que va a ser una función que voy a llamar cuando quiero generar una instancia
de película que viene de un mapa que viene en formato Chausson.
Esto ya lo vamos a ver en breve aquí yo recibiría un Mapp que tendría como llave un tren y el otro valor
sería Tainan.
EC Por qué sería dinámico.
Porque si ustedes ven aquí tenemos números que tenemos streamings tenemos julianos tenemos de todo.
Por eso estoy poniendo que va a ser de tipo dinámico y aquí le voy a poner Jayson o el nombre que ustedes
quieran darle.
Lo que tengo que hacer acá ahora es tomar cada uno de los valores que vienen en este Jayson Mapp suponiendo
que son esto que este es el mapa literalmente.
Este es el objeto que van a recibir.
Entonces tengo que asignársele a cada una de las propiedades de la clase a cada una de ellas.
Noten que la diferencia es que como por ejemplo el back Book Count perdón tiene Boop un bajo Canout
y aquí lo está poniendo todo pegado.
Es que así es el estándar de dar y este es un estándar en los formatos usar capitalizaciones.
Entonces hagamos lo siguiente Vamos a tener que hacer esta carpintería no nos vamos a salvar de hacerla.
Entonces yo voy a crear muchas líneas copiar todo este código.
Voy a bajar acá lo pego déjeme arreglarla tabulación un poquito Ok voy a crear nuevamente este montón
de multi cursores voy a decir que esto es igual a Jayson y me interesa la propiedad respectiva de cada
una de éstas.
Ahora si se preguntan cómo es que hice esto tan rápido.
Yo tengo un curso gratuito de Visual Studio Job que les va a ayudar a ustedes a poder hacer esto de
una manera de igual igual de rápido que yo o por lo menos a una muy buena velocidad.
Aquí estoy ordenado nada más porque me gusta que el código se mire que se mire limpio y no quede así
todo desordenado.
Así queda mucho más fácil a la vista lo que hay que hacer ciertos cambios.
Por ejemplo el vodka así nosotros no lo tenemos no lo recibimos en el servicio lo recibimos así Bootcamp
igual que el voto vote average título popularidad poster y un bajo paz así lo recibimos.
Original lenguaje así el original Taurus viene así los aldiz vienen de esta manera ok nuevamente recuerden
que no tienen ninguna mayúscula.
Si tuvieran una mayúscula tienen que cambiarla por un guion bajo.
Igual ya les voy a enseñar cómo depurar esta parte porque aquí es donde muchos posiblemente tengan problemas
no como yo lo estoy dejando.
De igual manera yo les voy a dejar este código en el material adjunto para que no tengan que escribir
tanto si así no quieren pero todavía nos quedan cosas por hacer una cosa que va a suceder o que puede
suceder es que como el bot Alberich vamos a ver si lo tenemos acá el bot aquí es de 5.3 pero si fuera
5.0 nosotros vamos a recibir el 5 cerrado y eso no es un doble válido como nosotros tenemos acá.
Vamos a ver aquí no lo tenemos como entonces para pasarlo a doble.
Lo más fácil lo más fácil es que el bot abajo lo dividamos entre 1.
De esta manera lo transformamos a un número doble completamente lo mismo con la popularidad y los géneros
Nosotros necesitaríamos pasarlos haciendo un cast y decirle que esto es de tipo entero.
Esto va a ser necesario.
No se preocupen porque el color no parece muy bien pero así va a funcionar.
Ok ya tenemos nuestro película Model recuerden yo les dejo esto en el material adjunto para evitar problemas
para que ustedes no se confundan o quieran revisarlo para asegurarse de que ustedes lo hicieron igual
ahora antes de terminar esta lección voy a creerme siempre en este mismo archivo.
Una nueva clase llamada películas con esta película va a ser bueno van a servirme como un contenedor
de todas las películas que estoy manejando en este momento puede ser la lista de las películas actuales
puede ser una lista de películas independientes esto lo vamos a usar en varios lugares para eso voy
a definirme que con tener una lista de tipo película ok hay que hacer una colección o una lista de este
tipo de objeto llamado AITEX.
Le puedo poner así a o el nombre que ustedes deseen va a ser igual a una nueva lista dinámica por eso
no estoy definiendo el largo creé voy a crear constructor que por el momento no va a tener nada es un
constructor simplemente vacío.
Voy a crearme otro constructor que me permita a mí recibir el mapa de todas las respuestas o sea yo
voy a crear un constructor que permita recibir éste esta lista.
De todas esas películas y transformarlas en ítems para que yo pueda decir películas hacer referencia
a los ítems y cada uno de esos ítem sería una película.
Yo sé que sonará muy complicado pero ya tenemos hecho todo el trabajo.
Voy a crear un nuevo constructor apuntó.
From Jayson Map o podemos poner un Jayson List porque realmente es lo que vamos a recibir.
Recuerden que ese nombre se lo estoy asignando no quiere decir que eso es lo que vamos a recibir aquí.
Nosotros vamos a esperar recibir este objeto ya todo esta lista.
Eso es lo que vamos a recibir nosotros que tiene todas todas todas esas películas ok todo eso es lo
que vamos a recibir acá y lo voy a llamar así es una lista dinámica.
Y por qué Dinamic por qué no la defines como una lista de strings y otras cosas si es que ustedes no
van a poder ser muy exactos o muy precisos.
Es un Jayson map.
Si ustedes lo hacen posiblemente cuando algo ya no cumpla la condición les explote programas.
Entonces es mejor dejarlo así de flexible.
De todas formas lo estamos mapeando nosotros aquí lo voy a hacer referencia a un Jayson list.
Así se va a llamar abren cierran llaves.
Qué es lo que quiero hacer acá.
Lo primero una pequeña validación y decir que si el Jayson list es igual a Null no voy a hacer nada.
Es un retorno.
Si está vacío y eso no funciona esto podemos mandar un error o cualquier otra cosa pero vamos a dejarlo
así.
Pero si tenemos datos entonces voy a hacer un ciclo y Bart y podemos ponerle final también pero bueno
Bart item in Jayson List de esta manera voy a barrer todo este lista.
Hay muchas maneras de barrer esos listados pero bueno podría hacerlo si porque queda bastante claro.
Muchos podrían decir Ah pero lo que estoy recibiendo aquí es una película así y no lo que estoy recibiendo
acá es un mapa.
Estoy haciendo este mapa con todas esas propiedades no estoy recibiendo la película todavía.
Entonces lo que quiero hacer es crear una nueva instancia de película película pero con la p minúscula
película va a ser igual a Niu película película punto from Jayson Map y aquí voy a mandar el ítem punto
y coma.
De esta manera estoy mandando todo este ítem ya estoy mandando todo esto al constructor que nosotros
definimos de Jayson Mapp o sea este constructor en particular que va a determinar cada una de sus propiedades
y se la pasa a cada una de las propiedades de la clase y me va a crear una nueva instancia de película.
Esa nueva instancia de película la voy a almacenar en ítems junto a la película ok pero espérense de
la película puntico.
En pocas palabras este arreglo o esta lista de películas va a contener todas las películas mapeada.
Por este proceso.
Básicamente eso es todo lo que quiero hacer.
Recuerden en el material adjunto yo les estoy dejando esta información para que ustedes puedan comprobarlo
porque hicimos mucho código.
Espero que haya quedado todo claro de cada una de las líneas que yo escribí.
Todavía tenemos que probarlo pero para probarlo vamos a ocupar a hacer la petición HTTP y eso es algo
que vamos a hacer en la siguiente clase.
Si tienen dudas de por qué supe como castigar esto en pasarlo a un bol y otras cosas es porque usaba
mucho esta API y ya me he enfrentado a esos problemas pero no se preocupen ya vamos a hacer la demostración.
Qué pasaría si no tenemos las y las uno para dividirlo o transformarlo en dogout.
Y si no lo castigamos también ustedes pueden probarlo pero ya les voy a enseñar cómo depurar esta cada
uno de estos procesos ok.
Porque si hiciéramos Prins en cada uno de ellos nos volvemos locos.
Así que vamos a hacerlo mediante los Developers Tools que ya vienen en el Visual Studio.
Pero eso en las próximas clases dejémoslo así.
Asegúrese de que los nombres estén bien no debería haber ni una sola mayúscula acá no hay ni una sola
mayúscula y lo dejamos así continuamos con la siguiente clase.