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.
Autor: Juan Pablo Fuentes
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.

