
Figura 1. Diseño del Windows Form 1.Fuente Propia
Como pueden notar en la Figura 1 allí muestro como está constituido el Form 1. Utilizo un label el cual se ubica en la parte superior del formulario el cual sirve para mostrar un texto en este caso “Introduzca su ID”, debajo del label se ubica un textbox el cual sirve para introducir un texto por el usuario y por último un button.

Figura 2. Creación del XML Windows Form 1.Fuente Propia
Dentro del constructor de este form utilizo un try catch, esto debido a que cada vez que corra el programa este va a crear el archivo XML, en el try (Línea 24) va a cargar el archivo XML y en caso de que este no este creado procede a colocarle el valor de FALSE a una variable booleana cuyo valor es TRUE (exists) la cual ayudará al programa para saber si debe o no crear el archivo XML. En caso de que el valor de esta variable sea TRUE entrara en el IF de la Línea 30 y cargará el archivo, si no es asín entonces entrará en el ELSE y creará el archivo XML, declarándolo, inicializándolo y creando los nodos padres (BDD, Usuarios y Equipos) y luego los agrega al XML.

Figura 3. Eventos de los Botones del Form 1.Fuente Propia
En este Form utilizo dos botones, uno para continuar luego de que ingreso el ID y otro para continuar luego de colocar el nombre. Al igual que el programa anterior el primer botón no va a continuar si el textbox está vacío o si tiene caracteres no numéricos (En caso de que esto suceda aparecerá un label en el cual les dirá que debe colocar el ID del usuario). Luego de que se ingresen caracteres numéricos y se le dé al botón de aceptar se hará un chequeo en EL ARCHIVO XML para ver si el ID existe, en caso de que exista dará paso a cerrar el Form 1 y abrirá el Form 2. En caso de que no exista entonces aparecerá otro mensaje para ingresar el nombre del usuario y una vez este haya ingresado su nombre sus datos se guardaran en el archivo XML y se dará paso a cerrar el Form 1 y abrir el Form 2.


Figura 4. Diseño y eventos del Windows Form 2. Fuente Propia
Este diseño es muy simple, sólo posee 3 botones. El primer botón se encarga de abrir el form 3 que se encargará de hacer el análisis de la PC, el segundo botón se encarga de abrir el form 4 el cual se encarga de eliminar los equipos registrados y el tercer botón se encarga de abrir el form 5 el cual nos mostrará la lista de nuestros equipos registrados.


Figura 5. Diseño y Código del Windows Form 3.Fuente Propia
Este form posee un Rich TextBox donde se mostrarán las características que analizará el programa, y por un botón para volver al form 2. Lo primero que realiza el programa al entrar a este form es crear el equipo en el XML (Línea 53) y el primer atributo que guarda en ese nodo es el ID del usuario al cual pertenece ese equipo (Línea 54, 55 y 56). Luego en la Línea 57 se refiere al namespace para después ejecutar el query (consulta) en la Línea 58. Para obtener los resultados de los queries se realiza una iteración mediante un foreach el cual va recorriendo la tabla y devuelve cada uno de los elementos de la tabla, que en este caso es el disco duro, el cual nos devuelve la capacidad del disco duro y también el espacio libre que cada disco duro del computador posee.
- Disco Duro: Win32_LogicalDisk.
- Memoria RAM: Win32_PhysicalMemory.
- Sistema Operativo: Win32_OperatingSystem.
- Procesador: Win32_Processor.
- Serial de la Placa Base: Win32_Baseboard.

Figura 6. Diseño del Windows Form 4.Fuente Propia
Este form contiene 2 label, un listbox y dos botones. El listbox nos permite elegir un elemento de la lista con un click.

Figura 7. Método Lista del Windows Form 4.Fuente Propia
Este método consiste en crear una lista con los seriales de las computadoras, mediante un foreach se recorre el archivo XML para buscar si existen computadores según el ID del usuario. En caso de que no se consiga ninguno la variable i que es un contador será igual a 0 y en ese caso mostrará un mensaje diciendo que no hay equipos registrados, en caso de que si los haya entonces mostrará en el listbox todos los computadores. El método eliminar es el mismo que uso en la aplicación de consola de la publicación pasada, el método recibe el serial del pc y mediante un foreach recorre todo el XML y verifica mediante cada iteración que el serial que fue pasado por referencia se encuentre en este, una vez que se encuentre este es borrado.

Figura 8. Diseño del Windows Form 5.Fuente Propia
Este form está constituido por un rich textbox donde se mostrarán las computadoras con sus respectivas características, y 3 botones. Uno de los botones es el de volver que simplemente nos devuelve al form 2 y los otros dos botones son para avanzar y retroceder cuya función es que en caso de que hayan más de dos computadores estos nos permiten avanzar o retroceder en la lista para ver los computadores que se encuentran en ella.

Figura 9. Código del Windows Form 5.Fuente Propia
El Load del Windows Form consiste en recorrer el XML y buscar todos los equipos que tienen el ID del usuario, en caso de conseguirlos procede a guardarlos en un String que se llama resultados y al final del load se llama al método mostrar para así reflejar en el rich textbox los computadores.

Figura 10. Método mostrar y método getNombre.Fuente Propia
En el método mostrar verifico si hay equipos registrados mediante un contador, en caso de que sea 0 muestro el mensaje de que no hay equipos registrados, sino muestro en el rich textbox el string resultado. Los botones para avanzar y retroceder estarán desactivados mientras no haya ningún equipo registrado o sólo haya uno. El método getNombre simplemente recorre el XML y cuando encuentre el ID del usuario devolverá el nombre registrado.
A continuación, les dejo un video donde podrán observar el programa listo y como es su comportamiento:
Video Propio

Espero que les haya gustado esta publicación, seguiré subiendo más post de este tipo.
Referencias Bibliográficas:
- Libro: C# 5.0 in a Nutshell. O' REILLY.
- Libro: C# 6 y Visual Studio 2015: Los fundamentos del lenguaje. Sébastien Putier.