Vamos a hacer una web para gestionar profesionales de la construcción.
Tendremos una tabla de Profesionales con su nombre, NIF, teléfono, mail y si están activos.
Cada profesional puede realizar una serie de actividades (pintar, carpintería….) que tienen un precio/hora.
Pensemos en la BD y después implementemos el CRUD.
Ver errores modelo
ModelState.Values.SelectMany(v => v.Errors)
Ejercicio CRUD
Vamos a crear un MVC para poder hacer el CRUD del siguiente modelo de datos:
Proveedor: Nombre, NIF, email
Producto: Nombre, precio
Proveedor 1—-N Producto
Modelo en MVC
Contexto:
public class Contexto:DbContext { public Contexto() { } public Contexto(DbContextOptions<Contexto> options) : base(options) { } } `
Program:
builder.Services.AddDbContext<Contexto>(options => options.UseSqlServer("Server=.\\SQLExpress;Database=mvc;Trusted_Connection=True;"));
Not a bug
Ejercicio MVC
Crear un controlador ‘Trifulcas’ que en el index ponga ‘Trifulcas, la mejor página de programación’ y un enlace a esta misma web.
Y que tenga otro apartado ‘About’ con información de nosotros mismos.
Las dos opciones tienen que aparecer en el menú del Layout
MVC C#
Ejercicio reflection
Con las herramientas de reflection crear un método genérico al que le pasamos una lista de entidades y una cadena de texto y nos devuelva todas las entidades que en algún campo de tipo cadena tenga esa cadena.
Ejemplo
Alumnos{nombre,apellido}=[{“Juan”,”Pi”},{“Ana”,”Perez”},{“Pep”,”Buj”}]
Si yo a esta función le paso una lista con los alumnos de antes y la cadena “e” me devuelve Ana Perez y Pep Buj porque tienen una ‘e’ en una propiedad de tipo string.
Reflection
xUnit Agenda
Con el código de la agenda:
https://github.com/juanpablofuentes/Pasiona/tree/master/Ejemplos01/AgendaTelefonos
Pensad en qué pruebas unitarias podemos hacer para comprobar el funcionamiento.