Crear un formulario que nos pida los siguientes datos:
Nombre
Edad
Email
Tipo de problema (urgente, muy urgente, para ayer)
Fecha
Es cliente o no
Es Premium o no
Observaciones
Elegid los tipos de objeto que creáis conveniente para cada dato.
Crear un formulario que nos pida los siguientes datos:
Nombre
Edad
Email
Tipo de problema (urgente, muy urgente, para ayer)
Fecha
Es cliente o no
Es Premium o no
Observaciones
Elegid los tipos de objeto que creáis conveniente para cada dato.
static async Task Main(string[] args) { // URL del JSON string url = "https://jsonplaceholder.typicode.com/posts"; // Leer el JSON de la URL var json = await ObtenerJsonDesdeUrl(url); // Deserializar el JSON en un tipo anónimo var datos = JsonSerializer.Deserialize<dynamic>(json, new JsonSerializerOptions { PropertyNameCaseInsensitive = true }); // Iterar y mostrar datos foreach (var elemento in datos) { Console.WriteLine($"ID: {elemento.id}, Título: {elemento.title}"); } } // Método para obtener el JSON desde una URL public static async Task<string> ObtenerJsonDesdeUrl(string url) { using HttpClient client = new HttpClient(); var response = await client.GetAsync(url); response.EnsureSuccessStatusCode(); // Lanza excepción si el estado no es 2xx return await response.Content.ReadAsStringAsync(); } }
using CapaServicio.Controllers; using CapaServicio.Models; using CapaServicio.Repository; using CapaServicio.Service; using Microsoft.AspNetCore.Mvc; using Moq; namespace CapaTest { public class UnitTest1 { private Mock<IAlumnoService> _mockService; private AlumnoesController _controller; public UnitTest1() { // Crear el mock del servicio y configurar su comportamiento _mockService = new Mock<IAlumnoService>(); // Esto son datos falsos de prueba que será lo que obtengamos cuando // El controlador llame al servicio _mockService.Setup(s => s.ObtenerTodos()).Returns(new List<Alumno> { new Alumno(), new Alumno() }); _mockService.Setup(s => s.ObtenerPorId(2)).Returns(new Alumno()); //// Crear una instancia del controlador con el mock del servicio _controller = new AlumnoesController(_mockService.Object); } [Fact] public async Task Test1Async() { // Aquí verifico el index var result = await _controller.Index() as ViewResult; // Verificar Assert.NotNull(result); // Compruebo, por ejemplo, que el modelo es una lista de alumnos Assert.IsType(typeof(List<Alumno>), result.Model); Assert.Equal(2, ((List<Alumno>)result.Model).Count); // Aquí verifico el Details con un id 2 result = await _controller.Details(2) as ViewResult; Assert.NotNull(result); // Compruebo que el modelo sea alumno... Assert.IsType(typeof(Alumno), result.Model); } } }
Esta clase:
public static class Solver { public static (double? x1, double? x2) segundoGrado(double a, double b, double c) { if(a == 0 && b == 0) { return (null,null); } double discriminante = b * b - 4 * a * c; if (discriminante<0) { return (null, null); } return (0, 0); } }
Cread un proyecto que tenga esta clase y una clase de test que compruebe que funciona. Con Fact y con Theory
https://github.com/juanpablofuentes/Pasiona/blob/master/Ejemplos01/NumerosComplejos/NumeroComplejo.cs
1.- En el mantenimiento de pokemons que pueda acceder cía el menú, que se vea el nombre de la categoría en el desplegable y que cuando acceda a una categoría vea todos sus pokemons relacionados (solo el nombre) pero que cada uno tenga un enlace pra poder ver el detalle
2.- Crear una API para categorias y pokemons
3.- Si da tiempo: Que en el pokemon salga en la api todos los datos de su categoría y en la categoría una lista de los pokemons SIN la categoría
4.- Hacer un endpoint get categoria/{id}/pokemons que nos devuelva una lista de los pokemons de esa categoría
5.- En el endpoint categoria/{id}/pokemons si hacemos una petición post pasando los datos de un pokemon que nos añada ese pokemon nuevo con esa categoría
Instalar el paquete siguiente:
Install-Package Swashbuckle.AspNetCore -Version 6.6.2
Habilitar esto en program:
builder.Services.AddControllers();
builder.Services.AddEndpointsApiExplorer();
builder.Services.AddSwaggerGen();
if (app.Environment.IsDevelopment())
{
app.UseSwagger();
app.UseSwaggerUI();
}
https://jsonplaceholder.typicode.com/guide/
Vamos a consultar libros y artículos del nytimes. Aquí hay la lista de las apis:
https://developer.nytimes.com/apis
Yo me he creado una apikey: SFq0lnJwGzV4X8XyqV2kQvA3LgKAp3kN
Pero os podéis crear la vuestra.
Me gustaría que, desde el postman, accediéramos a la lista de los libros más vendidos y a los artículos de los tres últimos meses.
También podéis crear vuestra propia apikey y acceder, por ejemplo, a películas.
Vamos a crear una base de datos para almacenar mi colección de pokemons
Tendremos las siguientes tablas:
Categoría: id, nombre, descripcion
Pokemon: id, nombre,descripcion,tipo de energ´ía, categoría
Haremos un MVC que tenga un mantenimiento de la base de datos.
En el HomeController poned enlace al mantenimiento de categorías y al mantenimiento de pokemons.
using Microsoft.AspNetCore.Mvc; using MVC01.Models; namespace MVC01.Controllers { public class CursoController : Controller { private readonly Contexto _context; public CursoController(Contexto context) { _context = context; } public IActionResult Index() { // Recuperar los datos de todos los cursos // Los vais a pasar a la vista // En la vista mostráis la información (id,nombre,descripcion) return View(); } public IActionResult AddCurso() { // Llamar a una vista con un formulario // Para poner nombre y descripción return View(); } public IActionResult NewCurso(Curso curso) { // Capturamos los datos del formulario // Y lo añadimos a la base de datos return View(); } } }