├── .gitattributes ├── .gitignore ├── ASP.NET Core 2.2 ├── Modulo 10 - Despliegues │ └── WebApiModulo10 │ │ ├── WebApiModulo10.sln │ │ └── WebApiModulo10 │ │ ├── Contexts │ │ └── ApplicationDbContext.cs │ │ ├── Controllers │ │ ├── AutoresController.cs │ │ └── ValuesController.cs │ │ ├── Entities │ │ ├── Autor.cs │ │ └── Libro.cs │ │ ├── Migrations │ │ ├── 20190210144614_Initial.Designer.cs │ │ ├── 20190210144614_Initial.cs │ │ └── ApplicationDbContextModelSnapshot.cs │ │ ├── Models │ │ ├── AutorCreacionDTO.cs │ │ ├── AutorDTO.cs │ │ └── LibroDTO.cs │ │ ├── Program.cs │ │ ├── Properties │ │ └── launchSettings.json │ │ ├── Startup.cs │ │ ├── WebApiModulo10.csproj │ │ ├── appsettings.Development.json │ │ └── appsettings.json ├── Modulo 3 - Nuestro Primer Web API │ └── MiPrimerWebApiM3 │ │ ├── MiPrimerWebApiM3.sln │ │ └── MiPrimerWebApiM3 │ │ ├── Contexts │ │ └── ApplicationDbContext.cs │ │ ├── Controllers │ │ ├── AutoresController.cs │ │ ├── LibrosController.cs │ │ └── ValuesController.cs │ │ ├── Entities │ │ ├── Autor.cs │ │ └── Libro.cs │ │ ├── MiPrimerWebApiM3.csproj │ │ ├── Migrations │ │ ├── 20190116005006_Initial.Designer.cs │ │ ├── 20190116005006_Initial.cs │ │ ├── 20190116022346_Libros.Designer.cs │ │ ├── 20190116022346_Libros.cs │ │ └── ApplicationDbContextModelSnapshot.cs │ │ ├── Program.cs │ │ ├── Properties │ │ └── launchSettings.json │ │ ├── Startup.cs │ │ ├── appsettings.Development.json │ │ └── appsettings.json ├── Modulo 4 - Fundamentos de ASP.NET Core │ └── WebApiModulo4 │ │ ├── WebApiModulo4.sln │ │ └── WebApiModulo4 │ │ ├── Contexts │ │ └── ApplicationDbContext.cs │ │ ├── Controllers │ │ ├── AutoresController.cs │ │ └── ValuesController.cs │ │ ├── Entities │ │ └── Autor.cs │ │ ├── Helpers │ │ ├── MiFiltroDeAccion.cs │ │ ├── MiFiltroDeExcepcion.cs │ │ └── PrimeraLetraMayusculaAttribute.cs │ │ ├── Migrations │ │ ├── 20190118023159_Initial.Designer.cs │ │ ├── 20190118023159_Initial.cs │ │ └── ApplicationDbContextModelSnapshot.cs │ │ ├── Program.cs │ │ ├── Properties │ │ └── launchSettings.json │ │ ├── Services │ │ ├── ClaseA.cs │ │ ├── ClaseB.cs │ │ └── IClaseB.cs │ │ ├── Startup.cs │ │ ├── WebApiModulo4.csproj │ │ ├── appsettings.Development.json │ │ └── appsettings.json ├── Modulo 5 - Manipulando Recursos │ └── WebApiModulo5 │ │ ├── WebApiModulo5.sln │ │ └── WebApiModulo5 │ │ ├── Contexts │ │ └── ApplicationDbContext.cs │ │ ├── Controllers │ │ ├── AutoresController.cs │ │ └── ValuesController.cs │ │ ├── Entities │ │ ├── Autor.cs │ │ └── Libro.cs │ │ ├── Migrations │ │ ├── 20190120142836_Initial.Designer.cs │ │ ├── 20190120142836_Initial.cs │ │ ├── 20190121123418_Datos-Libros.Designer.cs │ │ ├── 20190121123418_Datos-Libros.cs │ │ └── ApplicationDbContextModelSnapshot.cs │ │ ├── Models │ │ ├── AutorCreacionDTO.cs │ │ ├── AutorDTO.cs │ │ └── LibroDTO.cs │ │ ├── Program.cs │ │ ├── Properties │ │ └── launchSettings.json │ │ ├── Startup.cs │ │ ├── WebApiModulo5.csproj │ │ ├── appsettings.Development.json │ │ └── appsettings.json ├── Modulo 6 - Configuraciones │ └── WebApiModulo6 │ │ ├── WebApiModulo6.sln │ │ └── WebApiModulo6 │ │ ├── Controllers │ │ └── ValuesController.cs │ │ ├── Program.cs │ │ ├── Properties │ │ └── launchSettings.json │ │ ├── Startup.cs │ │ ├── WebApiModulo6.csproj │ │ ├── appsettings.Development.json │ │ └── appsettings.json ├── Modulo 7 - Seguridad │ └── WebApiModulo7 │ │ ├── WebApiModulo7.sln │ │ └── WebApiModulo7 │ │ ├── Contexts │ │ └── ApplicationDbContext.cs │ │ ├── Controllers │ │ ├── CuentasController.cs │ │ ├── UsuariosController.cs │ │ └── ValuesController.cs │ │ ├── Migrations │ │ ├── 20190127132515_sistema_login.Designer.cs │ │ ├── 20190127132515_sistema_login.cs │ │ └── ApplicationDbContextModelSnapshot.cs │ │ ├── Models │ │ ├── ApplicationUser.cs │ │ ├── HashResult.cs │ │ ├── UserInfo.cs │ │ └── UserToken.cs │ │ ├── Program.cs │ │ ├── Properties │ │ └── launchSettings.json │ │ ├── Services │ │ └── HashService.cs │ │ ├── Startup.cs │ │ ├── WebApiModulo7.csproj │ │ ├── appsettings.Development.json │ │ └── appsettings.json ├── Modulo 8 - Escenarios Avanzados │ └── WebApiModulo8 │ │ ├── WebApiModulo8.sln │ │ └── WebApiModulo8 │ │ ├── Contexts │ │ └── ApplicationDbContext.cs │ │ ├── Controllers │ │ ├── V1 │ │ │ ├── AutoresController.cs │ │ │ ├── RootController.cs │ │ │ └── ValuesController.cs │ │ └── V2 │ │ │ └── AutoresController.cs │ │ ├── Entities │ │ ├── Autor.cs │ │ └── Libro.cs │ │ ├── Helpers │ │ ├── GeneradorEnlaces.cs │ │ ├── HATEOASAuthorFilterAttribute.cs │ │ ├── HATEOASAuthorsFilterAttribute.cs │ │ ├── HATEOASFilterAttribute.cs │ │ └── HttpHeaderIsPresentAttribute.cs │ │ ├── Migrations │ │ ├── 20190203140707_Initial.Designer.cs │ │ ├── 20190203140707_Initial.cs │ │ └── ApplicationDbContextModelSnapshot.cs │ │ ├── Models │ │ ├── AutorCreacionDTO.cs │ │ ├── AutorDTO.cs │ │ ├── ColeccionDeRecursos.cs │ │ ├── Enlace.cs │ │ ├── LibroDTO.cs │ │ └── Recurso.cs │ │ ├── Program.cs │ │ ├── Properties │ │ └── launchSettings.json │ │ ├── Startup.cs │ │ ├── WebApiModulo8.csproj │ │ ├── appsettings.Development.json │ │ └── appsettings.json └── Modulo 9 - Pruebas Automaticas │ ├── Introduccion │ ├── Introduccion.sln │ ├── Introduccion │ │ ├── Entities │ │ │ └── Cuenta.cs │ │ ├── Introduccion.csproj │ │ ├── Program.cs │ │ └── Services │ │ │ ├── IServicioValidacionesDeTransferencias.cs │ │ │ ├── ServicioDeTransferencias.cs │ │ │ ├── ServicioDeTransferenciasSinMocks.cs │ │ │ └── ServicioValidacionesDeTransferencias.cs │ └── ProyectoPruebas │ │ ├── ProyectoPruebas.csproj │ │ ├── TransferenciasTestsConMocks.cs │ │ └── TransferenciasTestsSinMocks.cs │ └── WebApiModulo9 │ ├── WebApiModulo9.sln │ ├── WebApiModulo9 │ ├── Contexts │ │ └── ApplicationDbContext.cs │ ├── Controllers │ │ ├── AutoresController.cs │ │ └── ValuesController.cs │ ├── Entities │ │ ├── Autor.cs │ │ └── Libro.cs │ ├── Migrations │ │ ├── 20190318031249_Initial.Designer.cs │ │ ├── 20190318031249_Initial.cs │ │ └── ApplicationDbContextModelSnapshot.cs │ ├── Program.cs │ ├── Properties │ │ └── launchSettings.json │ ├── Services │ │ ├── IRepositorioAutores.cs │ │ └── RepositorioAutores.cs │ ├── Startup.cs │ ├── WebApiModulo9.csproj │ ├── appsettings.Development.json │ └── appsettings.json │ ├── WebApiPruebasDeIntegracion │ ├── AutoresControllerTests.cs │ ├── Filters │ │ └── FakeUserFilter.cs │ ├── Mocks │ │ └── RepositorioAutoresMock.cs │ ├── Properties │ │ └── launchSettings.json │ ├── ValuesControllerTests.cs │ └── WebApiPruebasDeIntegracion.csproj │ └── WebApiPruebasUnitarias │ ├── AutoresControllerTests.cs │ └── WebApiPruebasUnitarias.csproj ├── ASP.NET Core 3.0 ├── Modulo 10 - Despliegues │ └── WebApiModulo10 │ │ ├── WebApiModulo10.sln │ │ └── WebApiModulo10 │ │ ├── Contexts │ │ └── ApplicationDbContext.cs │ │ ├── Controllers │ │ ├── AutoresController.cs │ │ └── ValuesController.cs │ │ ├── Entities │ │ ├── Autor.cs │ │ └── Libro.cs │ │ ├── Migrations │ │ ├── 20190210144614_Initial.Designer.cs │ │ ├── 20190210144614_Initial.cs │ │ └── ApplicationDbContextModelSnapshot.cs │ │ ├── Models │ │ ├── AutorCreacionDTO.cs │ │ ├── AutorDTO.cs │ │ └── LibroDTO.cs │ │ ├── Program.cs │ │ ├── Properties │ │ └── launchSettings.json │ │ ├── Startup.cs │ │ ├── WebApiModulo10.csproj │ │ ├── appsettings.Development.json │ │ └── appsettings.json ├── Modulo 3 - Nuestro Primer Web API │ └── MiPrimerWebApiM3 │ │ ├── MiPrimerWebApiM3.sln │ │ └── MiPrimerWebApiM3 │ │ ├── Contexts │ │ └── ApplicationDbContext.cs │ │ ├── Controllers │ │ ├── AutoresController.cs │ │ ├── LibrosController.cs │ │ └── ValuesController.cs │ │ ├── Entities │ │ ├── Autor.cs │ │ └── Libro.cs │ │ ├── MiPrimerWebApiM3.csproj │ │ ├── Migrations │ │ ├── 20190116005006_Initial.Designer.cs │ │ ├── 20190116005006_Initial.cs │ │ ├── 20190116022346_Libros.Designer.cs │ │ ├── 20190116022346_Libros.cs │ │ └── ApplicationDbContextModelSnapshot.cs │ │ ├── Program.cs │ │ ├── Properties │ │ └── launchSettings.json │ │ ├── Startup.cs │ │ ├── appsettings.Development.json │ │ └── appsettings.json ├── Modulo 4 - Fundamentos de ASP.NET Core │ ├── WebApiModulo4 │ │ ├── WebApiModulo4.sln │ │ └── WebApiModulo4 │ │ │ ├── Contexts │ │ │ └── ApplicationDbContext.cs │ │ │ ├── Controllers │ │ │ ├── AutoresController.cs │ │ │ └── ValuesController.cs │ │ │ ├── Entities │ │ │ └── Autor.cs │ │ │ ├── Helpers │ │ │ ├── MiFiltroDeAccion.cs │ │ │ ├── MiFiltroDeExcepcion.cs │ │ │ └── PrimeraLetraMayusculaAttribute.cs │ │ │ ├── Migrations │ │ │ ├── 20190118023159_Initial.Designer.cs │ │ │ ├── 20190118023159_Initial.cs │ │ │ └── ApplicationDbContextModelSnapshot.cs │ │ │ ├── Program.cs │ │ │ ├── Properties │ │ │ └── launchSettings.json │ │ │ ├── Services │ │ │ ├── ClaseA.cs │ │ │ ├── ClaseB.cs │ │ │ └── IClaseB.cs │ │ │ ├── Startup.cs │ │ │ ├── WebApiModulo4.csproj │ │ │ ├── appsettings.Development.json │ │ │ └── appsettings.json │ └── hostedService │ │ ├── hostedService.sln │ │ └── hostedService │ │ ├── Contexts │ │ └── ApplicationDbContext.cs │ │ ├── Controllers │ │ └── HomeController.cs │ │ ├── Migrations │ │ ├── 20200502043602_primera.Designer.cs │ │ ├── 20200502043602_primera.cs │ │ └── ApplicationDbContextModelSnapshot.cs │ │ ├── Models │ │ ├── ErrorViewModel.cs │ │ └── HostedServiceLog.cs │ │ ├── Program.cs │ │ ├── Properties │ │ └── launchSettings.json │ │ ├── Services │ │ ├── ConsumeScopedService.cs │ │ ├── WriteToFileHostedService.cs │ │ └── WriteToFileHostedService2.cs │ │ ├── Startup.cs │ │ ├── Views │ │ ├── Home │ │ │ ├── Index.cshtml │ │ │ └── Privacy.cshtml │ │ ├── Shared │ │ │ ├── Error.cshtml │ │ │ ├── _Layout.cshtml │ │ │ └── _ValidationScriptsPartial.cshtml │ │ ├── _ViewImports.cshtml │ │ └── _ViewStart.cshtml │ │ ├── appsettings.Development.json │ │ ├── appsettings.json │ │ ├── hostedService.csproj │ │ └── wwwroot │ │ ├── Archivo 1.txt │ │ ├── Archivo 2.txt │ │ ├── css │ │ └── site.css │ │ ├── favicon.ico │ │ └── js │ │ └── site.js ├── Modulo 5 - Manipulando Recursos │ └── WebApiModulo5 │ │ ├── WebApiModulo5.sln │ │ └── WebApiModulo5 │ │ ├── Contexts │ │ └── ApplicationDbContext.cs │ │ ├── Controllers │ │ ├── AutoresController.cs │ │ └── ValuesController.cs │ │ ├── Entities │ │ ├── Autor.cs │ │ └── Libro.cs │ │ ├── Migrations │ │ ├── 20190120142836_Initial.Designer.cs │ │ ├── 20190120142836_Initial.cs │ │ ├── 20190121123418_Datos-Libros.Designer.cs │ │ ├── 20190121123418_Datos-Libros.cs │ │ └── ApplicationDbContextModelSnapshot.cs │ │ ├── Models │ │ ├── AutorCreacionDTO.cs │ │ ├── AutorDTO.cs │ │ └── LibroDTO.cs │ │ ├── Program.cs │ │ ├── Properties │ │ └── launchSettings.json │ │ ├── Startup.cs │ │ ├── WebApiModulo5.csproj │ │ ├── appsettings.Development.json │ │ └── appsettings.json ├── Modulo 6 - Configuraciones │ └── WebApiModulo6 │ │ ├── WebApiModulo6.sln │ │ └── WebApiModulo6 │ │ ├── Controllers │ │ └── ValuesController.cs │ │ ├── Program.cs │ │ ├── Properties │ │ └── launchSettings.json │ │ ├── Startup.cs │ │ ├── WebApiModulo6.csproj │ │ ├── appsettings.Development.json │ │ └── appsettings.json ├── Modulo 7 - Seguridad │ └── WebApiModulo7 │ │ ├── WebApiModulo7.sln │ │ └── WebApiModulo7 │ │ ├── Contexts │ │ └── ApplicationDbContext.cs │ │ ├── Controllers │ │ ├── CuentasController.cs │ │ ├── UsuariosController.cs │ │ └── ValuesController.cs │ │ ├── Migrations │ │ ├── 20190127132515_sistema_login.Designer.cs │ │ ├── 20190127132515_sistema_login.cs │ │ └── ApplicationDbContextModelSnapshot.cs │ │ ├── Models │ │ ├── ApplicationUser.cs │ │ ├── HashResult.cs │ │ ├── UserInfo.cs │ │ └── UserToken.cs │ │ ├── Program.cs │ │ ├── Properties │ │ └── launchSettings.json │ │ ├── Services │ │ └── HashService.cs │ │ ├── Startup.cs │ │ ├── WebApiModulo7.csproj │ │ ├── appsettings.Development.json │ │ └── appsettings.json ├── Modulo 8 - Escenarios Avanzados │ └── WebApiModulo8 │ │ ├── WebApiModulo8.sln │ │ └── WebApiModulo8 │ │ ├── Contexts │ │ └── ApplicationDbContext.cs │ │ ├── Controllers │ │ ├── V1 │ │ │ ├── AutoresController.cs │ │ │ ├── RootController.cs │ │ │ └── ValuesController.cs │ │ └── V2 │ │ │ └── AutoresController.cs │ │ ├── Entities │ │ ├── Autor.cs │ │ └── Libro.cs │ │ ├── Helpers │ │ ├── GeneradorEnlaces.cs │ │ ├── HATEOASAuthorFilterAttribute.cs │ │ ├── HATEOASAuthorsFilterAttribute.cs │ │ ├── HATEOASFilterAttribute.cs │ │ └── HttpHeaderIsPresentAttribute.cs │ │ ├── Migrations │ │ ├── 20190203140707_Initial.Designer.cs │ │ ├── 20190203140707_Initial.cs │ │ └── ApplicationDbContextModelSnapshot.cs │ │ ├── Models │ │ ├── AutorCreacionDTO.cs │ │ ├── AutorDTO.cs │ │ ├── ColeccionDeRecursos.cs │ │ ├── Enlace.cs │ │ ├── LibroDTO.cs │ │ └── Recurso.cs │ │ ├── Program.cs │ │ ├── Properties │ │ └── launchSettings.json │ │ ├── Startup.cs │ │ ├── WebApiModulo8.csproj │ │ ├── appsettings.Development.json │ │ └── appsettings.json └── Modulo 9 - Pruebas Automaticas │ ├── Introduccion │ ├── Introduccion.sln │ ├── Introduccion │ │ ├── Entities │ │ │ └── Cuenta.cs │ │ ├── Introduccion.csproj │ │ ├── Program.cs │ │ └── Services │ │ │ ├── IServicioValidacionesDeTransferencias.cs │ │ │ ├── ServicioDeTransferencias.cs │ │ │ ├── ServicioDeTransferenciasSinMocks.cs │ │ │ └── ServicioValidacionesDeTransferencias.cs │ └── ProyectoPruebas │ │ ├── ProyectoPruebas.csproj │ │ ├── TransferenciasTestsConMocks.cs │ │ └── TransferenciasTestsSinMocks.cs │ └── WebApiModulo9 │ ├── WebApiModulo9.sln │ ├── WebApiModulo9 │ ├── Contexts │ │ └── ApplicationDbContext.cs │ ├── Controllers │ │ ├── AutoresController.cs │ │ └── ValuesController.cs │ ├── Entities │ │ ├── Autor.cs │ │ └── Libro.cs │ ├── Migrations │ │ ├── 20190318031249_Initial.Designer.cs │ │ ├── 20190318031249_Initial.cs │ │ └── ApplicationDbContextModelSnapshot.cs │ ├── Program.cs │ ├── Properties │ │ └── launchSettings.json │ ├── Services │ │ ├── IRepositorioAutores.cs │ │ └── RepositorioAutores.cs │ ├── Startup.cs │ ├── WebApiModulo9.csproj │ ├── appsettings.Development.json │ └── appsettings.json │ ├── WebApiPruebasDeIntegracion │ ├── AutoresControllerTests.cs │ ├── Mocks │ │ └── RepositorioAutoresMock.cs │ ├── Properties │ │ └── launchSettings.json │ ├── SaltarseRequerimientosHandle.cs │ ├── UsuarioFalsoFilter.cs │ ├── ValuesControllerTests.cs │ └── WebApiPruebasDeIntegracion.csproj │ └── WebApiPruebasUnitarias │ ├── AutoresControllerTests.cs │ └── WebApiPruebasUnitarias.csproj ├── ASP.NET Core 3.1 ├── Modulo 10 - Despliegues │ └── WebApiModulo10 │ │ ├── WebApiModulo10.sln │ │ └── WebApiModulo10 │ │ ├── Contexts │ │ └── ApplicationDbContext.cs │ │ ├── Controllers │ │ ├── AutoresController.cs │ │ └── ValuesController.cs │ │ ├── Entities │ │ ├── Autor.cs │ │ └── Libro.cs │ │ ├── Migrations │ │ ├── 20190210144614_Initial.Designer.cs │ │ ├── 20190210144614_Initial.cs │ │ └── ApplicationDbContextModelSnapshot.cs │ │ ├── Models │ │ ├── AutorCreacionDTO.cs │ │ ├── AutorDTO.cs │ │ └── LibroDTO.cs │ │ ├── Program.cs │ │ ├── Properties │ │ └── launchSettings.json │ │ ├── Startup.cs │ │ ├── WebApiModulo10.csproj │ │ ├── appsettings.Development.json │ │ └── appsettings.json ├── Modulo 11 - Proyecto Final │ └── PeliculasAPI │ │ ├── PeliculasAPI.Tests │ │ ├── AllowAnonymousHandler.cs │ │ ├── BasePruebas.cs │ │ ├── LocalDbDatabaseInitializer.cs │ │ ├── PeliculasAPI.Tests.csproj │ │ ├── Properties │ │ │ └── launchSettings.json │ │ ├── PruebasDeIntegracion │ │ │ ├── GenerosControllerTests.cs │ │ │ └── ReviewsControllerTests.cs │ │ ├── PruebasUnitarias │ │ │ ├── ActoresControllerTests.cs │ │ │ ├── CuentasControllerTests.cs │ │ │ ├── GenerosControllerTests.cs │ │ │ ├── PeliculasControllerTests.cs │ │ │ ├── ReviewsControllerTests.cs │ │ │ └── SalasDeCineControllerTests.cs │ │ └── UsuarioFalsoFiltro.cs │ │ ├── PeliculasAPI.sln │ │ └── PeliculasAPI │ │ ├── ApplicationDbContext.cs │ │ ├── Controllers │ │ ├── ActoresController.cs │ │ ├── CuentasController.cs │ │ ├── CustomBaseController.cs │ │ ├── GenerosController.cs │ │ ├── PeliculasController.cs │ │ ├── ReviewController.cs │ │ └── SalasDeCineController.cs │ │ ├── DTOs │ │ ├── ActorCreacionDTO.cs │ │ ├── ActorDTO.cs │ │ ├── ActorPatchDTO.cs │ │ ├── ActorPeliculaDetalleDTO.cs │ │ ├── ActorPeliculasCreacionDTO.cs │ │ ├── EditarRolDTO.cs │ │ ├── FiltroPeliculasDTO.cs │ │ ├── GeneroCreacionDTO.cs │ │ ├── GeneroDTO.cs │ │ ├── PaginacionDTO.cs │ │ ├── PeliculaCreacionDTO.cs │ │ ├── PeliculaDTO.cs │ │ ├── PeliculaDetallesDTO.cs │ │ ├── PeliculaPatchDTO.cs │ │ ├── PeliculasIndexDTO.cs │ │ ├── ReviewCreacionDTO.cs │ │ ├── ReviewDTO.cs │ │ ├── SalaDeCineCercanoDTO.cs │ │ ├── SalaDeCineCercanoFiltroDTO.cs │ │ ├── SalaDeCineCreacionDTO.cs │ │ ├── SalaDeCineDTO.cs │ │ ├── UserInfo.cs │ │ ├── UserToken.cs │ │ └── UsuarioDTO.cs │ │ ├── Entidades │ │ ├── Actor.cs │ │ ├── Genero.cs │ │ ├── IId.cs │ │ ├── Pelicula.cs │ │ ├── PeliculasActores.cs │ │ ├── PeliculasGeneros.cs │ │ ├── PeliculasSalasDeCine.cs │ │ ├── Review.cs │ │ └── SalaDeCine.cs │ │ ├── Helpers │ │ ├── AutoMapperProfiles.cs │ │ ├── CreateMap.cs │ │ ├── HttpContextExtensions.cs │ │ ├── PeliculaExisteAttribute.cs │ │ ├── QueryableExtensions.cs │ │ └── TypeBinder.cs │ │ ├── Migrations │ │ ├── 20200517133912_Initial.Designer.cs │ │ ├── 20200517133912_Initial.cs │ │ ├── 20200522005423_Actores.Designer.cs │ │ ├── 20200522005423_Actores.cs │ │ ├── 20200603001757_Peliculas.Designer.cs │ │ ├── 20200603001757_Peliculas.cs │ │ ├── 20200607191748_PeliculasActores_PeliculasGeneros.Designer.cs │ │ ├── 20200607191748_PeliculasActores_PeliculasGeneros.cs │ │ ├── 20200607201514_DataPrueba.Designer.cs │ │ ├── 20200607201514_DataPrueba.cs │ │ ├── 20200607201612_DataPrueba2.Designer.cs │ │ ├── 20200607201612_DataPrueba2.cs │ │ ├── 20200623233944_TablasSalasDeCine.Designer.cs │ │ ├── 20200623233944_TablasSalasDeCine.cs │ │ ├── 20200624011129_SalaDeCineUbicacion.Designer.cs │ │ ├── 20200624011129_SalaDeCineUbicacion.cs │ │ ├── 20200624012956_SalaDeCineData.Designer.cs │ │ ├── 20200624012956_SalaDeCineData.cs │ │ ├── 20200624020809_TablasIdentity.Designer.cs │ │ ├── 20200624020809_TablasIdentity.cs │ │ ├── 20200624021120_AdminData.Designer.cs │ │ ├── 20200624021120_AdminData.cs │ │ ├── 20200624023912_TablaReviews.Designer.cs │ │ ├── 20200624023912_TablaReviews.cs │ │ └── ApplicationDbContextModelSnapshot.cs │ │ ├── PeliculasAPI.csproj │ │ ├── Program.cs │ │ ├── Properties │ │ └── launchSettings.json │ │ ├── Servicios │ │ ├── AlmacenadorArchivosAzure.cs │ │ ├── AlmacenadorArchivosLocal.cs │ │ └── IAlmacenadorArchivos.cs │ │ ├── Startup.cs │ │ ├── Validaciones │ │ ├── GrupoTipoArchivo.cs │ │ ├── PesoArchivoValidacion.cs │ │ └── TipoArchivoValidacion.cs │ │ ├── appsettings.Development.json │ │ └── appsettings.json ├── Modulo 3 - Nuestro Primer Web API │ └── MiPrimerWebApiM3 │ │ ├── MiPrimerWebApiM3.sln │ │ └── MiPrimerWebApiM3 │ │ ├── Contexts │ │ └── ApplicationDbContext.cs │ │ ├── Controllers │ │ ├── AutoresController.cs │ │ ├── LibrosController.cs │ │ └── ValuesController.cs │ │ ├── Entities │ │ ├── Autor.cs │ │ └── Libro.cs │ │ ├── MiPrimerWebApiM3.csproj │ │ ├── Migrations │ │ ├── 20190116005006_Initial.Designer.cs │ │ ├── 20190116005006_Initial.cs │ │ ├── 20190116022346_Libros.Designer.cs │ │ ├── 20190116022346_Libros.cs │ │ └── ApplicationDbContextModelSnapshot.cs │ │ ├── Program.cs │ │ ├── Properties │ │ └── launchSettings.json │ │ ├── Startup.cs │ │ ├── appsettings.Development.json │ │ └── appsettings.json ├── Modulo 4 - Fundamentos de ASP.NET Core │ ├── WebApiModulo4 │ │ ├── WebApiModulo4.sln │ │ └── WebApiModulo4 │ │ │ ├── Contexts │ │ │ └── ApplicationDbContext.cs │ │ │ ├── Controllers │ │ │ ├── AutoresController.cs │ │ │ └── ValuesController.cs │ │ │ ├── Entities │ │ │ └── Autor.cs │ │ │ ├── Helpers │ │ │ ├── MiFiltroDeAccion.cs │ │ │ ├── MiFiltroDeExcepcion.cs │ │ │ └── PrimeraLetraMayusculaAttribute.cs │ │ │ ├── Migrations │ │ │ ├── 20190118023159_Initial.Designer.cs │ │ │ ├── 20190118023159_Initial.cs │ │ │ └── ApplicationDbContextModelSnapshot.cs │ │ │ ├── Program.cs │ │ │ ├── Properties │ │ │ └── launchSettings.json │ │ │ ├── Services │ │ │ ├── ClaseA.cs │ │ │ ├── ClaseB.cs │ │ │ └── IClaseB.cs │ │ │ ├── Startup.cs │ │ │ ├── WebApiModulo4.csproj │ │ │ ├── appsettings.Development.json │ │ │ └── appsettings.json │ └── hostedService │ │ ├── hostedService.sln │ │ └── hostedService │ │ ├── Contexts │ │ └── ApplicationDbContext.cs │ │ ├── Controllers │ │ └── HomeController.cs │ │ ├── Migrations │ │ ├── 20200502043602_primera.Designer.cs │ │ ├── 20200502043602_primera.cs │ │ └── ApplicationDbContextModelSnapshot.cs │ │ ├── Models │ │ ├── ErrorViewModel.cs │ │ └── HostedServiceLog.cs │ │ ├── Program.cs │ │ ├── Properties │ │ └── launchSettings.json │ │ ├── Services │ │ ├── ConsumeScopedService.cs │ │ ├── WriteToFileHostedService.cs │ │ └── WriteToFileHostedService2.cs │ │ ├── Startup.cs │ │ ├── Views │ │ ├── Home │ │ │ ├── Index.cshtml │ │ │ └── Privacy.cshtml │ │ ├── Shared │ │ │ ├── Error.cshtml │ │ │ ├── _Layout.cshtml │ │ │ └── _ValidationScriptsPartial.cshtml │ │ ├── _ViewImports.cshtml │ │ └── _ViewStart.cshtml │ │ ├── appsettings.Development.json │ │ ├── appsettings.json │ │ ├── hostedService.csproj │ │ └── wwwroot │ │ ├── Archivo 1.txt │ │ ├── Archivo 2.txt │ │ ├── css │ │ └── site.css │ │ ├── favicon.ico │ │ ├── js │ │ └── site.js │ │ └── librerias │ │ ├── bootstrap │ │ ├── LICENSE │ │ └── dist │ │ │ ├── css │ │ │ ├── bootstrap-grid.css │ │ │ ├── bootstrap-grid.css.map │ │ │ ├── bootstrap-grid.min.css │ │ │ ├── bootstrap-grid.min.css.map │ │ │ ├── bootstrap-reboot.css │ │ │ ├── bootstrap-reboot.css.map │ │ │ ├── bootstrap-reboot.min.css │ │ │ ├── bootstrap-reboot.min.css.map │ │ │ ├── bootstrap.css │ │ │ ├── bootstrap.css.map │ │ │ ├── bootstrap.min.css │ │ │ └── bootstrap.min.css.map │ │ │ └── js │ │ │ ├── bootstrap.bundle.js │ │ │ ├── bootstrap.bundle.js.map │ │ │ ├── bootstrap.bundle.min.js │ │ │ ├── bootstrap.bundle.min.js.map │ │ │ ├── bootstrap.js │ │ │ ├── bootstrap.js.map │ │ │ ├── bootstrap.min.js │ │ │ └── bootstrap.min.js.map │ │ ├── jquery-validation-unobtrusive │ │ ├── LICENSE.txt │ │ ├── jquery.validate.unobtrusive.js │ │ └── jquery.validate.unobtrusive.min.js │ │ ├── jquery-validation │ │ ├── LICENSE.md │ │ └── dist │ │ │ ├── additional-methods.js │ │ │ ├── additional-methods.min.js │ │ │ ├── jquery.validate.js │ │ │ └── jquery.validate.min.js │ │ └── jquery │ │ ├── LICENSE.txt │ │ └── dist │ │ ├── jquery.js │ │ ├── jquery.min.js │ │ └── jquery.min.map ├── Modulo 5 - Manipulando Recursos │ └── WebApiModulo5 │ │ ├── WebApiModulo5.sln │ │ └── WebApiModulo5 │ │ ├── Contexts │ │ └── ApplicationDbContext.cs │ │ ├── Controllers │ │ ├── AutoresController.cs │ │ └── ValuesController.cs │ │ ├── Entities │ │ ├── Autor.cs │ │ └── Libro.cs │ │ ├── Migrations │ │ ├── 20190120142836_Initial.Designer.cs │ │ ├── 20190120142836_Initial.cs │ │ ├── 20190121123418_Datos-Libros.Designer.cs │ │ ├── 20190121123418_Datos-Libros.cs │ │ └── ApplicationDbContextModelSnapshot.cs │ │ ├── Models │ │ ├── AutorCreacionDTO.cs │ │ ├── AutorDTO.cs │ │ └── LibroDTO.cs │ │ ├── Program.cs │ │ ├── Properties │ │ └── launchSettings.json │ │ ├── Startup.cs │ │ ├── WebApiModulo5.csproj │ │ ├── appsettings.Development.json │ │ └── appsettings.json ├── Modulo 6 - Configuraciones │ └── WebApiModulo6 │ │ ├── WebApiModulo6.sln │ │ └── WebApiModulo6 │ │ ├── Controllers │ │ └── ValuesController.cs │ │ ├── Program.cs │ │ ├── Properties │ │ └── launchSettings.json │ │ ├── Startup.cs │ │ ├── WebApiModulo6.csproj │ │ ├── appsettings.Development.json │ │ └── appsettings.json ├── Modulo 7 - Seguridad │ └── WebApiModulo7 │ │ ├── WebApiModulo7.sln │ │ └── WebApiModulo7 │ │ ├── Contexts │ │ └── ApplicationDbContext.cs │ │ ├── Controllers │ │ ├── CuentasController.cs │ │ ├── UsuariosController.cs │ │ └── ValuesController.cs │ │ ├── Migrations │ │ ├── 20190127132515_sistema_login.Designer.cs │ │ ├── 20190127132515_sistema_login.cs │ │ └── ApplicationDbContextModelSnapshot.cs │ │ ├── Models │ │ ├── ApplicationUser.cs │ │ ├── HashResult.cs │ │ ├── UserInfo.cs │ │ └── UserToken.cs │ │ ├── Program.cs │ │ ├── Properties │ │ └── launchSettings.json │ │ ├── Services │ │ └── HashService.cs │ │ ├── Startup.cs │ │ ├── WebApiModulo7.csproj │ │ ├── appsettings.Development.json │ │ └── appsettings.json ├── Modulo 8 - Escenarios Avanzados │ └── WebApiModulo8 │ │ ├── WebApiModulo8.sln │ │ └── WebApiModulo8 │ │ ├── Contexts │ │ └── ApplicationDbContext.cs │ │ ├── Controllers │ │ ├── V1 │ │ │ ├── AutoresController.cs │ │ │ ├── RootController.cs │ │ │ └── ValuesController.cs │ │ └── V2 │ │ │ └── AutoresController.cs │ │ ├── Entities │ │ ├── Autor.cs │ │ └── Libro.cs │ │ ├── Helpers │ │ ├── GeneradorEnlaces.cs │ │ ├── HATEOASAuthorFilterAttribute.cs │ │ ├── HATEOASAuthorsFilterAttribute.cs │ │ ├── HATEOASFilterAttribute.cs │ │ └── HttpHeaderIsPresentAttribute.cs │ │ ├── Migrations │ │ ├── 20190203140707_Initial.Designer.cs │ │ ├── 20190203140707_Initial.cs │ │ └── ApplicationDbContextModelSnapshot.cs │ │ ├── Models │ │ ├── AutorCreacionDTO.cs │ │ ├── AutorDTO.cs │ │ ├── ColeccionDeRecursos.cs │ │ ├── Enlace.cs │ │ ├── LibroDTO.cs │ │ └── Recurso.cs │ │ ├── Program.cs │ │ ├── Properties │ │ └── launchSettings.json │ │ ├── Startup.cs │ │ ├── WebApiModulo8.csproj │ │ ├── appsettings.Development.json │ │ └── appsettings.json └── Modulo 9 - Pruebas Automaticas │ ├── Introduccion │ ├── Introduccion.sln │ ├── Introduccion │ │ ├── Entities │ │ │ └── Cuenta.cs │ │ ├── Introduccion.csproj │ │ ├── Program.cs │ │ └── Services │ │ │ ├── IServicioValidacionesDeTransferencias.cs │ │ │ ├── ServicioDeTransferencias.cs │ │ │ ├── ServicioDeTransferenciasSinMocks.cs │ │ │ └── ServicioValidacionesDeTransferencias.cs │ └── ProyectoPruebas │ │ ├── ProyectoPruebas.csproj │ │ ├── TransferenciasTestsConMocks.cs │ │ └── TransferenciasTestsSinMocks.cs │ └── WebApiModulo9 │ ├── WebApiModulo9.sln │ ├── WebApiModulo9 │ ├── Contexts │ │ └── ApplicationDbContext.cs │ ├── Controllers │ │ ├── AutoresController.cs │ │ └── ValuesController.cs │ ├── Entities │ │ ├── Autor.cs │ │ └── Libro.cs │ ├── Migrations │ │ ├── 20190318031249_Initial.Designer.cs │ │ ├── 20190318031249_Initial.cs │ │ └── ApplicationDbContextModelSnapshot.cs │ ├── Program.cs │ ├── Properties │ │ └── launchSettings.json │ ├── Services │ │ ├── IRepositorioAutores.cs │ │ └── RepositorioAutores.cs │ ├── Startup.cs │ ├── WebApiModulo9.csproj │ ├── appsettings.Development.json │ └── appsettings.json │ ├── WebApiPruebasDeIntegracion │ ├── AutoresControllerTests.cs │ ├── Mocks │ │ └── RepositorioAutoresMock.cs │ ├── Properties │ │ └── launchSettings.json │ ├── SaltarseRequerimientosHandle.cs │ ├── UsuarioFalsoFilter.cs │ ├── ValuesControllerTests.cs │ └── WebApiPruebasDeIntegracion.csproj │ └── WebApiPruebasUnitarias │ ├── AutoresControllerTests.cs │ └── WebApiPruebasUnitarias.csproj ├── ASP.NET Core 6 ├── Modulo 10 - Despliegues │ └── WebAPIAutores │ │ ├── WebAPIAutores.Tests │ │ ├── Mocks │ │ │ ├── AuthorizationServiceMock.cs │ │ │ └── URLHelperMock.cs │ │ ├── PruebasUnitarias │ │ │ ├── PrimeraLetraMayusculaAttributeTests.cs │ │ │ └── RootControllerTests.cs │ │ └── WebAPIAutores.Tests.csproj │ │ ├── WebAPIAutores.sln │ │ ├── WebAPIAutores │ │ ├── ApplicationDbContext.cs │ │ ├── Controllers │ │ │ ├── V1 │ │ │ │ ├── AutoresController.cs │ │ │ │ ├── ComentariosController.cs │ │ │ │ ├── CuentasController.cs │ │ │ │ ├── LibrosController.cs │ │ │ │ └── RootController.cs │ │ │ └── V2 │ │ │ │ └── AutoresController.cs │ │ ├── DTOs │ │ │ ├── AutorCreacionDTO.cs │ │ │ ├── AutorDTO.cs │ │ │ ├── AutorDTOConLibros.cs │ │ │ ├── ColeccionDeRecursos.cs │ │ │ ├── ComentarioCreacionDTO.cs │ │ │ ├── ComentarioDTO.cs │ │ │ ├── CredencialesUsuario.cs │ │ │ ├── DatoHATEOAS.cs │ │ │ ├── EditarAdminDTO.cs │ │ │ ├── LibroCreacionDTO.cs │ │ │ ├── LibroDTO.cs │ │ │ ├── LibroDTOConAutores.cs │ │ │ ├── LibroPatchDTO.cs │ │ │ ├── PaginacionDTO.cs │ │ │ ├── Recurso.cs │ │ │ ├── RespuestaAutenticacion.cs │ │ │ └── ResultadoHash.cs │ │ ├── Entidades │ │ │ ├── Autor.cs │ │ │ ├── AutorLibro.cs │ │ │ ├── Comentario.cs │ │ │ └── Libro.cs │ │ ├── Filtros │ │ │ └── FiltroDeExcepcion.cs │ │ ├── Middlewares │ │ │ └── LoguearRespuestaHTTPMiddleware.cs │ │ ├── Migrations │ │ │ ├── 20210604205557_Inicial.Designer.cs │ │ │ ├── 20210604205557_Inicial.cs │ │ │ ├── 20210604225138_Comentarios.Designer.cs │ │ │ ├── 20210604225138_Comentarios.cs │ │ │ ├── 20210606130933_AutoresLibros.Designer.cs │ │ │ ├── 20210606130933_AutoresLibros.cs │ │ │ ├── 20210606185500_FechaPublicacionLibro.Designer.cs │ │ │ ├── 20210606185500_FechaPublicacionLibro.cs │ │ │ ├── 20210610151744_SistemaUsuarios.Designer.cs │ │ │ ├── 20210610151744_SistemaUsuarios.cs │ │ │ ├── 20210610193244_ComentarioUsuario.Designer.cs │ │ │ ├── 20210610193244_ComentarioUsuario.cs │ │ │ └── ApplicationDbContextModelSnapshot.cs │ │ ├── Program.cs │ │ ├── Properties │ │ │ ├── ServiceDependencies │ │ │ │ └── WebAPIAutores20210616113559 - Web Deploy │ │ │ │ │ ├── mssql1.arm.json │ │ │ │ │ └── profile.arm.json │ │ │ ├── launchSettings.json │ │ │ ├── serviceDependencies.WebAPIAutores20210616113559 - Web Deploy.json │ │ │ └── serviceDependencies.json │ │ ├── Servicios │ │ │ ├── GeneradorEnlaces.cs │ │ │ └── HashService.cs │ │ ├── Startup.cs │ │ ├── Utilidades │ │ │ ├── AgregarParametroHATEOAS.cs │ │ │ ├── AgregarParametroXVersion.cs │ │ │ ├── AutoMapperProfiles.cs │ │ │ ├── CabeceraEstaPresenteAttribute.cs │ │ │ ├── HATEOASAutorFilterAttribute.cs │ │ │ ├── HATEOASFiltroAttribute.cs │ │ │ ├── HttpContextExtensions.cs │ │ │ ├── IQueryableExtensions.cs │ │ │ └── SwaggerAgrupaPorVersion.cs │ │ ├── Validaciones │ │ │ └── PrimeraLetraMayusculaAttribute.cs │ │ ├── WebAPIAutores.csproj │ │ ├── appsettings.Development.json │ │ ├── appsettings.json │ │ └── wwwroot │ │ │ └── Archivo 1.txt │ │ └── azure-pipelines.yml ├── Modulo 11 - Proyecto Final │ └── PeliculasAPI │ │ ├── PeliculasAPI.Tests │ │ ├── AllowAnonymousHandler.cs │ │ ├── BasePruebas.cs │ │ ├── LocalDbDatabaseInitializer.cs │ │ ├── PeliculasAPI.Tests.csproj │ │ ├── Properties │ │ │ └── launchSettings.json │ │ ├── PruebasDeIntegracion │ │ │ ├── GenerosControllerTests.cs │ │ │ └── ReviewsControllerTests.cs │ │ ├── PruebasUnitarias │ │ │ ├── ActoresControllerTests.cs │ │ │ ├── CuentasControllerTests.cs │ │ │ ├── GenerosControllerTests.cs │ │ │ ├── PeliculasControllerTests.cs │ │ │ ├── ReviewsControllerTests.cs │ │ │ └── SalasDeCineControllerTests.cs │ │ └── UsuarioFalsoFiltro.cs │ │ ├── PeliculasAPI.sln │ │ └── PeliculasAPI │ │ ├── ApplicationDbContext.cs │ │ ├── Controllers │ │ ├── ActoresController.cs │ │ ├── CuentasController.cs │ │ ├── CustomBaseController.cs │ │ ├── GenerosController.cs │ │ ├── PeliculasController.cs │ │ ├── ReviewController.cs │ │ └── SalasDeCineController.cs │ │ ├── DTOs │ │ ├── ActorCreacionDTO.cs │ │ ├── ActorDTO.cs │ │ ├── ActorPatchDTO.cs │ │ ├── ActorPeliculaDetalleDTO.cs │ │ ├── ActorPeliculasCreacionDTO.cs │ │ ├── EditarRolDTO.cs │ │ ├── FiltroPeliculasDTO.cs │ │ ├── GeneroCreacionDTO.cs │ │ ├── GeneroDTO.cs │ │ ├── PaginacionDTO.cs │ │ ├── PeliculaCreacionDTO.cs │ │ ├── PeliculaDTO.cs │ │ ├── PeliculaDetallesDTO.cs │ │ ├── PeliculaPatchDTO.cs │ │ ├── PeliculasIndexDTO.cs │ │ ├── ReviewCreacionDTO.cs │ │ ├── ReviewDTO.cs │ │ ├── SalaDeCineCercanoDTO.cs │ │ ├── SalaDeCineCercanoFiltroDTO.cs │ │ ├── SalaDeCineCreacionDTO.cs │ │ ├── SalaDeCineDTO.cs │ │ ├── UserInfo.cs │ │ ├── UserToken.cs │ │ └── UsuarioDTO.cs │ │ ├── Entidades │ │ ├── Actor.cs │ │ ├── Genero.cs │ │ ├── IId.cs │ │ ├── Pelicula.cs │ │ ├── PeliculasActores.cs │ │ ├── PeliculasGeneros.cs │ │ ├── PeliculasSalasDeCine.cs │ │ ├── Review.cs │ │ └── SalaDeCine.cs │ │ ├── Helpers │ │ ├── AutoMapperProfiles.cs │ │ ├── CreateMap.cs │ │ ├── HttpContextExtensions.cs │ │ ├── PeliculaExisteAttribute.cs │ │ ├── QueryableExtensions.cs │ │ └── TypeBinder.cs │ │ ├── Migrations │ │ ├── 20200517133912_Initial.Designer.cs │ │ ├── 20200517133912_Initial.cs │ │ ├── 20200522005423_Actores.Designer.cs │ │ ├── 20200522005423_Actores.cs │ │ ├── 20200603001757_Peliculas.Designer.cs │ │ ├── 20200603001757_Peliculas.cs │ │ ├── 20200607191748_PeliculasActores_PeliculasGeneros.Designer.cs │ │ ├── 20200607191748_PeliculasActores_PeliculasGeneros.cs │ │ ├── 20200607201514_DataPrueba.Designer.cs │ │ ├── 20200607201514_DataPrueba.cs │ │ ├── 20200607201612_DataPrueba2.Designer.cs │ │ ├── 20200607201612_DataPrueba2.cs │ │ ├── 20200623233944_TablasSalasDeCine.Designer.cs │ │ ├── 20200623233944_TablasSalasDeCine.cs │ │ ├── 20200624011129_SalaDeCineUbicacion.Designer.cs │ │ ├── 20200624011129_SalaDeCineUbicacion.cs │ │ ├── 20200624012956_SalaDeCineData.Designer.cs │ │ ├── 20200624012956_SalaDeCineData.cs │ │ ├── 20200624020809_TablasIdentity.Designer.cs │ │ ├── 20200624020809_TablasIdentity.cs │ │ ├── 20200624021120_AdminData.Designer.cs │ │ ├── 20200624021120_AdminData.cs │ │ ├── 20200624023912_TablaReviews.Designer.cs │ │ ├── 20200624023912_TablaReviews.cs │ │ └── ApplicationDbContextModelSnapshot.cs │ │ ├── PeliculasAPI.csproj │ │ ├── Program.cs │ │ ├── Properties │ │ └── launchSettings.json │ │ ├── Servicios │ │ ├── AlmacenadorArchivosAzure.cs │ │ ├── AlmacenadorArchivosLocal.cs │ │ └── IAlmacenadorArchivos.cs │ │ ├── Startup.cs │ │ ├── Validaciones │ │ ├── GrupoTipoArchivo.cs │ │ ├── PesoArchivoValidacion.cs │ │ └── TipoArchivoValidacion.cs │ │ ├── appsettings.Development.json │ │ └── appsettings.json ├── Modulo 12 - API de Suscripciones │ ├── Fin │ │ └── WebAPIAutores │ │ │ ├── CreacionFacturas.sql │ │ │ ├── SetearMalaPaga.sql │ │ │ ├── WebAPIAutores.sln │ │ │ └── WebAPIAutores │ │ │ ├── ApplicationDbContext.cs │ │ │ ├── Controllers │ │ │ ├── AutoresController.cs │ │ │ ├── ComentariosController.cs │ │ │ ├── CuentasController.cs │ │ │ ├── CustomBaseController.cs │ │ │ ├── FacturasController.cs │ │ │ ├── LibrosController.cs │ │ │ ├── LlavesAPIController.cs │ │ │ ├── RestriccionesDominioController.cs │ │ │ └── RestriccionesIPController.cs │ │ │ ├── DTOs │ │ │ ├── ActualizarLlaveDTO.cs │ │ │ ├── ActualizarRestriccionDominioDTO.cs │ │ │ ├── ActualizarRestriccionIPDTO.cs │ │ │ ├── AutorCreacionDTO.cs │ │ │ ├── AutorDTO.cs │ │ │ ├── AutorDTOConLibros.cs │ │ │ ├── ComentarioCreacionDTO.cs │ │ │ ├── ComentarioDTO.cs │ │ │ ├── CrearLlaveDTO.cs │ │ │ ├── CrearRestriccionIPDTO.cs │ │ │ ├── CrearRestriccionesDominioDTO.cs │ │ │ ├── CredencialesUsuario.cs │ │ │ ├── EditarAdminDTO.cs │ │ │ ├── LibroCreacionDTO.cs │ │ │ ├── LibroDTO.cs │ │ │ ├── LibroDTOConAutores.cs │ │ │ ├── LibroPatchDTO.cs │ │ │ ├── LimitarPeticionesConfiguracion.cs │ │ │ ├── LlaveDTO.cs │ │ │ ├── PagarFacturaDTO.cs │ │ │ ├── RespuestaAutenticacion.cs │ │ │ ├── RestriccionDominioDTO.cs │ │ │ ├── RestriccionIPDTO.cs │ │ │ └── ResultadoHash.cs │ │ │ ├── Entidades │ │ │ ├── Autor.cs │ │ │ ├── AutorLibro.cs │ │ │ ├── Comentario.cs │ │ │ ├── Factura.cs │ │ │ ├── FacturaEmitida.cs │ │ │ ├── Libro.cs │ │ │ ├── LlaveAPI.cs │ │ │ ├── Peticion.cs │ │ │ ├── RestriccionDominio.cs │ │ │ ├── RestriccionIP.cs │ │ │ └── Usuario.cs │ │ │ ├── Filtros │ │ │ └── FiltroDeExcepcion.cs │ │ │ ├── Middlewares │ │ │ ├── LimitarPeticionesMiddlewareExtensions.cs │ │ │ └── LoguearRespuestaHTTPMiddleware.cs │ │ │ ├── Migrations │ │ │ ├── 20210604205557_Inicial.Designer.cs │ │ │ ├── 20210604205557_Inicial.cs │ │ │ ├── 20210604225138_Comentarios.Designer.cs │ │ │ ├── 20210604225138_Comentarios.cs │ │ │ ├── 20210606130933_AutoresLibros.Designer.cs │ │ │ ├── 20210606130933_AutoresLibros.cs │ │ │ ├── 20210606185500_FechaPublicacionLibro.Designer.cs │ │ │ ├── 20210606185500_FechaPublicacionLibro.cs │ │ │ ├── 20210610151744_SistemaUsuarios.Designer.cs │ │ │ ├── 20210610151744_SistemaUsuarios.cs │ │ │ ├── 20210610193244_ComentarioUsuario.Designer.cs │ │ │ ├── 20210610193244_ComentarioUsuario.cs │ │ │ ├── 20210831142633_Llaves.Designer.cs │ │ │ ├── 20210831142633_Llaves.cs │ │ │ ├── 20210906140215_Peticiones.Designer.cs │ │ │ ├── 20210906140215_Peticiones.cs │ │ │ ├── 20210906150805_Restricciones.Designer.cs │ │ │ ├── 20210906150805_Restricciones.cs │ │ │ ├── 20210907135931_UsuarioMalaPaga.Designer.cs │ │ │ ├── 20210907135931_UsuarioMalaPaga.cs │ │ │ ├── 20210907141216_Facturas.Designer.cs │ │ │ ├── 20210907141216_Facturas.cs │ │ │ └── ApplicationDbContextModelSnapshot.cs │ │ │ ├── Program.cs │ │ │ ├── Properties │ │ │ └── launchSettings.json │ │ │ ├── Servicios │ │ │ ├── FacturasHostedService.cs │ │ │ ├── HashService.cs │ │ │ └── ServicioLlaves.cs │ │ │ ├── Startup.cs │ │ │ ├── Utilidades │ │ │ └── AutoMapperProfiles.cs │ │ │ ├── Validaciones │ │ │ └── PrimeraLetraMayusculaAttribute.cs │ │ │ ├── WebAPIAutores.csproj │ │ │ ├── appsettings.Development.json │ │ │ ├── appsettings.json │ │ │ ├── prueba.html │ │ │ └── wwwroot │ │ │ └── Archivo 1.txt │ └── Inicio │ │ └── WebAPIAutores │ │ ├── WebAPIAutores.sln │ │ └── WebAPIAutores │ │ ├── ApplicationDbContext.cs │ │ ├── Controllers │ │ ├── AutoresController.cs │ │ ├── ComentariosController.cs │ │ ├── CuentasController.cs │ │ └── LibrosController.cs │ │ ├── DTOs │ │ ├── AutorCreacionDTO.cs │ │ ├── AutorDTO.cs │ │ ├── AutorDTOConLibros.cs │ │ ├── ComentarioCreacionDTO.cs │ │ ├── ComentarioDTO.cs │ │ ├── CredencialesUsuario.cs │ │ ├── EditarAdminDTO.cs │ │ ├── LibroCreacionDTO.cs │ │ ├── LibroDTO.cs │ │ ├── LibroDTOConAutores.cs │ │ ├── LibroPatchDTO.cs │ │ ├── RespuestaAutenticacion.cs │ │ └── ResultadoHash.cs │ │ ├── Entidades │ │ ├── Autor.cs │ │ ├── AutorLibro.cs │ │ ├── Comentario.cs │ │ └── Libro.cs │ │ ├── Filtros │ │ └── FiltroDeExcepcion.cs │ │ ├── Middlewares │ │ └── LoguearRespuestaHTTPMiddleware.cs │ │ ├── Migrations │ │ ├── 20210604205557_Inicial.Designer.cs │ │ ├── 20210604205557_Inicial.cs │ │ ├── 20210604225138_Comentarios.Designer.cs │ │ ├── 20210604225138_Comentarios.cs │ │ ├── 20210606130933_AutoresLibros.Designer.cs │ │ ├── 20210606130933_AutoresLibros.cs │ │ ├── 20210606185500_FechaPublicacionLibro.Designer.cs │ │ ├── 20210606185500_FechaPublicacionLibro.cs │ │ ├── 20210610151744_SistemaUsuarios.Designer.cs │ │ ├── 20210610151744_SistemaUsuarios.cs │ │ ├── 20210610193244_ComentarioUsuario.Designer.cs │ │ ├── 20210610193244_ComentarioUsuario.cs │ │ └── ApplicationDbContextModelSnapshot.cs │ │ ├── Program.cs │ │ ├── Properties │ │ └── launchSettings.json │ │ ├── Servicios │ │ └── HashService.cs │ │ ├── Startup.cs │ │ ├── Utilidades │ │ └── AutoMapperProfiles.cs │ │ ├── Validaciones │ │ └── PrimeraLetraMayusculaAttribute.cs │ │ ├── WebAPIAutores.csproj │ │ ├── appsettings.Development.json │ │ ├── appsettings.json │ │ └── wwwroot │ │ └── Archivo 1.txt ├── Modulo 2 - Configurando el Ambiente │ └── WebAPIAutores │ │ ├── WebAPIAutores.sln │ │ └── WebAPIAutores │ │ ├── Controllers │ │ └── WeatherForecastController.cs │ │ ├── Program.cs │ │ ├── Properties │ │ └── launchSettings.json │ │ ├── Startup.cs │ │ ├── WeatherForecast.cs │ │ ├── WebAPIAutores.csproj │ │ ├── appsettings.Development.json │ │ └── appsettings.json ├── Modulo 3 - Creando Nuestro Primer Web API │ ├── Fin │ │ └── WebAPIAutores │ │ │ ├── WebAPIAutores.sln │ │ │ └── WebAPIAutores │ │ │ ├── ApplicationDbContext.cs │ │ │ ├── Controllers │ │ │ ├── AutoresController.cs │ │ │ └── LibrosController.cs │ │ │ ├── Entidades │ │ │ ├── Autor.cs │ │ │ └── Libro.cs │ │ │ ├── Migrations │ │ │ ├── 20210518003816_Inicial.Designer.cs │ │ │ ├── 20210518003816_Inicial.cs │ │ │ ├── 20210519130531_Libros.Designer.cs │ │ │ ├── 20210519130531_Libros.cs │ │ │ └── ApplicationDbContextModelSnapshot.cs │ │ │ ├── Program.cs │ │ │ ├── Properties │ │ │ └── launchSettings.json │ │ │ ├── Startup.cs │ │ │ ├── WebAPIAutores.csproj │ │ │ ├── appsettings.Development.json │ │ │ └── appsettings.json │ └── Inicio │ │ └── WebAPIAutores │ │ ├── WebAPIAutores.sln │ │ └── WebAPIAutores │ │ ├── Controllers │ │ └── WeatherForecastController.cs │ │ ├── Program.cs │ │ ├── Properties │ │ └── launchSettings.json │ │ ├── Startup.cs │ │ ├── WeatherForecast.cs │ │ ├── WebAPIAutores.csproj │ │ ├── appsettings.Development.json │ │ └── appsettings.json ├── Modulo 4 - Fundamentos de ASP.NET Core │ ├── Fin │ │ └── WebAPIAutores │ │ │ ├── WebAPIAutores.sln │ │ │ └── WebAPIAutores │ │ │ ├── ApplicationDbContext.cs │ │ │ ├── Controllers │ │ │ ├── AutoresController.cs │ │ │ └── LibrosController.cs │ │ │ ├── Entidades │ │ │ ├── Autor.cs │ │ │ └── Libro.cs │ │ │ ├── Filtros │ │ │ ├── FiltroDeExcepcion.cs │ │ │ └── MiFiltroDeAccion.cs │ │ │ ├── Middlewares │ │ │ └── LoguearRespuestaHTTPMiddleware.cs │ │ │ ├── Migrations │ │ │ ├── 20210518003816_Inicial.Designer.cs │ │ │ ├── 20210518003816_Inicial.cs │ │ │ ├── 20210519130531_Libros.Designer.cs │ │ │ ├── 20210519130531_Libros.cs │ │ │ └── ApplicationDbContextModelSnapshot.cs │ │ │ ├── Program.cs │ │ │ ├── Properties │ │ │ └── launchSettings.json │ │ │ ├── Servicios │ │ │ ├── EscribirEnArchivo.cs │ │ │ └── IServicio.cs │ │ │ ├── Startup.cs │ │ │ ├── Validaciones │ │ │ └── PrimeraLetraMayusculaAttribute.cs │ │ │ ├── WebAPIAutores.csproj │ │ │ ├── appsettings.Development.json │ │ │ ├── appsettings.json │ │ │ └── wwwroot │ │ │ └── Archivo 1.txt │ └── Inicio │ │ └── WebAPIAutores │ │ ├── WebAPIAutores.sln │ │ └── WebAPIAutores │ │ ├── ApplicationDbContext.cs │ │ ├── Controllers │ │ ├── AutoresController.cs │ │ └── LibrosController.cs │ │ ├── Entidades │ │ ├── Autor.cs │ │ └── Libro.cs │ │ ├── Migrations │ │ ├── 20210518003816_Inicial.Designer.cs │ │ ├── 20210518003816_Inicial.cs │ │ ├── 20210519130531_Libros.Designer.cs │ │ ├── 20210519130531_Libros.cs │ │ └── ApplicationDbContextModelSnapshot.cs │ │ ├── Program.cs │ │ ├── Properties │ │ └── launchSettings.json │ │ ├── Startup.cs │ │ ├── WebAPIAutores.csproj │ │ ├── appsettings.Development.json │ │ └── appsettings.json ├── Modulo 5 - Manipulando Recursos │ ├── Fin │ │ └── WebAPIAutores │ │ │ ├── WebAPIAutores.sln │ │ │ └── WebAPIAutores │ │ │ ├── ApplicationDbContext.cs │ │ │ ├── Controllers │ │ │ ├── AutoresController.cs │ │ │ ├── ComentariosController.cs │ │ │ └── LibrosController.cs │ │ │ ├── DTOs │ │ │ ├── AutorCreacionDTO.cs │ │ │ ├── AutorDTO.cs │ │ │ ├── AutorDTOConLibros.cs │ │ │ ├── ComentarioCreacionDTO.cs │ │ │ ├── ComentarioDTO.cs │ │ │ ├── LibroCreacionDTO.cs │ │ │ ├── LibroDTO.cs │ │ │ ├── LibroDTOConAutores.cs │ │ │ └── LibroPatchDTO.cs │ │ │ ├── Entidades │ │ │ ├── Autor.cs │ │ │ ├── AutorLibro.cs │ │ │ ├── Comentario.cs │ │ │ └── Libro.cs │ │ │ ├── Filtros │ │ │ └── FiltroDeExcepcion.cs │ │ │ ├── Middlewares │ │ │ └── LoguearRespuestaHTTPMiddleware.cs │ │ │ ├── Migrations │ │ │ ├── 20210604205557_Inicial.Designer.cs │ │ │ ├── 20210604205557_Inicial.cs │ │ │ ├── 20210604225138_Comentarios.Designer.cs │ │ │ ├── 20210604225138_Comentarios.cs │ │ │ ├── 20210606130933_AutoresLibros.Designer.cs │ │ │ ├── 20210606130933_AutoresLibros.cs │ │ │ ├── 20210606185500_FechaPublicacionLibro.Designer.cs │ │ │ ├── 20210606185500_FechaPublicacionLibro.cs │ │ │ └── ApplicationDbContextModelSnapshot.cs │ │ │ ├── Program.cs │ │ │ ├── Properties │ │ │ └── launchSettings.json │ │ │ ├── Startup.cs │ │ │ ├── Utilidades │ │ │ └── AutoMapperProfiles.cs │ │ │ ├── Validaciones │ │ │ └── PrimeraLetraMayusculaAttribute.cs │ │ │ ├── WebAPIAutores.csproj │ │ │ ├── appsettings.Development.json │ │ │ ├── appsettings.json │ │ │ └── wwwroot │ │ │ └── Archivo 1.txt │ └── Inicio │ │ └── WebAPIAutores │ │ ├── WebAPIAutores.sln │ │ └── WebAPIAutores │ │ ├── ApplicationDbContext.cs │ │ ├── Controllers │ │ ├── AutoresController.cs │ │ └── LibrosController.cs │ │ ├── Entidades │ │ ├── Autor.cs │ │ └── Libro.cs │ │ ├── Filtros │ │ ├── FiltroDeExcepcion.cs │ │ └── MiFiltroDeAccion.cs │ │ ├── Middlewares │ │ └── LoguearRespuestaHTTPMiddleware.cs │ │ ├── Migrations │ │ ├── 20210518003816_Inicial.Designer.cs │ │ ├── 20210518003816_Inicial.cs │ │ ├── 20210519130531_Libros.Designer.cs │ │ ├── 20210519130531_Libros.cs │ │ └── ApplicationDbContextModelSnapshot.cs │ │ ├── Program.cs │ │ ├── Properties │ │ └── launchSettings.json │ │ ├── Servicios │ │ ├── EscribirEnArchivo.cs │ │ └── IServicio.cs │ │ ├── Startup.cs │ │ ├── Validaciones │ │ └── PrimeraLetraMayusculaAttribute.cs │ │ ├── WebAPIAutores.csproj │ │ ├── appsettings.Development.json │ │ ├── appsettings.json │ │ └── wwwroot │ │ └── Archivo 1.txt ├── Modulo 6 - Configuraciones │ ├── Fin │ │ └── WebAPIAutores │ │ │ ├── WebAPIAutores.sln │ │ │ └── WebAPIAutores │ │ │ ├── ApplicationDbContext.cs │ │ │ ├── Controllers │ │ │ ├── AutoresController.cs │ │ │ ├── ComentariosController.cs │ │ │ └── LibrosController.cs │ │ │ ├── DTOs │ │ │ ├── AutorCreacionDTO.cs │ │ │ ├── AutorDTO.cs │ │ │ ├── AutorDTOConLibros.cs │ │ │ ├── ComentarioCreacionDTO.cs │ │ │ ├── ComentarioDTO.cs │ │ │ ├── LibroCreacionDTO.cs │ │ │ ├── LibroDTO.cs │ │ │ ├── LibroDTOConAutores.cs │ │ │ └── LibroPatchDTO.cs │ │ │ ├── Entidades │ │ │ ├── Autor.cs │ │ │ ├── AutorLibro.cs │ │ │ ├── Comentario.cs │ │ │ └── Libro.cs │ │ │ ├── Filtros │ │ │ └── FiltroDeExcepcion.cs │ │ │ ├── Middlewares │ │ │ └── LoguearRespuestaHTTPMiddleware.cs │ │ │ ├── Migrations │ │ │ ├── 20210604205557_Inicial.Designer.cs │ │ │ ├── 20210604205557_Inicial.cs │ │ │ ├── 20210604225138_Comentarios.Designer.cs │ │ │ ├── 20210604225138_Comentarios.cs │ │ │ ├── 20210606130933_AutoresLibros.Designer.cs │ │ │ ├── 20210606130933_AutoresLibros.cs │ │ │ ├── 20210606185500_FechaPublicacionLibro.Designer.cs │ │ │ ├── 20210606185500_FechaPublicacionLibro.cs │ │ │ └── ApplicationDbContextModelSnapshot.cs │ │ │ ├── Program.cs │ │ │ ├── Properties │ │ │ └── launchSettings.json │ │ │ ├── Startup.cs │ │ │ ├── Utilidades │ │ │ └── AutoMapperProfiles.cs │ │ │ ├── Validaciones │ │ │ └── PrimeraLetraMayusculaAttribute.cs │ │ │ ├── WebAPIAutores.csproj │ │ │ ├── appsettings.Development.json │ │ │ ├── appsettings.json │ │ │ └── wwwroot │ │ │ └── Archivo 1.txt │ └── Inicio │ │ └── WebAPIAutores │ │ ├── WebAPIAutores.sln │ │ └── WebAPIAutores │ │ ├── ApplicationDbContext.cs │ │ ├── Controllers │ │ ├── AutoresController.cs │ │ ├── ComentariosController.cs │ │ └── LibrosController.cs │ │ ├── DTOs │ │ ├── AutorCreacionDTO.cs │ │ ├── AutorDTO.cs │ │ ├── AutorDTOConLibros.cs │ │ ├── ComentarioCreacionDTO.cs │ │ ├── ComentarioDTO.cs │ │ ├── LibroCreacionDTO.cs │ │ ├── LibroDTO.cs │ │ ├── LibroDTOConAutores.cs │ │ └── LibroPatchDTO.cs │ │ ├── Entidades │ │ ├── Autor.cs │ │ ├── AutorLibro.cs │ │ ├── Comentario.cs │ │ └── Libro.cs │ │ ├── Filtros │ │ └── FiltroDeExcepcion.cs │ │ ├── Middlewares │ │ └── LoguearRespuestaHTTPMiddleware.cs │ │ ├── Migrations │ │ ├── 20210604205557_Inicial.Designer.cs │ │ ├── 20210604205557_Inicial.cs │ │ ├── 20210604225138_Comentarios.Designer.cs │ │ ├── 20210604225138_Comentarios.cs │ │ ├── 20210606130933_AutoresLibros.Designer.cs │ │ ├── 20210606130933_AutoresLibros.cs │ │ ├── 20210606185500_FechaPublicacionLibro.Designer.cs │ │ ├── 20210606185500_FechaPublicacionLibro.cs │ │ └── ApplicationDbContextModelSnapshot.cs │ │ ├── Program.cs │ │ ├── Properties │ │ └── launchSettings.json │ │ ├── Startup.cs │ │ ├── Utilidades │ │ └── AutoMapperProfiles.cs │ │ ├── Validaciones │ │ └── PrimeraLetraMayusculaAttribute.cs │ │ ├── WebAPIAutores.csproj │ │ ├── appsettings.Development.json │ │ ├── appsettings.json │ │ └── wwwroot │ │ └── Archivo 1.txt ├── Modulo 7 - Seguridad │ ├── Fin │ │ └── WebAPIAutores │ │ │ ├── WebAPIAutores.sln │ │ │ └── WebAPIAutores │ │ │ ├── ApplicationDbContext.cs │ │ │ ├── Controllers │ │ │ ├── AutoresController.cs │ │ │ ├── ComentariosController.cs │ │ │ ├── CuentasController.cs │ │ │ └── LibrosController.cs │ │ │ ├── DTOs │ │ │ ├── AutorCreacionDTO.cs │ │ │ ├── AutorDTO.cs │ │ │ ├── AutorDTOConLibros.cs │ │ │ ├── ComentarioCreacionDTO.cs │ │ │ ├── ComentarioDTO.cs │ │ │ ├── CredencialesUsuario.cs │ │ │ ├── EditarAdminDTO.cs │ │ │ ├── LibroCreacionDTO.cs │ │ │ ├── LibroDTO.cs │ │ │ ├── LibroDTOConAutores.cs │ │ │ ├── LibroPatchDTO.cs │ │ │ ├── RespuestaAutenticacion.cs │ │ │ └── ResultadoHash.cs │ │ │ ├── Entidades │ │ │ ├── Autor.cs │ │ │ ├── AutorLibro.cs │ │ │ ├── Comentario.cs │ │ │ └── Libro.cs │ │ │ ├── Filtros │ │ │ └── FiltroDeExcepcion.cs │ │ │ ├── Middlewares │ │ │ └── LoguearRespuestaHTTPMiddleware.cs │ │ │ ├── Migrations │ │ │ ├── 20210604205557_Inicial.Designer.cs │ │ │ ├── 20210604205557_Inicial.cs │ │ │ ├── 20210604225138_Comentarios.Designer.cs │ │ │ ├── 20210604225138_Comentarios.cs │ │ │ ├── 20210606130933_AutoresLibros.Designer.cs │ │ │ ├── 20210606130933_AutoresLibros.cs │ │ │ ├── 20210606185500_FechaPublicacionLibro.Designer.cs │ │ │ ├── 20210606185500_FechaPublicacionLibro.cs │ │ │ ├── 20210610151744_SistemaUsuarios.Designer.cs │ │ │ ├── 20210610151744_SistemaUsuarios.cs │ │ │ ├── 20210610193244_ComentarioUsuario.Designer.cs │ │ │ ├── 20210610193244_ComentarioUsuario.cs │ │ │ └── ApplicationDbContextModelSnapshot.cs │ │ │ ├── Program.cs │ │ │ ├── Properties │ │ │ └── launchSettings.json │ │ │ ├── Servicios │ │ │ └── HashService.cs │ │ │ ├── Startup.cs │ │ │ ├── Utilidades │ │ │ └── AutoMapperProfiles.cs │ │ │ ├── Validaciones │ │ │ └── PrimeraLetraMayusculaAttribute.cs │ │ │ ├── WebAPIAutores.csproj │ │ │ ├── appsettings.Development.json │ │ │ ├── appsettings.json │ │ │ └── wwwroot │ │ │ └── Archivo 1.txt │ └── Inicio │ │ └── WebAPIAutores │ │ ├── WebAPIAutores.sln │ │ └── WebAPIAutores │ │ ├── ApplicationDbContext.cs │ │ ├── Controllers │ │ ├── AutoresController.cs │ │ ├── ComentariosController.cs │ │ └── LibrosController.cs │ │ ├── DTOs │ │ ├── AutorCreacionDTO.cs │ │ ├── AutorDTO.cs │ │ ├── AutorDTOConLibros.cs │ │ ├── ComentarioCreacionDTO.cs │ │ ├── ComentarioDTO.cs │ │ ├── LibroCreacionDTO.cs │ │ ├── LibroDTO.cs │ │ ├── LibroDTOConAutores.cs │ │ └── LibroPatchDTO.cs │ │ ├── Entidades │ │ ├── Autor.cs │ │ ├── AutorLibro.cs │ │ ├── Comentario.cs │ │ └── Libro.cs │ │ ├── Filtros │ │ └── FiltroDeExcepcion.cs │ │ ├── Middlewares │ │ └── LoguearRespuestaHTTPMiddleware.cs │ │ ├── Migrations │ │ ├── 20210604205557_Inicial.Designer.cs │ │ ├── 20210604205557_Inicial.cs │ │ ├── 20210604225138_Comentarios.Designer.cs │ │ ├── 20210604225138_Comentarios.cs │ │ ├── 20210606130933_AutoresLibros.Designer.cs │ │ ├── 20210606130933_AutoresLibros.cs │ │ ├── 20210606185500_FechaPublicacionLibro.Designer.cs │ │ ├── 20210606185500_FechaPublicacionLibro.cs │ │ └── ApplicationDbContextModelSnapshot.cs │ │ ├── Program.cs │ │ ├── Properties │ │ └── launchSettings.json │ │ ├── Startup.cs │ │ ├── Utilidades │ │ └── AutoMapperProfiles.cs │ │ ├── Validaciones │ │ └── PrimeraLetraMayusculaAttribute.cs │ │ ├── WebAPIAutores.csproj │ │ ├── appsettings.Development.json │ │ ├── appsettings.json │ │ └── wwwroot │ │ └── Archivo 1.txt ├── Modulo 8 - Escenarios Avanzados │ ├── Fin │ │ └── WebAPIAutores │ │ │ ├── WebAPIAutores.sln │ │ │ └── WebAPIAutores │ │ │ ├── ApplicationDbContext.cs │ │ │ ├── Controllers │ │ │ ├── V1 │ │ │ │ ├── AutoresController.cs │ │ │ │ ├── ComentariosController.cs │ │ │ │ ├── CuentasController.cs │ │ │ │ ├── LibrosController.cs │ │ │ │ └── RootController.cs │ │ │ └── V2 │ │ │ │ └── AutoresController.cs │ │ │ ├── DTOs │ │ │ ├── AutorCreacionDTO.cs │ │ │ ├── AutorDTO.cs │ │ │ ├── AutorDTOConLibros.cs │ │ │ ├── ColeccionDeRecursos.cs │ │ │ ├── ComentarioCreacionDTO.cs │ │ │ ├── ComentarioDTO.cs │ │ │ ├── CredencialesUsuario.cs │ │ │ ├── DatoHATEOAS.cs │ │ │ ├── EditarAdminDTO.cs │ │ │ ├── LibroCreacionDTO.cs │ │ │ ├── LibroDTO.cs │ │ │ ├── LibroDTOConAutores.cs │ │ │ ├── LibroPatchDTO.cs │ │ │ ├── PaginacionDTO.cs │ │ │ ├── Recurso.cs │ │ │ ├── RespuestaAutenticacion.cs │ │ │ └── ResultadoHash.cs │ │ │ ├── Entidades │ │ │ ├── Autor.cs │ │ │ ├── AutorLibro.cs │ │ │ ├── Comentario.cs │ │ │ └── Libro.cs │ │ │ ├── Filtros │ │ │ └── FiltroDeExcepcion.cs │ │ │ ├── Middlewares │ │ │ └── LoguearRespuestaHTTPMiddleware.cs │ │ │ ├── Migrations │ │ │ ├── 20210604205557_Inicial.Designer.cs │ │ │ ├── 20210604205557_Inicial.cs │ │ │ ├── 20210604225138_Comentarios.Designer.cs │ │ │ ├── 20210604225138_Comentarios.cs │ │ │ ├── 20210606130933_AutoresLibros.Designer.cs │ │ │ ├── 20210606130933_AutoresLibros.cs │ │ │ ├── 20210606185500_FechaPublicacionLibro.Designer.cs │ │ │ ├── 20210606185500_FechaPublicacionLibro.cs │ │ │ ├── 20210610151744_SistemaUsuarios.Designer.cs │ │ │ ├── 20210610151744_SistemaUsuarios.cs │ │ │ ├── 20210610193244_ComentarioUsuario.Designer.cs │ │ │ ├── 20210610193244_ComentarioUsuario.cs │ │ │ └── ApplicationDbContextModelSnapshot.cs │ │ │ ├── Program.cs │ │ │ ├── Properties │ │ │ └── launchSettings.json │ │ │ ├── Servicios │ │ │ ├── GeneradorEnlaces.cs │ │ │ └── HashService.cs │ │ │ ├── Startup.cs │ │ │ ├── Utilidades │ │ │ ├── AgregarParametroHATEOAS.cs │ │ │ ├── AgregarParametroXVersion.cs │ │ │ ├── AutoMapperProfiles.cs │ │ │ ├── CabeceraEstaPresenteAttribute.cs │ │ │ ├── HATEOASAutorFilterAttribute.cs │ │ │ ├── HATEOASFiltroAttribute.cs │ │ │ ├── HttpContextExtensions.cs │ │ │ ├── IQueryableExtensions.cs │ │ │ └── SwaggerAgrupaPorVersion.cs │ │ │ ├── Validaciones │ │ │ └── PrimeraLetraMayusculaAttribute.cs │ │ │ ├── WebAPIAutores.csproj │ │ │ ├── appsettings.Development.json │ │ │ ├── appsettings.json │ │ │ └── wwwroot │ │ │ └── Archivo 1.txt │ └── Inicio │ │ └── WebAPIAutores │ │ ├── WebAPIAutores.sln │ │ └── WebAPIAutores │ │ ├── ApplicationDbContext.cs │ │ ├── Controllers │ │ ├── AutoresController.cs │ │ ├── ComentariosController.cs │ │ ├── CuentasController.cs │ │ └── LibrosController.cs │ │ ├── DTOs │ │ ├── AutorCreacionDTO.cs │ │ ├── AutorDTO.cs │ │ ├── AutorDTOConLibros.cs │ │ ├── ComentarioCreacionDTO.cs │ │ ├── ComentarioDTO.cs │ │ ├── CredencialesUsuario.cs │ │ ├── EditarAdminDTO.cs │ │ ├── LibroCreacionDTO.cs │ │ ├── LibroDTO.cs │ │ ├── LibroDTOConAutores.cs │ │ ├── LibroPatchDTO.cs │ │ ├── RespuestaAutenticacion.cs │ │ └── ResultadoHash.cs │ │ ├── Entidades │ │ ├── Autor.cs │ │ ├── AutorLibro.cs │ │ ├── Comentario.cs │ │ └── Libro.cs │ │ ├── Filtros │ │ └── FiltroDeExcepcion.cs │ │ ├── Middlewares │ │ └── LoguearRespuestaHTTPMiddleware.cs │ │ ├── Migrations │ │ ├── 20210604205557_Inicial.Designer.cs │ │ ├── 20210604205557_Inicial.cs │ │ ├── 20210604225138_Comentarios.Designer.cs │ │ ├── 20210604225138_Comentarios.cs │ │ ├── 20210606130933_AutoresLibros.Designer.cs │ │ ├── 20210606130933_AutoresLibros.cs │ │ ├── 20210606185500_FechaPublicacionLibro.Designer.cs │ │ ├── 20210606185500_FechaPublicacionLibro.cs │ │ ├── 20210610151744_SistemaUsuarios.Designer.cs │ │ ├── 20210610151744_SistemaUsuarios.cs │ │ ├── 20210610193244_ComentarioUsuario.Designer.cs │ │ ├── 20210610193244_ComentarioUsuario.cs │ │ └── ApplicationDbContextModelSnapshot.cs │ │ ├── Program.cs │ │ ├── Properties │ │ └── launchSettings.json │ │ ├── Servicios │ │ └── HashService.cs │ │ ├── Startup.cs │ │ ├── Utilidades │ │ └── AutoMapperProfiles.cs │ │ ├── Validaciones │ │ └── PrimeraLetraMayusculaAttribute.cs │ │ ├── WebAPIAutores.csproj │ │ ├── appsettings.Development.json │ │ ├── appsettings.json │ │ └── wwwroot │ │ └── Archivo 1.txt └── Modulo 9 - Pruebas Automaticas │ ├── Fin │ └── WebAPIAutores │ │ ├── WebAPIAutores.Tests │ │ ├── Mocks │ │ │ ├── AuthorizationServiceMock.cs │ │ │ └── URLHelperMock.cs │ │ ├── PruebasUnitarias │ │ │ ├── PrimeraLetraMayusculaAttributeTests.cs │ │ │ └── RootControllerTests.cs │ │ └── WebAPIAutores.Tests.csproj │ │ ├── WebAPIAutores.sln │ │ ├── WebAPIAutores │ │ ├── ApplicationDbContext.cs │ │ ├── Controllers │ │ │ ├── V1 │ │ │ │ ├── AutoresController.cs │ │ │ │ ├── ComentariosController.cs │ │ │ │ ├── CuentasController.cs │ │ │ │ ├── LibrosController.cs │ │ │ │ └── RootController.cs │ │ │ └── V2 │ │ │ │ └── AutoresController.cs │ │ ├── DTOs │ │ │ ├── AutorCreacionDTO.cs │ │ │ ├── AutorDTO.cs │ │ │ ├── AutorDTOConLibros.cs │ │ │ ├── ColeccionDeRecursos.cs │ │ │ ├── ComentarioCreacionDTO.cs │ │ │ ├── ComentarioDTO.cs │ │ │ ├── CredencialesUsuario.cs │ │ │ ├── DatoHATEOAS.cs │ │ │ ├── EditarAdminDTO.cs │ │ │ ├── LibroCreacionDTO.cs │ │ │ ├── LibroDTO.cs │ │ │ ├── LibroDTOConAutores.cs │ │ │ ├── LibroPatchDTO.cs │ │ │ ├── PaginacionDTO.cs │ │ │ ├── Recurso.cs │ │ │ ├── RespuestaAutenticacion.cs │ │ │ └── ResultadoHash.cs │ │ ├── Entidades │ │ │ ├── Autor.cs │ │ │ ├── AutorLibro.cs │ │ │ ├── Comentario.cs │ │ │ └── Libro.cs │ │ ├── Filtros │ │ │ └── FiltroDeExcepcion.cs │ │ ├── Middlewares │ │ │ └── LoguearRespuestaHTTPMiddleware.cs │ │ ├── Migrations │ │ │ ├── 20210604205557_Inicial.Designer.cs │ │ │ ├── 20210604205557_Inicial.cs │ │ │ ├── 20210604225138_Comentarios.Designer.cs │ │ │ ├── 20210604225138_Comentarios.cs │ │ │ ├── 20210606130933_AutoresLibros.Designer.cs │ │ │ ├── 20210606130933_AutoresLibros.cs │ │ │ ├── 20210606185500_FechaPublicacionLibro.Designer.cs │ │ │ ├── 20210606185500_FechaPublicacionLibro.cs │ │ │ ├── 20210610151744_SistemaUsuarios.Designer.cs │ │ │ ├── 20210610151744_SistemaUsuarios.cs │ │ │ ├── 20210610193244_ComentarioUsuario.Designer.cs │ │ │ ├── 20210610193244_ComentarioUsuario.cs │ │ │ └── ApplicationDbContextModelSnapshot.cs │ │ ├── Program.cs │ │ ├── Properties │ │ │ └── launchSettings.json │ │ ├── Servicios │ │ │ ├── GeneradorEnlaces.cs │ │ │ └── HashService.cs │ │ ├── Startup.cs │ │ ├── Utilidades │ │ │ ├── AgregarParametroHATEOAS.cs │ │ │ ├── AgregarParametroXVersion.cs │ │ │ ├── AutoMapperProfiles.cs │ │ │ ├── CabeceraEstaPresenteAttribute.cs │ │ │ ├── HATEOASAutorFilterAttribute.cs │ │ │ ├── HATEOASFiltroAttribute.cs │ │ │ ├── HttpContextExtensions.cs │ │ │ ├── IQueryableExtensions.cs │ │ │ └── SwaggerAgrupaPorVersion.cs │ │ ├── Validaciones │ │ │ └── PrimeraLetraMayusculaAttribute.cs │ │ ├── WebAPIAutores.csproj │ │ ├── appsettings.Development.json │ │ ├── appsettings.json │ │ └── wwwroot │ │ │ └── Archivo 1.txt │ │ └── WebAPIAutores2.Tests2 │ │ ├── UnitTest1.cs │ │ └── WebAPIAutores2.Tests2.csproj │ └── Inicio │ └── WebAPIAutores │ ├── WebAPIAutores.sln │ └── WebAPIAutores │ ├── ApplicationDbContext.cs │ ├── Controllers │ ├── V1 │ │ ├── AutoresController.cs │ │ ├── ComentariosController.cs │ │ ├── CuentasController.cs │ │ ├── LibrosController.cs │ │ └── RootController.cs │ └── V2 │ │ └── AutoresController.cs │ ├── DTOs │ ├── AutorCreacionDTO.cs │ ├── AutorDTO.cs │ ├── AutorDTOConLibros.cs │ ├── ColeccionDeRecursos.cs │ ├── ComentarioCreacionDTO.cs │ ├── ComentarioDTO.cs │ ├── CredencialesUsuario.cs │ ├── DatoHATEOAS.cs │ ├── EditarAdminDTO.cs │ ├── LibroCreacionDTO.cs │ ├── LibroDTO.cs │ ├── LibroDTOConAutores.cs │ ├── LibroPatchDTO.cs │ ├── PaginacionDTO.cs │ ├── Recurso.cs │ ├── RespuestaAutenticacion.cs │ └── ResultadoHash.cs │ ├── Entidades │ ├── Autor.cs │ ├── AutorLibro.cs │ ├── Comentario.cs │ └── Libro.cs │ ├── Filtros │ └── FiltroDeExcepcion.cs │ ├── Middlewares │ └── LoguearRespuestaHTTPMiddleware.cs │ ├── Migrations │ ├── 20210604205557_Inicial.Designer.cs │ ├── 20210604205557_Inicial.cs │ ├── 20210604225138_Comentarios.Designer.cs │ ├── 20210604225138_Comentarios.cs │ ├── 20210606130933_AutoresLibros.Designer.cs │ ├── 20210606130933_AutoresLibros.cs │ ├── 20210606185500_FechaPublicacionLibro.Designer.cs │ ├── 20210606185500_FechaPublicacionLibro.cs │ ├── 20210610151744_SistemaUsuarios.Designer.cs │ ├── 20210610151744_SistemaUsuarios.cs │ ├── 20210610193244_ComentarioUsuario.Designer.cs │ ├── 20210610193244_ComentarioUsuario.cs │ └── ApplicationDbContextModelSnapshot.cs │ ├── Program.cs │ ├── Properties │ └── launchSettings.json │ ├── Servicios │ ├── GeneradorEnlaces.cs │ └── HashService.cs │ ├── Startup.cs │ ├── Utilidades │ ├── AgregarParametroHATEOAS.cs │ ├── AgregarParametroXVersion.cs │ ├── AutoMapperProfiles.cs │ ├── CabeceraEstaPresenteAttribute.cs │ ├── HATEOASAutorFilterAttribute.cs │ ├── HATEOASFiltroAttribute.cs │ ├── HttpContextExtensions.cs │ ├── IQueryableExtensions.cs │ └── SwaggerAgrupaPorVersion.cs │ ├── Validaciones │ └── PrimeraLetraMayusculaAttribute.cs │ ├── WebAPIAutores.csproj │ ├── appsettings.Development.json │ ├── appsettings.json │ └── wwwroot │ └── Archivo 1.txt ├── ASP.NET Core 9 ├── Modulo 10 - Despliegues │ ├── Fin │ │ ├── BibliotecaAPI.sln │ │ ├── BibliotecaAPI │ │ │ ├── .config │ │ │ │ └── dotnet-tools.json │ │ │ ├── BibliotecaAPI.csproj │ │ │ ├── BibliotecaAPI.sln │ │ │ ├── Controllers │ │ │ │ ├── V1 │ │ │ │ │ ├── AutoresColeccionController.cs │ │ │ │ │ ├── AutoresController.cs │ │ │ │ │ ├── ComentariosController.cs │ │ │ │ │ ├── LibrosController.cs │ │ │ │ │ ├── RootController.cs │ │ │ │ │ └── UsuariosController.cs │ │ │ │ └── V2 │ │ │ │ │ ├── AutoresColeccionController.cs │ │ │ │ │ ├── AutoresController.cs │ │ │ │ │ ├── ComentariosController.cs │ │ │ │ │ ├── LibrosController.cs │ │ │ │ │ └── UsuariosController.cs │ │ │ ├── DTOs │ │ │ │ ├── ActualizarUsuarioDTO.cs │ │ │ │ ├── AutorConLibrosDTO.cs │ │ │ │ ├── AutorCreacionDTO.cs │ │ │ │ ├── AutorCreacionDTOConFoto.cs │ │ │ │ ├── AutorDTO.cs │ │ │ │ ├── AutorFiltroDTO.cs │ │ │ │ ├── AutorPatchDTO.cs │ │ │ │ ├── ColeccionDeRecursosDTO.cs │ │ │ │ ├── ComentarioCreacionDTO.cs │ │ │ │ ├── ComentarioDTO.cs │ │ │ │ ├── ComentarioPatchDTO.cs │ │ │ │ ├── CredencialesUsuarioDTO.cs │ │ │ │ ├── DatosHATEOASDTO.cs │ │ │ │ ├── EditarClaimDTO.cs │ │ │ │ ├── LibroConAutorDTO.cs │ │ │ │ ├── LibroCreacionDTO.cs │ │ │ │ ├── LibroDTO.cs │ │ │ │ ├── PaginacionDTO.cs │ │ │ │ ├── RecursoDTO.cs │ │ │ │ ├── RespuestaAutenticacionDTO.cs │ │ │ │ ├── ResultadoHashDTO.cs │ │ │ │ └── UsuarioDTO.cs │ │ │ ├── Datos │ │ │ │ └── ApplicationDbContext.cs │ │ │ ├── Entidades │ │ │ │ ├── Autor.cs │ │ │ │ ├── AutorLibro.cs │ │ │ │ ├── Comentario.cs │ │ │ │ ├── Error.cs │ │ │ │ ├── Libro.cs │ │ │ │ └── Usuario.cs │ │ │ ├── Migrations │ │ │ │ ├── 20250105212827_TablaAutores.Designer.cs │ │ │ │ ├── 20250105212827_TablaAutores.cs │ │ │ │ ├── 20250105221709_TablaLibros.Designer.cs │ │ │ │ ├── 20250105221709_TablaLibros.cs │ │ │ │ ├── 20250115181300_ConfiguracionLongitudColumnas.Designer.cs │ │ │ │ ├── 20250115181300_ConfiguracionLongitudColumnas.cs │ │ │ │ ├── 20250115183955_NuevasColumnasAutores.Designer.cs │ │ │ │ ├── 20250115183955_NuevasColumnasAutores.cs │ │ │ │ ├── 20250115203625_TablaComentarios.Designer.cs │ │ │ │ ├── 20250115203625_TablaComentarios.cs │ │ │ │ ├── 20250115211540_TablaAutoresLibros.Designer.cs │ │ │ │ ├── 20250115211540_TablaAutoresLibros.cs │ │ │ │ ├── 20250127201731_SistemaDeUsuarios.Designer.cs │ │ │ │ ├── 20250127201731_SistemaDeUsuarios.cs │ │ │ │ ├── 20250128120124_ComentarioUsuario.Designer.cs │ │ │ │ ├── 20250128120124_ComentarioUsuario.cs │ │ │ │ ├── 20250128133354_UsuarioFechaNacimiento.Designer.cs │ │ │ │ ├── 20250128133354_UsuarioFechaNacimiento.cs │ │ │ │ ├── 20250207004428_AutorFoto.Designer.cs │ │ │ │ ├── 20250207004428_AutorFoto.cs │ │ │ │ ├── 20250207125723_ComentariosBorradoLogico.Designer.cs │ │ │ │ ├── 20250207125723_ComentariosBorradoLogico.cs │ │ │ │ ├── 20250207144632_TablaErrores.Designer.cs │ │ │ │ ├── 20250207144632_TablaErrores.cs │ │ │ │ └── ApplicationDbContextModelSnapshot.cs │ │ │ ├── Program.cs │ │ │ ├── Properties │ │ │ │ ├── ServiceDependencies │ │ │ │ │ └── BibliotecaAPI20250221090824 - Web Deploy │ │ │ │ │ │ ├── mssql1.arm.json │ │ │ │ │ │ └── profile.arm.json │ │ │ │ ├── launchSettings.json │ │ │ │ ├── serviceDependencies.BibliotecaAPI20250221090824 - Web Deploy.json │ │ │ │ └── serviceDependencies.json │ │ │ ├── Servicios │ │ │ │ ├── AlmacenadorArchivosAzure.cs │ │ │ │ ├── AlmacenadorArchivosLocal.cs │ │ │ │ ├── IAlmacenadorArchivos.cs │ │ │ │ ├── IServiciosUsuarios.cs │ │ │ │ ├── ServiciosUsuarios.cs │ │ │ │ └── V1 │ │ │ │ │ ├── GeneradorEnlaces.cs │ │ │ │ │ ├── IGeneradorEnlaces.cs │ │ │ │ │ ├── IServicioAutores.cs │ │ │ │ │ └── ServicioAutores.cs │ │ │ ├── Swagger │ │ │ │ ├── ConvencionAgrupaPorVersion.cs │ │ │ │ └── FiltroAutorizacion.cs │ │ │ ├── Utilidades │ │ │ │ ├── AutoMapperProfiles.cs │ │ │ │ ├── FiltroValidacionLibro.cs │ │ │ │ ├── HATEOASFilterAttribute.cs │ │ │ │ ├── HttpContextExtensions.cs │ │ │ │ ├── IQueryableExtensions.cs │ │ │ │ ├── ModelStateDictionaryExtensions.cs │ │ │ │ └── V1 │ │ │ │ │ ├── HATEOASAutorAttribute.cs │ │ │ │ │ └── HATEOASAutoresAttribute.cs │ │ │ ├── Validaciones │ │ │ │ └── PrimeraLetraMayusculaAttribute.cs │ │ │ ├── appsettings.Development.json │ │ │ └── appsettings.json │ │ ├── BibliotecaAPITests │ │ │ ├── BibliotecaAPITests.csproj │ │ │ ├── MSTestSettings.cs │ │ │ ├── Properties │ │ │ │ └── launchSettings.json │ │ │ ├── PruebasDeIntegracion │ │ │ │ └── Controllers │ │ │ │ │ └── V1 │ │ │ │ │ ├── AutoresControllerPruebas.cs │ │ │ │ │ ├── ComentariosControllerPruebas.cs │ │ │ │ │ └── LibrosControllerPruebas.cs │ │ │ ├── PruebasUnitarias │ │ │ │ ├── Controllers │ │ │ │ │ └── V1 │ │ │ │ │ │ ├── AutoresControllerPruebas.cs │ │ │ │ │ │ ├── LibrosControllerPruebas.cs │ │ │ │ │ │ └── UsuariosControllerPruebas.cs │ │ │ │ ├── Servicios │ │ │ │ │ └── ServiciosUsuariosPruebas.cs │ │ │ │ └── Validaciones │ │ │ │ │ └── PrimeraLetraMayusculaAttributePruebas.cs │ │ │ └── Utilidades │ │ │ │ ├── AllowAnonymousHandler.cs │ │ │ │ ├── BasePruebas.cs │ │ │ │ ├── Dobles │ │ │ │ └── OutputCacheStoreFalso.cs │ │ │ │ └── UsuarioFalsoFiltro.cs │ │ └── workflows │ │ │ ├── compilar-y-desplegar.yml │ │ │ └── hola-mundo.yml │ └── Inicio │ │ ├── BibliotecaAPI.sln │ │ ├── BibliotecaAPI │ │ ├── BibliotecaAPI.csproj │ │ ├── BibliotecaAPI.sln │ │ ├── Controllers │ │ │ ├── V1 │ │ │ │ ├── AutoresColeccionController.cs │ │ │ │ ├── AutoresController.cs │ │ │ │ ├── ComentariosController.cs │ │ │ │ ├── LibrosController.cs │ │ │ │ ├── RootController.cs │ │ │ │ └── UsuariosController.cs │ │ │ └── V2 │ │ │ │ ├── AutoresColeccionController.cs │ │ │ │ ├── AutoresController.cs │ │ │ │ ├── ComentariosController.cs │ │ │ │ ├── LibrosController.cs │ │ │ │ └── UsuariosController.cs │ │ ├── DTOs │ │ │ ├── ActualizarUsuarioDTO.cs │ │ │ ├── AutorConLibrosDTO.cs │ │ │ ├── AutorCreacionDTO.cs │ │ │ ├── AutorCreacionDTOConFoto.cs │ │ │ ├── AutorDTO.cs │ │ │ ├── AutorFiltroDTO.cs │ │ │ ├── AutorPatchDTO.cs │ │ │ ├── ColeccionDeRecursosDTO.cs │ │ │ ├── ComentarioCreacionDTO.cs │ │ │ ├── ComentarioDTO.cs │ │ │ ├── ComentarioPatchDTO.cs │ │ │ ├── CredencialesUsuarioDTO.cs │ │ │ ├── DatosHATEOASDTO.cs │ │ │ ├── EditarClaimDTO.cs │ │ │ ├── LibroConAutorDTO.cs │ │ │ ├── LibroCreacionDTO.cs │ │ │ ├── LibroDTO.cs │ │ │ ├── PaginacionDTO.cs │ │ │ ├── RecursoDTO.cs │ │ │ ├── RespuestaAutenticacionDTO.cs │ │ │ ├── ResultadoHashDTO.cs │ │ │ └── UsuarioDTO.cs │ │ ├── Datos │ │ │ └── ApplicationDbContext.cs │ │ ├── Entidades │ │ │ ├── Autor.cs │ │ │ ├── AutorLibro.cs │ │ │ ├── Comentario.cs │ │ │ ├── Error.cs │ │ │ ├── Libro.cs │ │ │ └── Usuario.cs │ │ ├── Migrations │ │ │ ├── 20250105212827_TablaAutores.Designer.cs │ │ │ ├── 20250105212827_TablaAutores.cs │ │ │ ├── 20250105221709_TablaLibros.Designer.cs │ │ │ ├── 20250105221709_TablaLibros.cs │ │ │ ├── 20250115181300_ConfiguracionLongitudColumnas.Designer.cs │ │ │ ├── 20250115181300_ConfiguracionLongitudColumnas.cs │ │ │ ├── 20250115183955_NuevasColumnasAutores.Designer.cs │ │ │ ├── 20250115183955_NuevasColumnasAutores.cs │ │ │ ├── 20250115203625_TablaComentarios.Designer.cs │ │ │ ├── 20250115203625_TablaComentarios.cs │ │ │ ├── 20250115211540_TablaAutoresLibros.Designer.cs │ │ │ ├── 20250115211540_TablaAutoresLibros.cs │ │ │ ├── 20250127201731_SistemaDeUsuarios.Designer.cs │ │ │ ├── 20250127201731_SistemaDeUsuarios.cs │ │ │ ├── 20250128120124_ComentarioUsuario.Designer.cs │ │ │ ├── 20250128120124_ComentarioUsuario.cs │ │ │ ├── 20250128133354_UsuarioFechaNacimiento.Designer.cs │ │ │ ├── 20250128133354_UsuarioFechaNacimiento.cs │ │ │ ├── 20250207004428_AutorFoto.Designer.cs │ │ │ ├── 20250207004428_AutorFoto.cs │ │ │ ├── 20250207125723_ComentariosBorradoLogico.Designer.cs │ │ │ ├── 20250207125723_ComentariosBorradoLogico.cs │ │ │ ├── 20250207144632_TablaErrores.Designer.cs │ │ │ ├── 20250207144632_TablaErrores.cs │ │ │ └── ApplicationDbContextModelSnapshot.cs │ │ ├── Program.cs │ │ ├── Properties │ │ │ └── launchSettings.json │ │ ├── Servicios │ │ │ ├── AlmacenadorArchivosAzure.cs │ │ │ ├── AlmacenadorArchivosLocal.cs │ │ │ ├── IAlmacenadorArchivos.cs │ │ │ ├── IServiciosUsuarios.cs │ │ │ ├── ServiciosUsuarios.cs │ │ │ └── V1 │ │ │ │ ├── GeneradorEnlaces.cs │ │ │ │ ├── IGeneradorEnlaces.cs │ │ │ │ ├── IServicioAutores.cs │ │ │ │ └── ServicioAutores.cs │ │ ├── Swagger │ │ │ ├── ConvencionAgrupaPorVersion.cs │ │ │ └── FiltroAutorizacion.cs │ │ ├── Utilidades │ │ │ ├── AutoMapperProfiles.cs │ │ │ ├── FiltroValidacionLibro.cs │ │ │ ├── HATEOASFilterAttribute.cs │ │ │ ├── HttpContextExtensions.cs │ │ │ ├── IQueryableExtensions.cs │ │ │ ├── ModelStateDictionaryExtensions.cs │ │ │ └── V1 │ │ │ │ ├── HATEOASAutorAttribute.cs │ │ │ │ └── HATEOASAutoresAttribute.cs │ │ ├── Validaciones │ │ │ └── PrimeraLetraMayusculaAttribute.cs │ │ ├── appsettings.Development.json │ │ └── appsettings.json │ │ └── BibliotecaAPITests │ │ ├── BibliotecaAPITests.csproj │ │ ├── MSTestSettings.cs │ │ ├── Properties │ │ └── launchSettings.json │ │ ├── PruebasDeIntegracion │ │ └── Controllers │ │ │ └── V1 │ │ │ ├── AutoresControllerPruebas.cs │ │ │ ├── ComentariosControllerPruebas.cs │ │ │ └── LibrosControllerPruebas.cs │ │ ├── PruebasUnitarias │ │ ├── Controllers │ │ │ └── V1 │ │ │ │ ├── AutoresControllerPruebas.cs │ │ │ │ ├── LibrosControllerPruebas.cs │ │ │ │ └── UsuariosControllerPruebas.cs │ │ ├── Servicios │ │ │ └── ServiciosUsuariosPruebas.cs │ │ └── Validaciones │ │ │ └── PrimeraLetraMayusculaAttributePruebas.cs │ │ └── Utilidades │ │ ├── AllowAnonymousHandler.cs │ │ ├── BasePruebas.cs │ │ ├── Dobles │ │ └── OutputCacheStoreFalso.cs │ │ └── UsuarioFalsoFiltro.cs ├── Modulo 11 - Web API de Suscripciones │ ├── Fin │ │ ├── BibliotecaAPI.sln │ │ ├── BibliotecaAPI │ │ │ ├── .config │ │ │ │ └── dotnet-tools.json │ │ │ ├── .vscode │ │ │ │ └── settings.json │ │ │ ├── BibliotecaAPI.csproj │ │ │ ├── Controllers │ │ │ │ ├── V1 │ │ │ │ │ ├── AutoresColeccionController.cs │ │ │ │ │ ├── AutoresController.cs │ │ │ │ │ ├── ComentariosController.cs │ │ │ │ │ ├── FacturasController.cs │ │ │ │ │ ├── LibrosController.cs │ │ │ │ │ ├── LlavesAPIController.cs │ │ │ │ │ ├── RestriccionesDominioController.cs │ │ │ │ │ ├── RestriccionesIPController.cs │ │ │ │ │ ├── RootController.cs │ │ │ │ │ └── UsuariosController.cs │ │ │ │ └── V2 │ │ │ │ │ ├── AutoresColeccionController.cs │ │ │ │ │ ├── AutoresController.cs │ │ │ │ │ ├── ComentariosController.cs │ │ │ │ │ ├── LibrosController.cs │ │ │ │ │ └── UsuariosController.cs │ │ │ ├── DTOs │ │ │ │ ├── ActualizarUsuarioDTO.cs │ │ │ │ ├── AutorConLibrosDTO.cs │ │ │ │ ├── AutorCreacionDTO.cs │ │ │ │ ├── AutorCreacionDTOConFoto.cs │ │ │ │ ├── AutorDTO.cs │ │ │ │ ├── AutorFiltroDTO.cs │ │ │ │ ├── AutorPatchDTO.cs │ │ │ │ ├── ColeccionDeRecursosDTO.cs │ │ │ │ ├── ComentarioCreacionDTO.cs │ │ │ │ ├── ComentarioDTO.cs │ │ │ │ ├── ComentarioPatchDTO.cs │ │ │ │ ├── CredencialesUsuarioDTO.cs │ │ │ │ ├── DatosHATEOASDTO.cs │ │ │ │ ├── EditarClaimDTO.cs │ │ │ │ ├── FacturaPagarDTO.cs │ │ │ │ ├── LibroConAutorDTO.cs │ │ │ │ ├── LibroCreacionDTO.cs │ │ │ │ ├── LibroDTO.cs │ │ │ │ ├── LimitarPeticionesDTO.cs │ │ │ │ ├── LlaveActualizacionDTO.cs │ │ │ │ ├── LlaveCreacionDTO.cs │ │ │ │ ├── LlaveDTO.cs │ │ │ │ ├── PaginacionDTO.cs │ │ │ │ ├── RecursoDTO.cs │ │ │ │ ├── RespuestaAutenticacionDTO.cs │ │ │ │ ├── RestriccionDominioActualizacionDTO.cs │ │ │ │ ├── RestriccionDominioCreacionDTO.cs │ │ │ │ ├── RestriccionDominioDTO.cs │ │ │ │ ├── RestriccionIPActualizacionDTO.cs │ │ │ │ ├── RestriccionIPCreacionDTO.cs │ │ │ │ ├── RestriccionIPDTO.cs │ │ │ │ ├── ResultadoHashDTO.cs │ │ │ │ └── UsuarioDTO.cs │ │ │ ├── Datos │ │ │ │ └── ApplicationDbContext.cs │ │ │ ├── Entidades │ │ │ │ ├── Autor.cs │ │ │ │ ├── AutorLibro.cs │ │ │ │ ├── Comentario.cs │ │ │ │ ├── Error.cs │ │ │ │ ├── Factura.cs │ │ │ │ ├── FacturaEmitida.cs │ │ │ │ ├── Libro.cs │ │ │ │ ├── LlaveAPI.cs │ │ │ │ ├── Peticion.cs │ │ │ │ ├── RestriccionDominio.cs │ │ │ │ ├── RestriccionIP.cs │ │ │ │ └── Usuario.cs │ │ │ ├── Jobs │ │ │ │ └── FacturasBackgroundService.cs │ │ │ ├── Migrations │ │ │ │ ├── 20250105212827_TablaAutores.Designer.cs │ │ │ │ ├── 20250105212827_TablaAutores.cs │ │ │ │ ├── 20250105221709_TablaLibros.Designer.cs │ │ │ │ ├── 20250105221709_TablaLibros.cs │ │ │ │ ├── 20250115181300_ConfiguracionLongitudColumnas.Designer.cs │ │ │ │ ├── 20250115181300_ConfiguracionLongitudColumnas.cs │ │ │ │ ├── 20250115183955_NuevasColumnasAutores.Designer.cs │ │ │ │ ├── 20250115183955_NuevasColumnasAutores.cs │ │ │ │ ├── 20250115203625_TablaComentarios.Designer.cs │ │ │ │ ├── 20250115203625_TablaComentarios.cs │ │ │ │ ├── 20250115211540_TablaAutoresLibros.Designer.cs │ │ │ │ ├── 20250115211540_TablaAutoresLibros.cs │ │ │ │ ├── 20250127201731_SistemaDeUsuarios.Designer.cs │ │ │ │ ├── 20250127201731_SistemaDeUsuarios.cs │ │ │ │ ├── 20250128120124_ComentarioUsuario.Designer.cs │ │ │ │ ├── 20250128120124_ComentarioUsuario.cs │ │ │ │ ├── 20250128133354_UsuarioFechaNacimiento.Designer.cs │ │ │ │ ├── 20250128133354_UsuarioFechaNacimiento.cs │ │ │ │ ├── 20250207004428_AutorFoto.Designer.cs │ │ │ │ ├── 20250207004428_AutorFoto.cs │ │ │ │ ├── 20250207125723_ComentariosBorradoLogico.Designer.cs │ │ │ │ ├── 20250207125723_ComentariosBorradoLogico.cs │ │ │ │ ├── 20250207144632_TablaErrores.Designer.cs │ │ │ │ ├── 20250207144632_TablaErrores.cs │ │ │ │ ├── 20250227134254_CreaTablaLlavesAPI.Designer.cs │ │ │ │ ├── 20250227134254_CreaTablaLlavesAPI.cs │ │ │ │ ├── 20250227142221_TablaPeticiones.Designer.cs │ │ │ │ ├── 20250227142221_TablaPeticiones.cs │ │ │ │ ├── 20250227151150_TablasRestricciones.Designer.cs │ │ │ │ ├── 20250227151150_TablasRestricciones.cs │ │ │ │ ├── 20250228141052_UsuarioMalaPaga.Designer.cs │ │ │ │ ├── 20250228141052_UsuarioMalaPaga.cs │ │ │ │ ├── 20250228142202_TablasFacturas.Designer.cs │ │ │ │ ├── 20250228142202_TablasFacturas.cs │ │ │ │ ├── 20250228144727_CrearSPCreaFacturas.cs │ │ │ │ ├── 20250228151759_CreaStoredProcedure_Facturas_Crear.Designer.cs │ │ │ │ ├── 20250228151759_CreaStoredProcedure_Facturas_Crear.cs │ │ │ │ ├── 20250228155040_Crea_SP_Usuarios_SetearMalaPaga.Designer.cs │ │ │ │ ├── 20250228155040_Crea_SP_Usuarios_SetearMalaPaga.cs │ │ │ │ └── ApplicationDbContextModelSnapshot.cs │ │ │ ├── Program.cs │ │ │ ├── Properties │ │ │ │ ├── ServiceDependencies │ │ │ │ │ └── BibliotecaAPI20250221090824 - Web Deploy │ │ │ │ │ │ ├── mssql1.arm.json │ │ │ │ │ │ └── profile.arm.json │ │ │ │ ├── launchSettings.json │ │ │ │ ├── serviceDependencies.BibliotecaAPI20250221090824 - Web Deploy.json │ │ │ │ └── serviceDependencies.json │ │ │ ├── Servicios │ │ │ │ ├── AlmacenadorArchivosAzure.cs │ │ │ │ ├── AlmacenadorArchivosLocal.cs │ │ │ │ ├── IAlmacenadorArchivos.cs │ │ │ │ ├── IServicioLlaves.cs │ │ │ │ ├── IServiciosUsuarios.cs │ │ │ │ ├── ServicioLlaves.cs │ │ │ │ ├── ServiciosUsuarios.cs │ │ │ │ └── V1 │ │ │ │ │ ├── GeneradorEnlaces.cs │ │ │ │ │ ├── IGeneradorEnlaces.cs │ │ │ │ │ ├── IServicioAutores.cs │ │ │ │ │ └── ServicioAutores.cs │ │ │ ├── Swagger │ │ │ │ ├── ConvencionAgrupaPorVersion.cs │ │ │ │ └── FiltroAutorizacion.cs │ │ │ ├── Utilidades │ │ │ │ ├── AutoMapperProfiles.cs │ │ │ │ ├── DeshabilitarLimitarPeticionesAttribute.cs │ │ │ │ ├── FiltroValidacionLibro.cs │ │ │ │ ├── HATEOASFilterAttribute.cs │ │ │ │ ├── HttpContextExtensions.cs │ │ │ │ ├── IQueryableExtensions.cs │ │ │ │ ├── LimitarPeticionesMiddleware.cs │ │ │ │ ├── ModelStateDictionaryExtensions.cs │ │ │ │ └── V1 │ │ │ │ │ ├── HATEOASAutorAttribute.cs │ │ │ │ │ └── HATEOASAutoresAttribute.cs │ │ │ ├── Validaciones │ │ │ │ └── PrimeraLetraMayusculaAttribute.cs │ │ │ ├── appsettings.Development.json │ │ │ ├── appsettings.json │ │ │ └── prueba.html │ │ └── BibliotecaAPITests │ │ │ ├── BibliotecaAPITests.csproj │ │ │ ├── MSTestSettings.cs │ │ │ ├── Properties │ │ │ └── launchSettings.json │ │ │ ├── PruebasDeIntegracion │ │ │ └── Controllers │ │ │ │ └── V1 │ │ │ │ ├── AutoresControllerPruebas.cs │ │ │ │ ├── ComentariosControllerPruebas.cs │ │ │ │ └── LibrosControllerPruebas.cs │ │ │ ├── PruebasUnitarias │ │ │ ├── Controllers │ │ │ │ └── V1 │ │ │ │ │ ├── AutoresControllerPruebas.cs │ │ │ │ │ ├── LibrosControllerPruebas.cs │ │ │ │ │ └── UsuariosControllerPruebas.cs │ │ │ ├── Servicios │ │ │ │ └── ServiciosUsuariosPruebas.cs │ │ │ └── Validaciones │ │ │ │ └── PrimeraLetraMayusculaAttributePruebas.cs │ │ │ └── Utilidades │ │ │ ├── AllowAnonymousHandler.cs │ │ │ ├── BasePruebas.cs │ │ │ ├── Dobles │ │ │ └── OutputCacheStoreFalso.cs │ │ │ └── UsuarioFalsoFiltro.cs │ └── Inicio │ │ ├── BibliotecaAPI.sln │ │ ├── BibliotecaAPI │ │ ├── .config │ │ │ └── dotnet-tools.json │ │ ├── BibliotecaAPI.csproj │ │ ├── BibliotecaAPI.sln │ │ ├── Controllers │ │ │ ├── V1 │ │ │ │ ├── AutoresColeccionController.cs │ │ │ │ ├── AutoresController.cs │ │ │ │ ├── ComentariosController.cs │ │ │ │ ├── LibrosController.cs │ │ │ │ ├── RootController.cs │ │ │ │ └── UsuariosController.cs │ │ │ └── V2 │ │ │ │ ├── AutoresColeccionController.cs │ │ │ │ ├── AutoresController.cs │ │ │ │ ├── ComentariosController.cs │ │ │ │ ├── LibrosController.cs │ │ │ │ └── UsuariosController.cs │ │ ├── DTOs │ │ │ ├── ActualizarUsuarioDTO.cs │ │ │ ├── AutorConLibrosDTO.cs │ │ │ ├── AutorCreacionDTO.cs │ │ │ ├── AutorCreacionDTOConFoto.cs │ │ │ ├── AutorDTO.cs │ │ │ ├── AutorFiltroDTO.cs │ │ │ ├── AutorPatchDTO.cs │ │ │ ├── ColeccionDeRecursosDTO.cs │ │ │ ├── ComentarioCreacionDTO.cs │ │ │ ├── ComentarioDTO.cs │ │ │ ├── ComentarioPatchDTO.cs │ │ │ ├── CredencialesUsuarioDTO.cs │ │ │ ├── DatosHATEOASDTO.cs │ │ │ ├── EditarClaimDTO.cs │ │ │ ├── LibroConAutorDTO.cs │ │ │ ├── LibroCreacionDTO.cs │ │ │ ├── LibroDTO.cs │ │ │ ├── PaginacionDTO.cs │ │ │ ├── RecursoDTO.cs │ │ │ ├── RespuestaAutenticacionDTO.cs │ │ │ ├── ResultadoHashDTO.cs │ │ │ └── UsuarioDTO.cs │ │ ├── Datos │ │ │ └── ApplicationDbContext.cs │ │ ├── Entidades │ │ │ ├── Autor.cs │ │ │ ├── AutorLibro.cs │ │ │ ├── Comentario.cs │ │ │ ├── Error.cs │ │ │ ├── Libro.cs │ │ │ └── Usuario.cs │ │ ├── Migrations │ │ │ ├── 20250105212827_TablaAutores.Designer.cs │ │ │ ├── 20250105212827_TablaAutores.cs │ │ │ ├── 20250105221709_TablaLibros.Designer.cs │ │ │ ├── 20250105221709_TablaLibros.cs │ │ │ ├── 20250115181300_ConfiguracionLongitudColumnas.Designer.cs │ │ │ ├── 20250115181300_ConfiguracionLongitudColumnas.cs │ │ │ ├── 20250115183955_NuevasColumnasAutores.Designer.cs │ │ │ ├── 20250115183955_NuevasColumnasAutores.cs │ │ │ ├── 20250115203625_TablaComentarios.Designer.cs │ │ │ ├── 20250115203625_TablaComentarios.cs │ │ │ ├── 20250115211540_TablaAutoresLibros.Designer.cs │ │ │ ├── 20250115211540_TablaAutoresLibros.cs │ │ │ ├── 20250127201731_SistemaDeUsuarios.Designer.cs │ │ │ ├── 20250127201731_SistemaDeUsuarios.cs │ │ │ ├── 20250128120124_ComentarioUsuario.Designer.cs │ │ │ ├── 20250128120124_ComentarioUsuario.cs │ │ │ ├── 20250128133354_UsuarioFechaNacimiento.Designer.cs │ │ │ ├── 20250128133354_UsuarioFechaNacimiento.cs │ │ │ ├── 20250207004428_AutorFoto.Designer.cs │ │ │ ├── 20250207004428_AutorFoto.cs │ │ │ ├── 20250207125723_ComentariosBorradoLogico.Designer.cs │ │ │ ├── 20250207125723_ComentariosBorradoLogico.cs │ │ │ ├── 20250207144632_TablaErrores.Designer.cs │ │ │ ├── 20250207144632_TablaErrores.cs │ │ │ └── ApplicationDbContextModelSnapshot.cs │ │ ├── Program.cs │ │ ├── Properties │ │ │ ├── ServiceDependencies │ │ │ │ └── BibliotecaAPI20250221090824 - Web Deploy │ │ │ │ │ ├── mssql1.arm.json │ │ │ │ │ └── profile.arm.json │ │ │ ├── launchSettings.json │ │ │ ├── serviceDependencies.BibliotecaAPI20250221090824 - Web Deploy.json │ │ │ └── serviceDependencies.json │ │ ├── Servicios │ │ │ ├── AlmacenadorArchivosAzure.cs │ │ │ ├── AlmacenadorArchivosLocal.cs │ │ │ ├── IAlmacenadorArchivos.cs │ │ │ ├── IServiciosUsuarios.cs │ │ │ ├── ServiciosUsuarios.cs │ │ │ └── V1 │ │ │ │ ├── GeneradorEnlaces.cs │ │ │ │ ├── IGeneradorEnlaces.cs │ │ │ │ ├── IServicioAutores.cs │ │ │ │ └── ServicioAutores.cs │ │ ├── Swagger │ │ │ ├── ConvencionAgrupaPorVersion.cs │ │ │ └── FiltroAutorizacion.cs │ │ ├── Utilidades │ │ │ ├── AutoMapperProfiles.cs │ │ │ ├── FiltroValidacionLibro.cs │ │ │ ├── HATEOASFilterAttribute.cs │ │ │ ├── HttpContextExtensions.cs │ │ │ ├── IQueryableExtensions.cs │ │ │ ├── ModelStateDictionaryExtensions.cs │ │ │ └── V1 │ │ │ │ ├── HATEOASAutorAttribute.cs │ │ │ │ └── HATEOASAutoresAttribute.cs │ │ ├── Validaciones │ │ │ └── PrimeraLetraMayusculaAttribute.cs │ │ ├── appsettings.Development.json │ │ └── appsettings.json │ │ └── BibliotecaAPITests │ │ ├── BibliotecaAPITests.csproj │ │ ├── MSTestSettings.cs │ │ ├── Properties │ │ └── launchSettings.json │ │ ├── PruebasDeIntegracion │ │ └── Controllers │ │ │ └── V1 │ │ │ ├── AutoresControllerPruebas.cs │ │ │ ├── ComentariosControllerPruebas.cs │ │ │ └── LibrosControllerPruebas.cs │ │ ├── PruebasUnitarias │ │ ├── Controllers │ │ │ └── V1 │ │ │ │ ├── AutoresControllerPruebas.cs │ │ │ │ ├── LibrosControllerPruebas.cs │ │ │ │ └── UsuariosControllerPruebas.cs │ │ ├── Servicios │ │ │ └── ServiciosUsuariosPruebas.cs │ │ └── Validaciones │ │ │ └── PrimeraLetraMayusculaAttributePruebas.cs │ │ └── Utilidades │ │ ├── AllowAnonymousHandler.cs │ │ ├── BasePruebas.cs │ │ ├── Dobles │ │ └── OutputCacheStoreFalso.cs │ │ └── UsuarioFalsoFiltro.cs ├── Modulo 3 - Nuestro Primer Web API │ ├── Fin │ │ ├── BibliotecaAPI.sln │ │ └── BibliotecaAPI │ │ │ ├── BibliotecaAPI.csproj │ │ │ ├── Controllers │ │ │ ├── AutoresController.cs │ │ │ └── LibrosController.cs │ │ │ ├── Datos │ │ │ └── ApplicationDbContext.cs │ │ │ ├── Entidades │ │ │ ├── Autor.cs │ │ │ └── Libro.cs │ │ │ ├── Migrations │ │ │ ├── 20250105212827_TablaAutores.Designer.cs │ │ │ ├── 20250105212827_TablaAutores.cs │ │ │ ├── 20250105221709_TablaLibros.Designer.cs │ │ │ ├── 20250105221709_TablaLibros.cs │ │ │ └── ApplicationDbContextModelSnapshot.cs │ │ │ ├── Program.cs │ │ │ ├── Properties │ │ │ └── launchSettings.json │ │ │ ├── appsettings.Development.json │ │ │ └── appsettings.json │ └── Inicio │ │ └── BibliotecaAPI │ │ ├── BibliotecaAPI.sln │ │ └── BibliotecaAPI │ │ ├── BibliotecaAPI.csproj │ │ ├── Program.cs │ │ ├── Properties │ │ └── launchSettings.json │ │ ├── appsettings.Development.json │ │ └── appsettings.json ├── Modulo 4 - Fundamentos de ASP.NET Core │ ├── Fin │ │ ├── BibliotecaAPI.sln │ │ └── BibliotecaAPI │ │ │ ├── BibliotecaAPI.csproj │ │ │ ├── BloqueaPeticionMiddleware.cs │ │ │ ├── Controllers │ │ │ ├── AutoresController.cs │ │ │ ├── LibrosController.cs │ │ │ └── ValoresController.cs │ │ │ ├── Datos │ │ │ └── ApplicationDbContext.cs │ │ │ ├── EjemploTiemposDeVida.cs │ │ │ ├── Entidades │ │ │ ├── Autor.cs │ │ │ ├── Libro.cs │ │ │ └── Valor.cs │ │ │ ├── IRepositorioValores.cs │ │ │ ├── LogueaPeticionMiddleware.cs │ │ │ ├── Migrations │ │ │ ├── 20250105212827_TablaAutores.Designer.cs │ │ │ ├── 20250105212827_TablaAutores.cs │ │ │ ├── 20250105221709_TablaLibros.Designer.cs │ │ │ ├── 20250105221709_TablaLibros.cs │ │ │ └── ApplicationDbContextModelSnapshot.cs │ │ │ ├── Program.cs │ │ │ ├── Properties │ │ │ └── launchSettings.json │ │ │ ├── RepositorioValores.cs │ │ │ ├── RepositorioValoresOracle.cs │ │ │ ├── Validaciones │ │ │ └── PrimeraLetraMayusculaAttribute.cs │ │ │ ├── appsettings.Development.json │ │ │ └── appsettings.json │ └── Inicio │ │ ├── BibliotecaAPI.sln │ │ └── BibliotecaAPI │ │ ├── BibliotecaAPI.csproj │ │ ├── Controllers │ │ ├── AutoresController.cs │ │ └── LibrosController.cs │ │ ├── Datos │ │ └── ApplicationDbContext.cs │ │ ├── Entidades │ │ ├── Autor.cs │ │ └── Libro.cs │ │ ├── Migrations │ │ ├── 20250105212827_TablaAutores.Designer.cs │ │ ├── 20250105212827_TablaAutores.cs │ │ ├── 20250105221709_TablaLibros.Designer.cs │ │ ├── 20250105221709_TablaLibros.cs │ │ └── ApplicationDbContextModelSnapshot.cs │ │ ├── Program.cs │ │ ├── Properties │ │ └── launchSettings.json │ │ ├── appsettings.Development.json │ │ └── appsettings.json ├── Modulo 5 - Manipulando Recursos │ ├── Fin │ │ ├── BibliotecaAPI.sln │ │ └── BibliotecaAPI │ │ │ ├── BibliotecaAPI.csproj │ │ │ ├── Controllers │ │ │ ├── AutoresColeccionController.cs │ │ │ ├── AutoresController.cs │ │ │ ├── ComentariosController.cs │ │ │ └── LibrosController.cs │ │ │ ├── DTOs │ │ │ ├── AutorConLibrosDTO.cs │ │ │ ├── AutorCreacionDTO.cs │ │ │ ├── AutorDTO.cs │ │ │ ├── AutorPatchDTO.cs │ │ │ ├── ComentarioCreacionDTO.cs │ │ │ ├── ComentarioDTO.cs │ │ │ ├── ComentarioPatchDTO.cs │ │ │ ├── LibroConAutorDTO.cs │ │ │ ├── LibroCreacionDTO.cs │ │ │ └── LibroDTO.cs │ │ │ ├── Datos │ │ │ └── ApplicationDbContext.cs │ │ │ ├── Entidades │ │ │ ├── Autor.cs │ │ │ ├── AutorLibro.cs │ │ │ ├── Comentario.cs │ │ │ └── Libro.cs │ │ │ ├── Migrations │ │ │ ├── 20250105212827_TablaAutores.Designer.cs │ │ │ ├── 20250105212827_TablaAutores.cs │ │ │ ├── 20250105221709_TablaLibros.Designer.cs │ │ │ ├── 20250105221709_TablaLibros.cs │ │ │ ├── 20250115181300_ConfiguracionLongitudColumnas.Designer.cs │ │ │ ├── 20250115181300_ConfiguracionLongitudColumnas.cs │ │ │ ├── 20250115183955_NuevasColumnasAutores.Designer.cs │ │ │ ├── 20250115183955_NuevasColumnasAutores.cs │ │ │ ├── 20250115203625_TablaComentarios.Designer.cs │ │ │ ├── 20250115203625_TablaComentarios.cs │ │ │ ├── 20250115211540_TablaAutoresLibros.Designer.cs │ │ │ ├── 20250115211540_TablaAutoresLibros.cs │ │ │ └── ApplicationDbContextModelSnapshot.cs │ │ │ ├── Program.cs │ │ │ ├── Properties │ │ │ └── launchSettings.json │ │ │ ├── Utilidades │ │ │ └── AutoMapperProfiles.cs │ │ │ ├── Validaciones │ │ │ └── PrimeraLetraMayusculaAttribute.cs │ │ │ ├── appsettings.Development.json │ │ │ └── appsettings.json │ └── Inicio │ │ ├── BibliotecaAPI.sln │ │ └── BibliotecaAPI │ │ ├── BibliotecaAPI.csproj │ │ ├── BloqueaPeticionMiddleware.cs │ │ ├── Controllers │ │ ├── AutoresController.cs │ │ ├── LibrosController.cs │ │ └── ValoresController.cs │ │ ├── Datos │ │ └── ApplicationDbContext.cs │ │ ├── EjemploTiemposDeVida.cs │ │ ├── Entidades │ │ ├── Autor.cs │ │ ├── Libro.cs │ │ └── Valor.cs │ │ ├── IRepositorioValores.cs │ │ ├── LogueaPeticionMiddleware.cs │ │ ├── Migrations │ │ ├── 20250105212827_TablaAutores.Designer.cs │ │ ├── 20250105212827_TablaAutores.cs │ │ ├── 20250105221709_TablaLibros.Designer.cs │ │ ├── 20250105221709_TablaLibros.cs │ │ └── ApplicationDbContextModelSnapshot.cs │ │ ├── Program.cs │ │ ├── Properties │ │ └── launchSettings.json │ │ ├── RepositorioValores.cs │ │ ├── RepositorioValoresOracle.cs │ │ ├── Validaciones │ │ └── PrimeraLetraMayusculaAttribute.cs │ │ ├── appsettings.Development.json │ │ └── appsettings.json ├── Modulo 6 - Configuraciones │ ├── Fin │ │ ├── BibliotecaAPI.sln │ │ └── BibliotecaAPI │ │ │ ├── BibliotecaAPI.csproj │ │ │ ├── Controllers │ │ │ ├── AutoresColeccionController.cs │ │ │ ├── AutoresController.cs │ │ │ ├── ComentariosController.cs │ │ │ ├── ConfiguracionesController.cs │ │ │ └── LibrosController.cs │ │ │ ├── DTOs │ │ │ ├── AutorConLibrosDTO.cs │ │ │ ├── AutorCreacionDTO.cs │ │ │ ├── AutorDTO.cs │ │ │ ├── AutorPatchDTO.cs │ │ │ ├── ComentarioCreacionDTO.cs │ │ │ ├── ComentarioDTO.cs │ │ │ ├── ComentarioPatchDTO.cs │ │ │ ├── LibroConAutorDTO.cs │ │ │ ├── LibroCreacionDTO.cs │ │ │ └── LibroDTO.cs │ │ │ ├── Datos │ │ │ └── ApplicationDbContext.cs │ │ │ ├── Entidades │ │ │ ├── Autor.cs │ │ │ ├── AutorLibro.cs │ │ │ ├── Comentario.cs │ │ │ └── Libro.cs │ │ │ ├── Migrations │ │ │ ├── 20250105212827_TablaAutores.Designer.cs │ │ │ ├── 20250105212827_TablaAutores.cs │ │ │ ├── 20250105221709_TablaLibros.Designer.cs │ │ │ ├── 20250105221709_TablaLibros.cs │ │ │ ├── 20250115181300_ConfiguracionLongitudColumnas.Designer.cs │ │ │ ├── 20250115181300_ConfiguracionLongitudColumnas.cs │ │ │ ├── 20250115183955_NuevasColumnasAutores.Designer.cs │ │ │ ├── 20250115183955_NuevasColumnasAutores.cs │ │ │ ├── 20250115203625_TablaComentarios.Designer.cs │ │ │ ├── 20250115203625_TablaComentarios.cs │ │ │ ├── 20250115211540_TablaAutoresLibros.Designer.cs │ │ │ ├── 20250115211540_TablaAutoresLibros.cs │ │ │ └── ApplicationDbContextModelSnapshot.cs │ │ │ ├── PagosProcesamiento.cs │ │ │ ├── PersonaOpciones.cs │ │ │ ├── Program.cs │ │ │ ├── Properties │ │ │ └── launchSettings.json │ │ │ ├── TarifaOpciones.cs │ │ │ ├── Utilidades │ │ │ └── AutoMapperProfiles.cs │ │ │ ├── Validaciones │ │ │ └── PrimeraLetraMayusculaAttribute.cs │ │ │ ├── appsettings.Development.json │ │ │ └── appsettings.json │ └── Inicio │ │ ├── BibliotecaAPI.sln │ │ └── BibliotecaAPI │ │ ├── BibliotecaAPI.csproj │ │ ├── Controllers │ │ ├── AutoresColeccionController.cs │ │ ├── AutoresController.cs │ │ ├── ComentariosController.cs │ │ └── LibrosController.cs │ │ ├── DTOs │ │ ├── AutorConLibrosDTO.cs │ │ ├── AutorCreacionDTO.cs │ │ ├── AutorDTO.cs │ │ ├── AutorPatchDTO.cs │ │ ├── ComentarioCreacionDTO.cs │ │ ├── ComentarioDTO.cs │ │ ├── ComentarioPatchDTO.cs │ │ ├── LibroConAutorDTO.cs │ │ ├── LibroCreacionDTO.cs │ │ └── LibroDTO.cs │ │ ├── Datos │ │ └── ApplicationDbContext.cs │ │ ├── Entidades │ │ ├── Autor.cs │ │ ├── AutorLibro.cs │ │ ├── Comentario.cs │ │ └── Libro.cs │ │ ├── Migrations │ │ ├── 20250105212827_TablaAutores.Designer.cs │ │ ├── 20250105212827_TablaAutores.cs │ │ ├── 20250105221709_TablaLibros.Designer.cs │ │ ├── 20250105221709_TablaLibros.cs │ │ ├── 20250115181300_ConfiguracionLongitudColumnas.Designer.cs │ │ ├── 20250115181300_ConfiguracionLongitudColumnas.cs │ │ ├── 20250115183955_NuevasColumnasAutores.Designer.cs │ │ ├── 20250115183955_NuevasColumnasAutores.cs │ │ ├── 20250115203625_TablaComentarios.Designer.cs │ │ ├── 20250115203625_TablaComentarios.cs │ │ ├── 20250115211540_TablaAutoresLibros.Designer.cs │ │ ├── 20250115211540_TablaAutoresLibros.cs │ │ └── ApplicationDbContextModelSnapshot.cs │ │ ├── Program.cs │ │ ├── Properties │ │ └── launchSettings.json │ │ ├── Utilidades │ │ └── AutoMapperProfiles.cs │ │ ├── Validaciones │ │ └── PrimeraLetraMayusculaAttribute.cs │ │ ├── appsettings.Development.json │ │ └── appsettings.json ├── Modulo 7 - Seguridad │ ├── Fin │ │ ├── BibliotecaAPI.sln │ │ └── BibliotecaAPI │ │ │ ├── BibliotecaAPI.csproj │ │ │ ├── BibliotecaAPI.sln │ │ │ ├── Controllers │ │ │ ├── AutoresColeccionController.cs │ │ │ ├── AutoresController.cs │ │ │ ├── ComentariosController.cs │ │ │ ├── LibrosController.cs │ │ │ ├── SeguridadController.cs │ │ │ └── UsuariosController.cs │ │ │ ├── DTOs │ │ │ ├── ActualizarUsuarioDTO.cs │ │ │ ├── AutorConLibrosDTO.cs │ │ │ ├── AutorCreacionDTO.cs │ │ │ ├── AutorDTO.cs │ │ │ ├── AutorPatchDTO.cs │ │ │ ├── ComentarioCreacionDTO.cs │ │ │ ├── ComentarioDTO.cs │ │ │ ├── ComentarioPatchDTO.cs │ │ │ ├── CredencialesUsuarioDTO.cs │ │ │ ├── EditarClaimDTO.cs │ │ │ ├── LibroConAutorDTO.cs │ │ │ ├── LibroCreacionDTO.cs │ │ │ ├── LibroDTO.cs │ │ │ ├── RespuestaAutenticacionDTO.cs │ │ │ ├── ResultadoHashDTO.cs │ │ │ └── UsuarioDTO.cs │ │ │ ├── Datos │ │ │ └── ApplicationDbContext.cs │ │ │ ├── Entidades │ │ │ ├── Autor.cs │ │ │ ├── AutorLibro.cs │ │ │ ├── Comentario.cs │ │ │ ├── Libro.cs │ │ │ └── Usuario.cs │ │ │ ├── Migrations │ │ │ ├── 20250105212827_TablaAutores.Designer.cs │ │ │ ├── 20250105212827_TablaAutores.cs │ │ │ ├── 20250105221709_TablaLibros.Designer.cs │ │ │ ├── 20250105221709_TablaLibros.cs │ │ │ ├── 20250115181300_ConfiguracionLongitudColumnas.Designer.cs │ │ │ ├── 20250115181300_ConfiguracionLongitudColumnas.cs │ │ │ ├── 20250115183955_NuevasColumnasAutores.Designer.cs │ │ │ ├── 20250115183955_NuevasColumnasAutores.cs │ │ │ ├── 20250115203625_TablaComentarios.Designer.cs │ │ │ ├── 20250115203625_TablaComentarios.cs │ │ │ ├── 20250115211540_TablaAutoresLibros.Designer.cs │ │ │ ├── 20250115211540_TablaAutoresLibros.cs │ │ │ ├── 20250127201731_SistemaDeUsuarios.Designer.cs │ │ │ ├── 20250127201731_SistemaDeUsuarios.cs │ │ │ ├── 20250128120124_ComentarioUsuario.Designer.cs │ │ │ ├── 20250128120124_ComentarioUsuario.cs │ │ │ ├── 20250128133354_UsuarioFechaNacimiento.Designer.cs │ │ │ ├── 20250128133354_UsuarioFechaNacimiento.cs │ │ │ └── ApplicationDbContextModelSnapshot.cs │ │ │ ├── Program.cs │ │ │ ├── Properties │ │ │ └── launchSettings.json │ │ │ ├── Servicios │ │ │ ├── IServicioHash.cs │ │ │ ├── IServiciosUsuarios.cs │ │ │ ├── ServicioHash.cs │ │ │ └── ServiciosUsuarios.cs │ │ │ ├── Utilidades │ │ │ └── AutoMapperProfiles.cs │ │ │ ├── Validaciones │ │ │ └── PrimeraLetraMayusculaAttribute.cs │ │ │ ├── appsettings.Development.json │ │ │ ├── appsettings.json │ │ │ └── ejemplo-cors.html │ └── Inicio │ │ ├── BibliotecaAPI.sln │ │ └── BibliotecaAPI │ │ ├── BibliotecaAPI.csproj │ │ ├── Controllers │ │ ├── AutoresColeccionController.cs │ │ ├── AutoresController.cs │ │ ├── ComentariosController.cs │ │ ├── ConfiguracionesController.cs │ │ └── LibrosController.cs │ │ ├── DTOs │ │ ├── AutorConLibrosDTO.cs │ │ ├── AutorCreacionDTO.cs │ │ ├── AutorDTO.cs │ │ ├── AutorPatchDTO.cs │ │ ├── ComentarioCreacionDTO.cs │ │ ├── ComentarioDTO.cs │ │ ├── ComentarioPatchDTO.cs │ │ ├── LibroConAutorDTO.cs │ │ ├── LibroCreacionDTO.cs │ │ └── LibroDTO.cs │ │ ├── Datos │ │ └── ApplicationDbContext.cs │ │ ├── Entidades │ │ ├── Autor.cs │ │ ├── AutorLibro.cs │ │ ├── Comentario.cs │ │ └── Libro.cs │ │ ├── Migrations │ │ ├── 20250105212827_TablaAutores.Designer.cs │ │ ├── 20250105212827_TablaAutores.cs │ │ ├── 20250105221709_TablaLibros.Designer.cs │ │ ├── 20250105221709_TablaLibros.cs │ │ ├── 20250115181300_ConfiguracionLongitudColumnas.Designer.cs │ │ ├── 20250115181300_ConfiguracionLongitudColumnas.cs │ │ ├── 20250115183955_NuevasColumnasAutores.Designer.cs │ │ ├── 20250115183955_NuevasColumnasAutores.cs │ │ ├── 20250115203625_TablaComentarios.Designer.cs │ │ ├── 20250115203625_TablaComentarios.cs │ │ ├── 20250115211540_TablaAutoresLibros.Designer.cs │ │ ├── 20250115211540_TablaAutoresLibros.cs │ │ └── ApplicationDbContextModelSnapshot.cs │ │ ├── PagosProcesamiento.cs │ │ ├── PersonaOpciones.cs │ │ ├── Program.cs │ │ ├── Properties │ │ └── launchSettings.json │ │ ├── TarifaOpciones.cs │ │ ├── Utilidades │ │ └── AutoMapperProfiles.cs │ │ ├── Validaciones │ │ └── PrimeraLetraMayusculaAttribute.cs │ │ ├── appsettings.Development.json │ │ └── appsettings.json ├── Modulo 8 - Escenarios Avanzados │ ├── Fin │ │ ├── BibliotecaAPI.sln │ │ └── BibliotecaAPI │ │ │ ├── BibliotecaAPI.csproj │ │ │ ├── BibliotecaAPI.sln │ │ │ ├── Controllers │ │ │ ├── V1 │ │ │ │ ├── AutoresColeccionController.cs │ │ │ │ ├── AutoresController.cs │ │ │ │ ├── ComentariosController.cs │ │ │ │ ├── LibrosController.cs │ │ │ │ ├── RootController.cs │ │ │ │ └── UsuariosController.cs │ │ │ └── V2 │ │ │ │ ├── AutoresColeccionController.cs │ │ │ │ ├── AutoresController.cs │ │ │ │ ├── ComentariosController.cs │ │ │ │ ├── LibrosController.cs │ │ │ │ └── UsuariosController.cs │ │ │ ├── DTOs │ │ │ ├── ActualizarUsuarioDTO.cs │ │ │ ├── AutorConLibrosDTO.cs │ │ │ ├── AutorCreacionDTO.cs │ │ │ ├── AutorCreacionDTOConFoto.cs │ │ │ ├── AutorDTO.cs │ │ │ ├── AutorFiltroDTO.cs │ │ │ ├── AutorPatchDTO.cs │ │ │ ├── ColeccionDeRecursosDTO.cs │ │ │ ├── ComentarioCreacionDTO.cs │ │ │ ├── ComentarioDTO.cs │ │ │ ├── ComentarioPatchDTO.cs │ │ │ ├── CredencialesUsuarioDTO.cs │ │ │ ├── DatosHATEOASDTO.cs │ │ │ ├── EditarClaimDTO.cs │ │ │ ├── LibroConAutorDTO.cs │ │ │ ├── LibroCreacionDTO.cs │ │ │ ├── LibroDTO.cs │ │ │ ├── PaginacionDTO.cs │ │ │ ├── RecursoDTO.cs │ │ │ ├── RespuestaAutenticacionDTO.cs │ │ │ ├── ResultadoHashDTO.cs │ │ │ └── UsuarioDTO.cs │ │ │ ├── Datos │ │ │ └── ApplicationDbContext.cs │ │ │ ├── Entidades │ │ │ ├── Autor.cs │ │ │ ├── AutorLibro.cs │ │ │ ├── Comentario.cs │ │ │ ├── Error.cs │ │ │ ├── Libro.cs │ │ │ └── Usuario.cs │ │ │ ├── Migrations │ │ │ ├── 20250105212827_TablaAutores.Designer.cs │ │ │ ├── 20250105212827_TablaAutores.cs │ │ │ ├── 20250105221709_TablaLibros.Designer.cs │ │ │ ├── 20250105221709_TablaLibros.cs │ │ │ ├── 20250115181300_ConfiguracionLongitudColumnas.Designer.cs │ │ │ ├── 20250115181300_ConfiguracionLongitudColumnas.cs │ │ │ ├── 20250115183955_NuevasColumnasAutores.Designer.cs │ │ │ ├── 20250115183955_NuevasColumnasAutores.cs │ │ │ ├── 20250115203625_TablaComentarios.Designer.cs │ │ │ ├── 20250115203625_TablaComentarios.cs │ │ │ ├── 20250115211540_TablaAutoresLibros.Designer.cs │ │ │ ├── 20250115211540_TablaAutoresLibros.cs │ │ │ ├── 20250127201731_SistemaDeUsuarios.Designer.cs │ │ │ ├── 20250127201731_SistemaDeUsuarios.cs │ │ │ ├── 20250128120124_ComentarioUsuario.Designer.cs │ │ │ ├── 20250128120124_ComentarioUsuario.cs │ │ │ ├── 20250128133354_UsuarioFechaNacimiento.Designer.cs │ │ │ ├── 20250128133354_UsuarioFechaNacimiento.cs │ │ │ ├── 20250207004428_AutorFoto.Designer.cs │ │ │ ├── 20250207004428_AutorFoto.cs │ │ │ ├── 20250207125723_ComentariosBorradoLogico.Designer.cs │ │ │ ├── 20250207125723_ComentariosBorradoLogico.cs │ │ │ ├── 20250207144632_TablaErrores.Designer.cs │ │ │ ├── 20250207144632_TablaErrores.cs │ │ │ └── ApplicationDbContextModelSnapshot.cs │ │ │ ├── Program.cs │ │ │ ├── Properties │ │ │ └── launchSettings.json │ │ │ ├── Servicios │ │ │ ├── AlmacenadorArchivosAzure.cs │ │ │ ├── AlmacenadorArchivosLocal.cs │ │ │ ├── IAlmacenadorArchivos.cs │ │ │ ├── IServiciosUsuarios.cs │ │ │ ├── ServiciosUsuarios.cs │ │ │ └── V1 │ │ │ │ ├── GeneradorEnlaces.cs │ │ │ │ ├── IGeneradorEnlaces.cs │ │ │ │ ├── IServicioAutores.cs │ │ │ │ └── ServicioAutores.cs │ │ │ ├── Swagger │ │ │ ├── ConvencionAgrupaPorVersion.cs │ │ │ └── FiltroAutorizacion.cs │ │ │ ├── Utilidades │ │ │ ├── AutoMapperProfiles.cs │ │ │ ├── FiltroAgregarCabecerasAttribute.cs │ │ │ ├── FiltroTiempoEjecucion.cs │ │ │ ├── FiltroValidacionLibro.cs │ │ │ ├── HATEOASFilterAttribute.cs │ │ │ ├── HttpContextExtensions.cs │ │ │ ├── IQueryableExtensions.cs │ │ │ ├── MiFiltroDeAccion.cs │ │ │ ├── ModelStateDictionaryExtensions.cs │ │ │ └── V1 │ │ │ │ ├── HATEOASAutorAttribute.cs │ │ │ │ └── HATEOASAutoresAttribute.cs │ │ │ ├── Validaciones │ │ │ └── PrimeraLetraMayusculaAttribute.cs │ │ │ ├── appsettings.Development.json │ │ │ └── appsettings.json │ └── Inicio │ │ ├── BibliotecaAPI.sln │ │ └── BibliotecaAPI │ │ ├── BibliotecaAPI.csproj │ │ ├── BibliotecaAPI.sln │ │ ├── Controllers │ │ ├── AutoresColeccionController.cs │ │ ├── AutoresController.cs │ │ ├── ComentariosController.cs │ │ ├── LibrosController.cs │ │ ├── SeguridadController.cs │ │ └── UsuariosController.cs │ │ ├── DTOs │ │ ├── ActualizarUsuarioDTO.cs │ │ ├── AutorConLibrosDTO.cs │ │ ├── AutorCreacionDTO.cs │ │ ├── AutorDTO.cs │ │ ├── AutorPatchDTO.cs │ │ ├── ComentarioCreacionDTO.cs │ │ ├── ComentarioDTO.cs │ │ ├── ComentarioPatchDTO.cs │ │ ├── CredencialesUsuarioDTO.cs │ │ ├── EditarClaimDTO.cs │ │ ├── LibroConAutorDTO.cs │ │ ├── LibroCreacionDTO.cs │ │ ├── LibroDTO.cs │ │ ├── RespuestaAutenticacionDTO.cs │ │ ├── ResultadoHashDTO.cs │ │ └── UsuarioDTO.cs │ │ ├── Datos │ │ └── ApplicationDbContext.cs │ │ ├── Entidades │ │ ├── Autor.cs │ │ ├── AutorLibro.cs │ │ ├── Comentario.cs │ │ ├── Libro.cs │ │ └── Usuario.cs │ │ ├── Migrations │ │ ├── 20250105212827_TablaAutores.Designer.cs │ │ ├── 20250105212827_TablaAutores.cs │ │ ├── 20250105221709_TablaLibros.Designer.cs │ │ ├── 20250105221709_TablaLibros.cs │ │ ├── 20250115181300_ConfiguracionLongitudColumnas.Designer.cs │ │ ├── 20250115181300_ConfiguracionLongitudColumnas.cs │ │ ├── 20250115183955_NuevasColumnasAutores.Designer.cs │ │ ├── 20250115183955_NuevasColumnasAutores.cs │ │ ├── 20250115203625_TablaComentarios.Designer.cs │ │ ├── 20250115203625_TablaComentarios.cs │ │ ├── 20250115211540_TablaAutoresLibros.Designer.cs │ │ ├── 20250115211540_TablaAutoresLibros.cs │ │ ├── 20250127201731_SistemaDeUsuarios.Designer.cs │ │ ├── 20250127201731_SistemaDeUsuarios.cs │ │ ├── 20250128120124_ComentarioUsuario.Designer.cs │ │ ├── 20250128120124_ComentarioUsuario.cs │ │ ├── 20250128133354_UsuarioFechaNacimiento.Designer.cs │ │ ├── 20250128133354_UsuarioFechaNacimiento.cs │ │ └── ApplicationDbContextModelSnapshot.cs │ │ ├── Program.cs │ │ ├── Properties │ │ └── launchSettings.json │ │ ├── Servicios │ │ ├── IServicioHash.cs │ │ ├── IServiciosUsuarios.cs │ │ ├── ServicioHash.cs │ │ └── ServiciosUsuarios.cs │ │ ├── Utilidades │ │ └── AutoMapperProfiles.cs │ │ ├── Validaciones │ │ └── PrimeraLetraMayusculaAttribute.cs │ │ ├── appsettings.Development.json │ │ ├── appsettings.json │ │ └── ejemplo-cors.html └── Modulo 9 - Pruebas Automaticas │ ├── Fin │ ├── BibliotecaAPI.sln │ ├── BibliotecaAPI │ │ ├── BibliotecaAPI.csproj │ │ ├── BibliotecaAPI.sln │ │ ├── Controllers │ │ │ ├── V1 │ │ │ │ ├── AutoresColeccionController.cs │ │ │ │ ├── AutoresController.cs │ │ │ │ ├── ComentariosController.cs │ │ │ │ ├── LibrosController.cs │ │ │ │ ├── RootController.cs │ │ │ │ └── UsuariosController.cs │ │ │ └── V2 │ │ │ │ ├── AutoresColeccionController.cs │ │ │ │ ├── AutoresController.cs │ │ │ │ ├── ComentariosController.cs │ │ │ │ ├── LibrosController.cs │ │ │ │ └── UsuariosController.cs │ │ ├── DTOs │ │ │ ├── ActualizarUsuarioDTO.cs │ │ │ ├── AutorConLibrosDTO.cs │ │ │ ├── AutorCreacionDTO.cs │ │ │ ├── AutorCreacionDTOConFoto.cs │ │ │ ├── AutorDTO.cs │ │ │ ├── AutorFiltroDTO.cs │ │ │ ├── AutorPatchDTO.cs │ │ │ ├── ColeccionDeRecursosDTO.cs │ │ │ ├── ComentarioCreacionDTO.cs │ │ │ ├── ComentarioDTO.cs │ │ │ ├── ComentarioPatchDTO.cs │ │ │ ├── CredencialesUsuarioDTO.cs │ │ │ ├── DatosHATEOASDTO.cs │ │ │ ├── EditarClaimDTO.cs │ │ │ ├── LibroConAutorDTO.cs │ │ │ ├── LibroCreacionDTO.cs │ │ │ ├── LibroDTO.cs │ │ │ ├── PaginacionDTO.cs │ │ │ ├── RecursoDTO.cs │ │ │ ├── RespuestaAutenticacionDTO.cs │ │ │ ├── ResultadoHashDTO.cs │ │ │ └── UsuarioDTO.cs │ │ ├── Datos │ │ │ └── ApplicationDbContext.cs │ │ ├── Entidades │ │ │ ├── Autor.cs │ │ │ ├── AutorLibro.cs │ │ │ ├── Comentario.cs │ │ │ ├── Error.cs │ │ │ ├── Libro.cs │ │ │ └── Usuario.cs │ │ ├── Migrations │ │ │ ├── 20250105212827_TablaAutores.Designer.cs │ │ │ ├── 20250105212827_TablaAutores.cs │ │ │ ├── 20250105221709_TablaLibros.Designer.cs │ │ │ ├── 20250105221709_TablaLibros.cs │ │ │ ├── 20250115181300_ConfiguracionLongitudColumnas.Designer.cs │ │ │ ├── 20250115181300_ConfiguracionLongitudColumnas.cs │ │ │ ├── 20250115183955_NuevasColumnasAutores.Designer.cs │ │ │ ├── 20250115183955_NuevasColumnasAutores.cs │ │ │ ├── 20250115203625_TablaComentarios.Designer.cs │ │ │ ├── 20250115203625_TablaComentarios.cs │ │ │ ├── 20250115211540_TablaAutoresLibros.Designer.cs │ │ │ ├── 20250115211540_TablaAutoresLibros.cs │ │ │ ├── 20250127201731_SistemaDeUsuarios.Designer.cs │ │ │ ├── 20250127201731_SistemaDeUsuarios.cs │ │ │ ├── 20250128120124_ComentarioUsuario.Designer.cs │ │ │ ├── 20250128120124_ComentarioUsuario.cs │ │ │ ├── 20250128133354_UsuarioFechaNacimiento.Designer.cs │ │ │ ├── 20250128133354_UsuarioFechaNacimiento.cs │ │ │ ├── 20250207004428_AutorFoto.Designer.cs │ │ │ ├── 20250207004428_AutorFoto.cs │ │ │ ├── 20250207125723_ComentariosBorradoLogico.Designer.cs │ │ │ ├── 20250207125723_ComentariosBorradoLogico.cs │ │ │ ├── 20250207144632_TablaErrores.Designer.cs │ │ │ ├── 20250207144632_TablaErrores.cs │ │ │ └── ApplicationDbContextModelSnapshot.cs │ │ ├── Program.cs │ │ ├── Properties │ │ │ └── launchSettings.json │ │ ├── Servicios │ │ │ ├── AlmacenadorArchivosAzure.cs │ │ │ ├── AlmacenadorArchivosLocal.cs │ │ │ ├── IAlmacenadorArchivos.cs │ │ │ ├── IServiciosUsuarios.cs │ │ │ ├── ServiciosUsuarios.cs │ │ │ └── V1 │ │ │ │ ├── GeneradorEnlaces.cs │ │ │ │ ├── IGeneradorEnlaces.cs │ │ │ │ ├── IServicioAutores.cs │ │ │ │ └── ServicioAutores.cs │ │ ├── Swagger │ │ │ ├── ConvencionAgrupaPorVersion.cs │ │ │ └── FiltroAutorizacion.cs │ │ ├── Utilidades │ │ │ ├── AutoMapperProfiles.cs │ │ │ ├── FiltroValidacionLibro.cs │ │ │ ├── HATEOASFilterAttribute.cs │ │ │ ├── HttpContextExtensions.cs │ │ │ ├── IQueryableExtensions.cs │ │ │ ├── ModelStateDictionaryExtensions.cs │ │ │ └── V1 │ │ │ │ ├── HATEOASAutorAttribute.cs │ │ │ │ └── HATEOASAutoresAttribute.cs │ │ ├── Validaciones │ │ │ └── PrimeraLetraMayusculaAttribute.cs │ │ ├── appsettings.Development.json │ │ └── appsettings.json │ └── BibliotecaAPITests │ │ ├── BibliotecaAPITests.csproj │ │ ├── MSTestSettings.cs │ │ ├── Properties │ │ └── launchSettings.json │ │ ├── PruebasDeIntegracion │ │ └── Controllers │ │ │ └── V1 │ │ │ ├── AutoresControllerPruebas.cs │ │ │ ├── ComentariosControllerPruebas.cs │ │ │ └── LibrosControllerPruebas.cs │ │ ├── PruebasUnitarias │ │ ├── Controllers │ │ │ └── V1 │ │ │ │ ├── AutoresControllerPruebas.cs │ │ │ │ ├── LibrosControllerPruebas.cs │ │ │ │ └── UsuariosControllerPruebas.cs │ │ ├── Servicios │ │ │ └── ServiciosUsuariosPruebas.cs │ │ └── Validaciones │ │ │ └── PrimeraLetraMayusculaAttributePruebas.cs │ │ └── Utilidades │ │ ├── AllowAnonymousHandler.cs │ │ ├── BasePruebas.cs │ │ ├── Dobles │ │ └── OutputCacheStoreFalso.cs │ │ └── UsuarioFalsoFiltro.cs │ └── Inicio │ ├── BibliotecaAPI.sln │ └── BibliotecaAPI │ ├── BibliotecaAPI.csproj │ ├── BibliotecaAPI.sln │ ├── Controllers │ ├── V1 │ │ ├── AutoresColeccionController.cs │ │ ├── AutoresController.cs │ │ ├── ComentariosController.cs │ │ ├── LibrosController.cs │ │ ├── RootController.cs │ │ └── UsuariosController.cs │ └── V2 │ │ ├── AutoresColeccionController.cs │ │ ├── AutoresController.cs │ │ ├── ComentariosController.cs │ │ ├── LibrosController.cs │ │ └── UsuariosController.cs │ ├── DTOs │ ├── ActualizarUsuarioDTO.cs │ ├── AutorConLibrosDTO.cs │ ├── AutorCreacionDTO.cs │ ├── AutorCreacionDTOConFoto.cs │ ├── AutorDTO.cs │ ├── AutorFiltroDTO.cs │ ├── AutorPatchDTO.cs │ ├── ColeccionDeRecursosDTO.cs │ ├── ComentarioCreacionDTO.cs │ ├── ComentarioDTO.cs │ ├── ComentarioPatchDTO.cs │ ├── CredencialesUsuarioDTO.cs │ ├── DatosHATEOASDTO.cs │ ├── EditarClaimDTO.cs │ ├── LibroConAutorDTO.cs │ ├── LibroCreacionDTO.cs │ ├── LibroDTO.cs │ ├── PaginacionDTO.cs │ ├── RecursoDTO.cs │ ├── RespuestaAutenticacionDTO.cs │ ├── ResultadoHashDTO.cs │ └── UsuarioDTO.cs │ ├── Datos │ └── ApplicationDbContext.cs │ ├── Entidades │ ├── Autor.cs │ ├── AutorLibro.cs │ ├── Comentario.cs │ ├── Error.cs │ ├── Libro.cs │ └── Usuario.cs │ ├── Migrations │ ├── 20250105212827_TablaAutores.Designer.cs │ ├── 20250105212827_TablaAutores.cs │ ├── 20250105221709_TablaLibros.Designer.cs │ ├── 20250105221709_TablaLibros.cs │ ├── 20250115181300_ConfiguracionLongitudColumnas.Designer.cs │ ├── 20250115181300_ConfiguracionLongitudColumnas.cs │ ├── 20250115183955_NuevasColumnasAutores.Designer.cs │ ├── 20250115183955_NuevasColumnasAutores.cs │ ├── 20250115203625_TablaComentarios.Designer.cs │ ├── 20250115203625_TablaComentarios.cs │ ├── 20250115211540_TablaAutoresLibros.Designer.cs │ ├── 20250115211540_TablaAutoresLibros.cs │ ├── 20250127201731_SistemaDeUsuarios.Designer.cs │ ├── 20250127201731_SistemaDeUsuarios.cs │ ├── 20250128120124_ComentarioUsuario.Designer.cs │ ├── 20250128120124_ComentarioUsuario.cs │ ├── 20250128133354_UsuarioFechaNacimiento.Designer.cs │ ├── 20250128133354_UsuarioFechaNacimiento.cs │ ├── 20250207004428_AutorFoto.Designer.cs │ ├── 20250207004428_AutorFoto.cs │ ├── 20250207125723_ComentariosBorradoLogico.Designer.cs │ ├── 20250207125723_ComentariosBorradoLogico.cs │ ├── 20250207144632_TablaErrores.Designer.cs │ ├── 20250207144632_TablaErrores.cs │ └── ApplicationDbContextModelSnapshot.cs │ ├── Program.cs │ ├── Properties │ └── launchSettings.json │ ├── Servicios │ ├── AlmacenadorArchivosAzure.cs │ ├── AlmacenadorArchivosLocal.cs │ ├── IAlmacenadorArchivos.cs │ ├── IServiciosUsuarios.cs │ ├── ServiciosUsuarios.cs │ └── V1 │ │ ├── GeneradorEnlaces.cs │ │ ├── IGeneradorEnlaces.cs │ │ ├── IServicioAutores.cs │ │ └── ServicioAutores.cs │ ├── Swagger │ ├── ConvencionAgrupaPorVersion.cs │ └── FiltroAutorizacion.cs │ ├── Utilidades │ ├── AutoMapperProfiles.cs │ ├── FiltroAgregarCabecerasAttribute.cs │ ├── FiltroTiempoEjecucion.cs │ ├── FiltroValidacionLibro.cs │ ├── HATEOASFilterAttribute.cs │ ├── HttpContextExtensions.cs │ ├── IQueryableExtensions.cs │ ├── MiFiltroDeAccion.cs │ ├── ModelStateDictionaryExtensions.cs │ └── V1 │ │ ├── HATEOASAutorAttribute.cs │ │ └── HATEOASAutoresAttribute.cs │ ├── Validaciones │ └── PrimeraLetraMayusculaAttribute.cs │ ├── appsettings.Development.json │ └── appsettings.json └── README.md /ASP.NET Core 2.2/Modulo 10 - Despliegues/WebApiModulo10/WebApiModulo10/appsettings.Development.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Debug", 5 | "System": "Information", 6 | "Microsoft": "Information" 7 | } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /ASP.NET Core 2.2/Modulo 10 - Despliegues/WebApiModulo10/WebApiModulo10/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "connectionStrings": { 3 | "defaultConnection": "Data Source=(localDb)\\MSSQLLocalDb;Initial Catalog=WebApi_Modulo10;Integrated Security=True" 4 | }, 5 | "Logging": { 6 | "LogLevel": { 7 | "Default": "Warning" 8 | } 9 | }, 10 | "AllowedHosts": "*" 11 | } 12 | -------------------------------------------------------------------------------- /ASP.NET Core 2.2/Modulo 3 - Nuestro Primer Web API/MiPrimerWebApiM3/MiPrimerWebApiM3/appsettings.Development.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Debug", 5 | "System": "Information", 6 | "Microsoft": "Information" 7 | } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /ASP.NET Core 2.2/Modulo 3 - Nuestro Primer Web API/MiPrimerWebApiM3/MiPrimerWebApiM3/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "connectionStrings": { 3 | "DefaultConnection": "Data Source=(localdb)\\mssqllocaldb;Initial Catalog=MiPrimerWebApiM3DB;Integrated Security=True" 4 | }, 5 | "Logging": { 6 | "LogLevel": { 7 | "Default": "Warning" 8 | } 9 | }, 10 | "AllowedHosts": "*" 11 | } 12 | -------------------------------------------------------------------------------- /ASP.NET Core 2.2/Modulo 4 - Fundamentos de ASP.NET Core/WebApiModulo4/WebApiModulo4/Services/IClaseB.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Threading.Tasks; 5 | 6 | namespace WebApiModulo4.Services 7 | { 8 | public interface IClaseB 9 | { 10 | void HacerAlgo(); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /ASP.NET Core 2.2/Modulo 4 - Fundamentos de ASP.NET Core/WebApiModulo4/WebApiModulo4/appsettings.Development.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Debug", 5 | "System": "Information", 6 | "Microsoft": "Information" 7 | } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /ASP.NET Core 2.2/Modulo 4 - Fundamentos de ASP.NET Core/WebApiModulo4/WebApiModulo4/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "connectionStrings": { 3 | "DefaultConnection": "Data Source=(localdb)\\mssqllocaldb;Initial Catalog=WebApi2_2_Modulo4;Integrated Security=True" 4 | }, 5 | "Logging": { 6 | "LogLevel": { 7 | "Default": "Warning" 8 | } 9 | }, 10 | "AllowedHosts": "*" 11 | } 12 | -------------------------------------------------------------------------------- /ASP.NET Core 2.2/Modulo 5 - Manipulando Recursos/WebApiModulo5/WebApiModulo5/appsettings.Development.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Debug", 5 | "System": "Information", 6 | "Microsoft": "Information" 7 | } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /ASP.NET Core 2.2/Modulo 5 - Manipulando Recursos/WebApiModulo5/WebApiModulo5/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "ConnectionStrings": { 3 | "defaultConnection": "Data Source=(localdb)\\mssqllocaldb;Initial Catalog=WebApi2_2_Modulo5;Integrated Security=True" 4 | }, 5 | "Logging": { 6 | "LogLevel": { 7 | "Default": "Warning" 8 | } 9 | }, 10 | "AllowedHosts": "*" 11 | } 12 | -------------------------------------------------------------------------------- /ASP.NET Core 2.2/Modulo 6 - Configuraciones/WebApiModulo6/WebApiModulo6/appsettings.Development.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gavilanch/CursoRESTfulAPIsASPNETCore/5e7ed70f9ab901647eec5bc29e4556676f9a2a4b/ASP.NET Core 2.2/Modulo 6 - Configuraciones/WebApiModulo6/WebApiModulo6/appsettings.Development.json -------------------------------------------------------------------------------- /ASP.NET Core 2.2/Modulo 6 - Configuraciones/WebApiModulo6/WebApiModulo6/appsettings.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gavilanch/CursoRESTfulAPIsASPNETCore/5e7ed70f9ab901647eec5bc29e4556676f9a2a4b/ASP.NET Core 2.2/Modulo 6 - Configuraciones/WebApiModulo6/WebApiModulo6/appsettings.json -------------------------------------------------------------------------------- /ASP.NET Core 2.2/Modulo 7 - Seguridad/WebApiModulo7/WebApiModulo7/Models/ApplicationUser.cs: -------------------------------------------------------------------------------- 1 | using Microsoft.AspNetCore.Identity; 2 | using System; 3 | using System.Collections.Generic; 4 | using System.Linq; 5 | using System.Threading.Tasks; 6 | 7 | namespace WebApiModulo7.Models 8 | { 9 | public class ApplicationUser: IdentityUser 10 | { 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /ASP.NET Core 2.2/Modulo 7 - Seguridad/WebApiModulo7/WebApiModulo7/Models/HashResult.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Threading.Tasks; 5 | 6 | namespace WebApiModulo7.Models 7 | { 8 | public class HashResult 9 | { 10 | public string Hash { get; set; } 11 | public byte[] Salt { get; set; } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /ASP.NET Core 2.2/Modulo 7 - Seguridad/WebApiModulo7/WebApiModulo7/Models/UserInfo.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Threading.Tasks; 5 | 6 | namespace WebApiModulo7.Models 7 | { 8 | public class UserInfo 9 | { 10 | public string Email { get; set; } 11 | public string Password { get; set; } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /ASP.NET Core 2.2/Modulo 7 - Seguridad/WebApiModulo7/WebApiModulo7/Models/UserToken.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Threading.Tasks; 5 | 6 | namespace WebApiModulo7.Models 7 | { 8 | public class UserToken 9 | { 10 | public string Token { get; set; } 11 | public DateTime Expiration { get; set; } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /ASP.NET Core 2.2/Modulo 7 - Seguridad/WebApiModulo7/WebApiModulo7/appsettings.Development.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Debug", 5 | "System": "Information", 6 | "Microsoft": "Information" 7 | } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /ASP.NET Core 2.2/Modulo 8 - Escenarios Avanzados/WebApiModulo8/WebApiModulo8/Models/Recurso.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Threading.Tasks; 5 | 6 | namespace WebApiModulo8.Models 7 | { 8 | public class Recurso 9 | { 10 | public List Enlaces { get; set; } = new List(); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /ASP.NET Core 2.2/Modulo 8 - Escenarios Avanzados/WebApiModulo8/WebApiModulo8/appsettings.Development.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Debug", 5 | "System": "Information", 6 | "Microsoft": "Information" 7 | } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /ASP.NET Core 2.2/Modulo 8 - Escenarios Avanzados/WebApiModulo8/WebApiModulo8/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "ConnectionStrings": { 3 | "defaultConnection": "Data Source=(localdb)\\mssqllocaldb;Initial Catalog=WebApi2_2_Modulo8;Integrated Security=True" 4 | }, 5 | "Logging": { 6 | "LogLevel": { 7 | "Default": "Warning" 8 | } 9 | }, 10 | "AllowedHosts": "*" 11 | } 12 | -------------------------------------------------------------------------------- /ASP.NET Core 2.2/Modulo 9 - Pruebas Automaticas/Introduccion/Introduccion/Entities/Cuenta.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace Introduccion.Entities 6 | { 7 | public class Cuenta 8 | { 9 | public decimal Fondos { get; set; } 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /ASP.NET Core 2.2/Modulo 9 - Pruebas Automaticas/Introduccion/Introduccion/Introduccion.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Exe 5 | netcoreapp2.2 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /ASP.NET Core 2.2/Modulo 9 - Pruebas Automaticas/Introduccion/Introduccion/Program.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Introduccion 4 | { 5 | class Program 6 | { 7 | static void Main(string[] args) 8 | { 9 | Console.WriteLine("Hello World!"); 10 | } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /ASP.NET Core 2.2/Modulo 9 - Pruebas Automaticas/Introduccion/ProyectoPruebas/TransferenciasTestsSinMocks.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gavilanch/CursoRESTfulAPIsASPNETCore/5e7ed70f9ab901647eec5bc29e4556676f9a2a4b/ASP.NET Core 2.2/Modulo 9 - Pruebas Automaticas/Introduccion/ProyectoPruebas/TransferenciasTestsSinMocks.cs -------------------------------------------------------------------------------- /ASP.NET Core 2.2/Modulo 9 - Pruebas Automaticas/WebApiModulo9/WebApiModulo9/Services/IRepositorioAutores.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Threading.Tasks; 5 | using WebApiModulo9.Entities; 6 | 7 | namespace WebApiModulo9.Services 8 | { 9 | public interface IRepositorioAutores 10 | { 11 | Autor ObtenerPorId(int id); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /ASP.NET Core 2.2/Modulo 9 - Pruebas Automaticas/WebApiModulo9/WebApiModulo9/appsettings.Development.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Debug", 5 | "System": "Information", 6 | "Microsoft": "Information" 7 | } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /ASP.NET Core 2.2/Modulo 9 - Pruebas Automaticas/WebApiModulo9/WebApiModulo9/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "ConnectionStrings": { 3 | "defaultConnection": "Data Source=(localdb)\\mssqllocaldb;Initial Catalog=WebApi2_2_Modulo9;Integrated Security=True" 4 | }, 5 | "Logging": { 6 | "LogLevel": { 7 | "Default": "Warning" 8 | } 9 | }, 10 | "AllowedHosts": "*" 11 | } 12 | -------------------------------------------------------------------------------- /ASP.NET Core 2.2/Modulo 9 - Pruebas Automaticas/WebApiModulo9/WebApiPruebasDeIntegracion/ValuesControllerTests.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gavilanch/CursoRESTfulAPIsASPNETCore/5e7ed70f9ab901647eec5bc29e4556676f9a2a4b/ASP.NET Core 2.2/Modulo 9 - Pruebas Automaticas/WebApiModulo9/WebApiPruebasDeIntegracion/ValuesControllerTests.cs -------------------------------------------------------------------------------- /ASP.NET Core 2.2/Modulo 9 - Pruebas Automaticas/WebApiModulo9/WebApiPruebasUnitarias/AutoresControllerTests.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gavilanch/CursoRESTfulAPIsASPNETCore/5e7ed70f9ab901647eec5bc29e4556676f9a2a4b/ASP.NET Core 2.2/Modulo 9 - Pruebas Automaticas/WebApiModulo9/WebApiPruebasUnitarias/AutoresControllerTests.cs -------------------------------------------------------------------------------- /ASP.NET Core 3.0/Modulo 10 - Despliegues/WebApiModulo10/WebApiModulo10/appsettings.Development.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Debug", 5 | "System": "Information", 6 | "Microsoft": "Information" 7 | } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /ASP.NET Core 3.0/Modulo 10 - Despliegues/WebApiModulo10/WebApiModulo10/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "connectionStrings": { 3 | "defaultConnection": "Data Source=(localDb)\\MSSQLLocalDb;Initial Catalog=WebApi_Modulo10;Integrated Security=True" 4 | }, 5 | "Logging": { 6 | "LogLevel": { 7 | "Default": "Warning" 8 | } 9 | }, 10 | "AllowedHosts": "*" 11 | } 12 | -------------------------------------------------------------------------------- /ASP.NET Core 3.0/Modulo 3 - Nuestro Primer Web API/MiPrimerWebApiM3/MiPrimerWebApiM3/appsettings.Development.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Debug", 5 | "System": "Information", 6 | "Microsoft": "Information" 7 | } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /ASP.NET Core 3.0/Modulo 3 - Nuestro Primer Web API/MiPrimerWebApiM3/MiPrimerWebApiM3/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "connectionStrings": { 3 | "DefaultConnection": "Data Source=(localdb)\\mssqllocaldb;Initial Catalog=MiPrimerWebApiM3DB2;Integrated Security=True" 4 | }, 5 | "Logging": { 6 | "LogLevel": { 7 | "Default": "Warning" 8 | } 9 | }, 10 | "AllowedHosts": "*" 11 | } 12 | -------------------------------------------------------------------------------- /ASP.NET Core 3.0/Modulo 4 - Fundamentos de ASP.NET Core/WebApiModulo4/WebApiModulo4/Services/IClaseB.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Threading.Tasks; 5 | 6 | namespace WebApiModulo4.Services 7 | { 8 | public interface IClaseB 9 | { 10 | void HacerAlgo(); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /ASP.NET Core 3.0/Modulo 4 - Fundamentos de ASP.NET Core/WebApiModulo4/WebApiModulo4/appsettings.Development.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Debug", 5 | "System": "Information", 6 | "Microsoft": "Information" 7 | } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /ASP.NET Core 3.0/Modulo 4 - Fundamentos de ASP.NET Core/WebApiModulo4/WebApiModulo4/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "connectionStrings": { 3 | "DefaultConnection": "Data Source=(localdb)\\mssqllocaldb;Initial Catalog=WebApi2_2_Modulo4;Integrated Security=True" 4 | }, 5 | "Logging": { 6 | "LogLevel": { 7 | "Default": "Warning" 8 | } 9 | }, 10 | "AllowedHosts": "*" 11 | } 12 | -------------------------------------------------------------------------------- /ASP.NET Core 3.0/Modulo 4 - Fundamentos de ASP.NET Core/hostedService/hostedService/Models/ErrorViewModel.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace hostedService.Models 4 | { 5 | public class ErrorViewModel 6 | { 7 | public string RequestId { get; set; } 8 | 9 | public bool ShowRequestId => !string.IsNullOrEmpty(RequestId); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /ASP.NET Core 3.0/Modulo 4 - Fundamentos de ASP.NET Core/hostedService/hostedService/Models/HostedServiceLog.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Threading.Tasks; 5 | 6 | namespace hostedService.Models 7 | { 8 | public class HostedServiceLog 9 | { 10 | public int Id { get; set; } 11 | public string Message { get; set; } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /ASP.NET Core 3.0/Modulo 4 - Fundamentos de ASP.NET Core/hostedService/hostedService/Startup.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gavilanch/CursoRESTfulAPIsASPNETCore/5e7ed70f9ab901647eec5bc29e4556676f9a2a4b/ASP.NET Core 3.0/Modulo 4 - Fundamentos de ASP.NET Core/hostedService/hostedService/Startup.cs -------------------------------------------------------------------------------- /ASP.NET Core 3.0/Modulo 4 - Fundamentos de ASP.NET Core/hostedService/hostedService/Views/Home/Index.cshtml: -------------------------------------------------------------------------------- 1 | @{ 2 | ViewData["Title"] = "Home Page"; 3 | } 4 | 5 |
6 |

Welcome

7 |

Learn about building Web apps with ASP.NET Core.

8 |
9 | -------------------------------------------------------------------------------- /ASP.NET Core 3.0/Modulo 4 - Fundamentos de ASP.NET Core/hostedService/hostedService/Views/Home/Privacy.cshtml: -------------------------------------------------------------------------------- 1 | @{ 2 | ViewData["Title"] = "Privacy Policy"; 3 | } 4 |

@ViewData["Title"]

5 | 6 |

Use this page to detail your site's privacy policy.

7 | -------------------------------------------------------------------------------- /ASP.NET Core 3.0/Modulo 4 - Fundamentos de ASP.NET Core/hostedService/hostedService/Views/Shared/_ValidationScriptsPartial.cshtml: -------------------------------------------------------------------------------- 1 |  2 | 3 | -------------------------------------------------------------------------------- /ASP.NET Core 3.0/Modulo 4 - Fundamentos de ASP.NET Core/hostedService/hostedService/Views/_ViewImports.cshtml: -------------------------------------------------------------------------------- 1 | @using hostedService 2 | @using hostedService.Models 3 | @addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers 4 | -------------------------------------------------------------------------------- /ASP.NET Core 3.0/Modulo 4 - Fundamentos de ASP.NET Core/hostedService/hostedService/Views/_ViewStart.cshtml: -------------------------------------------------------------------------------- 1 | @{ 2 | Layout = "_Layout"; 3 | } 4 | -------------------------------------------------------------------------------- /ASP.NET Core 3.0/Modulo 4 - Fundamentos de ASP.NET Core/hostedService/hostedService/appsettings.Development.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Information", 5 | "Microsoft": "Warning", 6 | "Microsoft.Hosting.Lifetime": "Information" 7 | } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /ASP.NET Core 3.0/Modulo 4 - Fundamentos de ASP.NET Core/hostedService/hostedService/wwwroot/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gavilanch/CursoRESTfulAPIsASPNETCore/5e7ed70f9ab901647eec5bc29e4556676f9a2a4b/ASP.NET Core 3.0/Modulo 4 - Fundamentos de ASP.NET Core/hostedService/hostedService/wwwroot/favicon.ico -------------------------------------------------------------------------------- /ASP.NET Core 3.0/Modulo 4 - Fundamentos de ASP.NET Core/hostedService/hostedService/wwwroot/js/site.js: -------------------------------------------------------------------------------- 1 | // Please see documentation at https://docs.microsoft.com/aspnet/core/client-side/bundling-and-minification 2 | // for details on configuring this project to bundle and minify static web assets. 3 | 4 | // Write your JavaScript code. 5 | -------------------------------------------------------------------------------- /ASP.NET Core 3.0/Modulo 5 - Manipulando Recursos/WebApiModulo5/WebApiModulo5/appsettings.Development.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Debug", 5 | "System": "Information", 6 | "Microsoft": "Information" 7 | } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /ASP.NET Core 3.0/Modulo 5 - Manipulando Recursos/WebApiModulo5/WebApiModulo5/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "ConnectionStrings": { 3 | "defaultConnection": "Data Source=(localdb)\\mssqllocaldb;Initial Catalog=WebApi2_2_Modulo5;Integrated Security=True" 4 | }, 5 | "Logging": { 6 | "LogLevel": { 7 | "Default": "Warning" 8 | } 9 | }, 10 | "AllowedHosts": "*" 11 | } 12 | -------------------------------------------------------------------------------- /ASP.NET Core 3.0/Modulo 6 - Configuraciones/WebApiModulo6/WebApiModulo6/appsettings.Development.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gavilanch/CursoRESTfulAPIsASPNETCore/5e7ed70f9ab901647eec5bc29e4556676f9a2a4b/ASP.NET Core 3.0/Modulo 6 - Configuraciones/WebApiModulo6/WebApiModulo6/appsettings.Development.json -------------------------------------------------------------------------------- /ASP.NET Core 3.0/Modulo 6 - Configuraciones/WebApiModulo6/WebApiModulo6/appsettings.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gavilanch/CursoRESTfulAPIsASPNETCore/5e7ed70f9ab901647eec5bc29e4556676f9a2a4b/ASP.NET Core 3.0/Modulo 6 - Configuraciones/WebApiModulo6/WebApiModulo6/appsettings.json -------------------------------------------------------------------------------- /ASP.NET Core 3.0/Modulo 7 - Seguridad/WebApiModulo7/WebApiModulo7/Models/ApplicationUser.cs: -------------------------------------------------------------------------------- 1 | using Microsoft.AspNetCore.Identity; 2 | using System; 3 | using System.Collections.Generic; 4 | using System.Linq; 5 | using System.Threading.Tasks; 6 | 7 | namespace WebApiModulo7.Models 8 | { 9 | public class ApplicationUser: IdentityUser 10 | { 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /ASP.NET Core 3.0/Modulo 7 - Seguridad/WebApiModulo7/WebApiModulo7/Models/HashResult.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Threading.Tasks; 5 | 6 | namespace WebApiModulo7.Models 7 | { 8 | public class HashResult 9 | { 10 | public string Hash { get; set; } 11 | public byte[] Salt { get; set; } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /ASP.NET Core 3.0/Modulo 7 - Seguridad/WebApiModulo7/WebApiModulo7/Models/UserInfo.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Threading.Tasks; 5 | 6 | namespace WebApiModulo7.Models 7 | { 8 | public class UserInfo 9 | { 10 | public string Email { get; set; } 11 | public string Password { get; set; } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /ASP.NET Core 3.0/Modulo 7 - Seguridad/WebApiModulo7/WebApiModulo7/Models/UserToken.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Threading.Tasks; 5 | 6 | namespace WebApiModulo7.Models 7 | { 8 | public class UserToken 9 | { 10 | public string Token { get; set; } 11 | public DateTime Expiration { get; set; } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /ASP.NET Core 3.0/Modulo 7 - Seguridad/WebApiModulo7/WebApiModulo7/appsettings.Development.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Debug", 5 | "System": "Information", 6 | "Microsoft": "Information" 7 | } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /ASP.NET Core 3.0/Modulo 8 - Escenarios Avanzados/WebApiModulo8/WebApiModulo8/Models/Recurso.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Threading.Tasks; 5 | 6 | namespace WebApiModulo8.Models 7 | { 8 | public class Recurso 9 | { 10 | public List Enlaces { get; set; } = new List(); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /ASP.NET Core 3.0/Modulo 8 - Escenarios Avanzados/WebApiModulo8/WebApiModulo8/appsettings.Development.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Debug", 5 | "System": "Information", 6 | "Microsoft": "Information" 7 | } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /ASP.NET Core 3.0/Modulo 8 - Escenarios Avanzados/WebApiModulo8/WebApiModulo8/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "ConnectionStrings": { 3 | "defaultConnection": "Data Source=(localdb)\\mssqllocaldb;Initial Catalog=WebApi2_2_Modulo8;Integrated Security=True" 4 | }, 5 | "Logging": { 6 | "LogLevel": { 7 | "Default": "Warning" 8 | } 9 | }, 10 | "AllowedHosts": "*" 11 | } 12 | -------------------------------------------------------------------------------- /ASP.NET Core 3.0/Modulo 9 - Pruebas Automaticas/Introduccion/Introduccion/Entities/Cuenta.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace Introduccion.Entities 6 | { 7 | public class Cuenta 8 | { 9 | public decimal Fondos { get; set; } 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /ASP.NET Core 3.0/Modulo 9 - Pruebas Automaticas/Introduccion/Introduccion/Introduccion.csproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | Exe 5 | netcoreapp3.0 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /ASP.NET Core 3.0/Modulo 9 - Pruebas Automaticas/Introduccion/Introduccion/Program.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Introduccion 4 | { 5 | class Program 6 | { 7 | static void Main(string[] args) 8 | { 9 | Console.WriteLine("Hello World!"); 10 | } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /ASP.NET Core 3.0/Modulo 9 - Pruebas Automaticas/Introduccion/ProyectoPruebas/TransferenciasTestsSinMocks.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gavilanch/CursoRESTfulAPIsASPNETCore/5e7ed70f9ab901647eec5bc29e4556676f9a2a4b/ASP.NET Core 3.0/Modulo 9 - Pruebas Automaticas/Introduccion/ProyectoPruebas/TransferenciasTestsSinMocks.cs -------------------------------------------------------------------------------- /ASP.NET Core 3.0/Modulo 9 - Pruebas Automaticas/WebApiModulo9/WebApiModulo9/Services/IRepositorioAutores.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Threading.Tasks; 5 | using WebApiModulo9.Entities; 6 | 7 | namespace WebApiModulo9.Services 8 | { 9 | public interface IRepositorioAutores 10 | { 11 | Autor ObtenerPorId(int id); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /ASP.NET Core 3.0/Modulo 9 - Pruebas Automaticas/WebApiModulo9/WebApiModulo9/appsettings.Development.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Debug", 5 | "System": "Information", 6 | "Microsoft": "Information" 7 | } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /ASP.NET Core 3.0/Modulo 9 - Pruebas Automaticas/WebApiModulo9/WebApiModulo9/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "ConnectionStrings": { 3 | "defaultConnection": "Data Source=(localdb)\\mssqllocaldb;Initial Catalog=WebApi2_2_Modulo9;Integrated Security=True" 4 | }, 5 | "Logging": { 6 | "LogLevel": { 7 | "Default": "Warning" 8 | } 9 | }, 10 | "AllowedHosts": "*" 11 | } 12 | -------------------------------------------------------------------------------- /ASP.NET Core 3.0/Modulo 9 - Pruebas Automaticas/WebApiModulo9/WebApiPruebasDeIntegracion/ValuesControllerTests.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gavilanch/CursoRESTfulAPIsASPNETCore/5e7ed70f9ab901647eec5bc29e4556676f9a2a4b/ASP.NET Core 3.0/Modulo 9 - Pruebas Automaticas/WebApiModulo9/WebApiPruebasDeIntegracion/ValuesControllerTests.cs -------------------------------------------------------------------------------- /ASP.NET Core 3.0/Modulo 9 - Pruebas Automaticas/WebApiModulo9/WebApiPruebasUnitarias/AutoresControllerTests.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gavilanch/CursoRESTfulAPIsASPNETCore/5e7ed70f9ab901647eec5bc29e4556676f9a2a4b/ASP.NET Core 3.0/Modulo 9 - Pruebas Automaticas/WebApiModulo9/WebApiPruebasUnitarias/AutoresControllerTests.cs -------------------------------------------------------------------------------- /ASP.NET Core 3.1/Modulo 10 - Despliegues/WebApiModulo10/WebApiModulo10/appsettings.Development.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Debug", 5 | "System": "Information", 6 | "Microsoft": "Information" 7 | } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /ASP.NET Core 3.1/Modulo 10 - Despliegues/WebApiModulo10/WebApiModulo10/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "connectionStrings": { 3 | "defaultConnection": "Data Source=(localDb)\\MSSQLLocalDb;Initial Catalog=WebApi_Modulo10;Integrated Security=True" 4 | }, 5 | "Logging": { 6 | "LogLevel": { 7 | "Default": "Warning" 8 | } 9 | }, 10 | "AllowedHosts": "*" 11 | } 12 | -------------------------------------------------------------------------------- /ASP.NET Core 3.1/Modulo 11 - Proyecto Final/PeliculasAPI/PeliculasAPI/DTOs/EditarRolDTO.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Threading.Tasks; 5 | 6 | namespace PeliculasAPI.DTOs 7 | { 8 | public class EditarRolDTO 9 | { 10 | public string UsuarioId { get; set; } 11 | public string NombreRol { get; set; } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /ASP.NET Core 3.1/Modulo 11 - Proyecto Final/PeliculasAPI/PeliculasAPI/DTOs/GeneroDTO.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.ComponentModel.DataAnnotations; 4 | using System.Linq; 5 | using System.Threading.Tasks; 6 | 7 | namespace PeliculasAPI.DTOs 8 | { 9 | public class GeneroDTO: GeneroCreacionDTO 10 | { 11 | public int Id { get; set; } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /ASP.NET Core 3.1/Modulo 11 - Proyecto Final/PeliculasAPI/PeliculasAPI/DTOs/SalaDeCineCercanoDTO.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Threading.Tasks; 5 | 6 | namespace PeliculasAPI.DTOs 7 | { 8 | public class SalaDeCineCercanoDTO: SalaDeCineDTO 9 | { 10 | public double DistanciaEnMetros { get; set; } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /ASP.NET Core 3.1/Modulo 11 - Proyecto Final/PeliculasAPI/PeliculasAPI/DTOs/UserToken.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Threading.Tasks; 5 | 6 | namespace PeliculasAPI.DTOs 7 | { 8 | public class UserToken 9 | { 10 | public string Token { get; set; } 11 | public DateTime Expiracion { get; set; } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /ASP.NET Core 3.1/Modulo 11 - Proyecto Final/PeliculasAPI/PeliculasAPI/DTOs/UsuarioDTO.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Threading.Tasks; 5 | 6 | namespace PeliculasAPI.DTOs 7 | { 8 | public class UsuarioDTO 9 | { 10 | public string Id { get; set; } 11 | public string Email { get; set; } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /ASP.NET Core 3.1/Modulo 11 - Proyecto Final/PeliculasAPI/PeliculasAPI/Entidades/IId.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Threading.Tasks; 5 | 6 | namespace PeliculasAPI.Entidades 7 | { 8 | public interface IId 9 | { 10 | public int Id { get; set; } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /ASP.NET Core 3.1/Modulo 11 - Proyecto Final/PeliculasAPI/PeliculasAPI/Helpers/CreateMap.cs: -------------------------------------------------------------------------------- 1 | namespace PeliculasAPI.Helpers 2 | { 3 | internal class CreateMap 4 | { 5 | } 6 | } -------------------------------------------------------------------------------- /ASP.NET Core 3.1/Modulo 11 - Proyecto Final/PeliculasAPI/PeliculasAPI/Validaciones/GrupoTipoArchivo.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Threading.Tasks; 5 | 6 | namespace PeliculasAPI.Validaciones 7 | { 8 | public enum GrupoTipoArchivo 9 | { 10 | Imagen 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /ASP.NET Core 3.1/Modulo 11 - Proyecto Final/PeliculasAPI/PeliculasAPI/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Information", 5 | "Microsoft": "Warning", 6 | "Microsoft.Hosting.Lifetime": "Information" 7 | } 8 | }, 9 | "AllowedHosts": "*" 10 | } 11 | -------------------------------------------------------------------------------- /ASP.NET Core 3.1/Modulo 3 - Nuestro Primer Web API/MiPrimerWebApiM3/MiPrimerWebApiM3/appsettings.Development.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Debug", 5 | "System": "Information", 6 | "Microsoft": "Information" 7 | } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /ASP.NET Core 3.1/Modulo 3 - Nuestro Primer Web API/MiPrimerWebApiM3/MiPrimerWebApiM3/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "connectionStrings": { 3 | "DefaultConnection": "Data Source=(localdb)\\mssqllocaldb;Initial Catalog=MiPrimerWebApiM3DB2;Integrated Security=True" 4 | }, 5 | "Logging": { 6 | "LogLevel": { 7 | "Default": "Warning" 8 | } 9 | }, 10 | "AllowedHosts": "*" 11 | } 12 | -------------------------------------------------------------------------------- /ASP.NET Core 3.1/Modulo 4 - Fundamentos de ASP.NET Core/WebApiModulo4/WebApiModulo4/Services/IClaseB.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Threading.Tasks; 5 | 6 | namespace WebApiModulo4.Services 7 | { 8 | public interface IClaseB 9 | { 10 | void HacerAlgo(); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /ASP.NET Core 3.1/Modulo 4 - Fundamentos de ASP.NET Core/WebApiModulo4/WebApiModulo4/appsettings.Development.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Debug", 5 | "System": "Information", 6 | "Microsoft": "Information" 7 | } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /ASP.NET Core 3.1/Modulo 4 - Fundamentos de ASP.NET Core/WebApiModulo4/WebApiModulo4/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "connectionStrings": { 3 | "DefaultConnection": "Data Source=(localdb)\\mssqllocaldb;Initial Catalog=WebApi2_2_Modulo4;Integrated Security=True" 4 | }, 5 | "Logging": { 6 | "LogLevel": { 7 | "Default": "Warning" 8 | } 9 | }, 10 | "AllowedHosts": "*" 11 | } 12 | -------------------------------------------------------------------------------- /ASP.NET Core 3.1/Modulo 4 - Fundamentos de ASP.NET Core/hostedService/hostedService/Models/ErrorViewModel.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace hostedService.Models 4 | { 5 | public class ErrorViewModel 6 | { 7 | public string RequestId { get; set; } 8 | 9 | public bool ShowRequestId => !string.IsNullOrEmpty(RequestId); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /ASP.NET Core 3.1/Modulo 4 - Fundamentos de ASP.NET Core/hostedService/hostedService/Startup.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gavilanch/CursoRESTfulAPIsASPNETCore/5e7ed70f9ab901647eec5bc29e4556676f9a2a4b/ASP.NET Core 3.1/Modulo 4 - Fundamentos de ASP.NET Core/hostedService/hostedService/Startup.cs -------------------------------------------------------------------------------- /ASP.NET Core 3.1/Modulo 4 - Fundamentos de ASP.NET Core/hostedService/hostedService/Views/Home/Index.cshtml: -------------------------------------------------------------------------------- 1 | @{ 2 | ViewData["Title"] = "Home Page"; 3 | } 4 | 5 |
6 |

Welcome

7 |

Learn about building Web apps with ASP.NET Core.

8 |
9 | -------------------------------------------------------------------------------- /ASP.NET Core 3.1/Modulo 4 - Fundamentos de ASP.NET Core/hostedService/hostedService/Views/Home/Privacy.cshtml: -------------------------------------------------------------------------------- 1 | @{ 2 | ViewData["Title"] = "Privacy Policy"; 3 | } 4 |

@ViewData["Title"]

5 | 6 |

Use this page to detail your site's privacy policy.

7 | -------------------------------------------------------------------------------- /ASP.NET Core 3.1/Modulo 4 - Fundamentos de ASP.NET Core/hostedService/hostedService/Views/Shared/_ValidationScriptsPartial.cshtml: -------------------------------------------------------------------------------- 1 |  2 | 3 | -------------------------------------------------------------------------------- /ASP.NET Core 3.1/Modulo 4 - Fundamentos de ASP.NET Core/hostedService/hostedService/Views/_ViewImports.cshtml: -------------------------------------------------------------------------------- 1 | @using hostedService 2 | @using hostedService.Models 3 | @addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers 4 | -------------------------------------------------------------------------------- /ASP.NET Core 3.1/Modulo 4 - Fundamentos de ASP.NET Core/hostedService/hostedService/Views/_ViewStart.cshtml: -------------------------------------------------------------------------------- 1 | @{ 2 | Layout = "_Layout"; 3 | } 4 | -------------------------------------------------------------------------------- /ASP.NET Core 3.1/Modulo 4 - Fundamentos de ASP.NET Core/hostedService/hostedService/appsettings.Development.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Information", 5 | "Microsoft": "Warning", 6 | "Microsoft.Hosting.Lifetime": "Information" 7 | } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /ASP.NET Core 3.1/Modulo 4 - Fundamentos de ASP.NET Core/hostedService/hostedService/wwwroot/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gavilanch/CursoRESTfulAPIsASPNETCore/5e7ed70f9ab901647eec5bc29e4556676f9a2a4b/ASP.NET Core 3.1/Modulo 4 - Fundamentos de ASP.NET Core/hostedService/hostedService/wwwroot/favicon.ico -------------------------------------------------------------------------------- /ASP.NET Core 3.1/Modulo 4 - Fundamentos de ASP.NET Core/hostedService/hostedService/wwwroot/js/site.js: -------------------------------------------------------------------------------- 1 | // Please see documentation at https://docs.microsoft.com/aspnet/core/client-side/bundling-and-minification 2 | // for details on configuring this project to bundle and minify static web assets. 3 | 4 | // Write your JavaScript code. 5 | -------------------------------------------------------------------------------- /ASP.NET Core 3.1/Modulo 5 - Manipulando Recursos/WebApiModulo5/WebApiModulo5/appsettings.Development.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Debug", 5 | "System": "Information", 6 | "Microsoft": "Information" 7 | } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /ASP.NET Core 3.1/Modulo 5 - Manipulando Recursos/WebApiModulo5/WebApiModulo5/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "ConnectionStrings": { 3 | "defaultConnection": "Data Source=(localdb)\\mssqllocaldb;Initial Catalog=WebApi2_2_Modulo5;Integrated Security=True" 4 | }, 5 | "Logging": { 6 | "LogLevel": { 7 | "Default": "Warning" 8 | } 9 | }, 10 | "AllowedHosts": "*" 11 | } 12 | -------------------------------------------------------------------------------- /ASP.NET Core 3.1/Modulo 6 - Configuraciones/WebApiModulo6/WebApiModulo6/appsettings.Development.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gavilanch/CursoRESTfulAPIsASPNETCore/5e7ed70f9ab901647eec5bc29e4556676f9a2a4b/ASP.NET Core 3.1/Modulo 6 - Configuraciones/WebApiModulo6/WebApiModulo6/appsettings.Development.json -------------------------------------------------------------------------------- /ASP.NET Core 3.1/Modulo 6 - Configuraciones/WebApiModulo6/WebApiModulo6/appsettings.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gavilanch/CursoRESTfulAPIsASPNETCore/5e7ed70f9ab901647eec5bc29e4556676f9a2a4b/ASP.NET Core 3.1/Modulo 6 - Configuraciones/WebApiModulo6/WebApiModulo6/appsettings.json -------------------------------------------------------------------------------- /ASP.NET Core 3.1/Modulo 7 - Seguridad/WebApiModulo7/WebApiModulo7/Models/ApplicationUser.cs: -------------------------------------------------------------------------------- 1 | using Microsoft.AspNetCore.Identity; 2 | using System; 3 | using System.Collections.Generic; 4 | using System.Linq; 5 | using System.Threading.Tasks; 6 | 7 | namespace WebApiModulo7.Models 8 | { 9 | public class ApplicationUser: IdentityUser 10 | { 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /ASP.NET Core 3.1/Modulo 7 - Seguridad/WebApiModulo7/WebApiModulo7/Models/HashResult.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Threading.Tasks; 5 | 6 | namespace WebApiModulo7.Models 7 | { 8 | public class HashResult 9 | { 10 | public string Hash { get; set; } 11 | public byte[] Salt { get; set; } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /ASP.NET Core 3.1/Modulo 7 - Seguridad/WebApiModulo7/WebApiModulo7/Models/UserInfo.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Threading.Tasks; 5 | 6 | namespace WebApiModulo7.Models 7 | { 8 | public class UserInfo 9 | { 10 | public string Email { get; set; } 11 | public string Password { get; set; } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /ASP.NET Core 3.1/Modulo 7 - Seguridad/WebApiModulo7/WebApiModulo7/Models/UserToken.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Threading.Tasks; 5 | 6 | namespace WebApiModulo7.Models 7 | { 8 | public class UserToken 9 | { 10 | public string Token { get; set; } 11 | public DateTime Expiration { get; set; } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /ASP.NET Core 3.1/Modulo 7 - Seguridad/WebApiModulo7/WebApiModulo7/appsettings.Development.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Debug", 5 | "System": "Information", 6 | "Microsoft": "Information" 7 | } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /ASP.NET Core 3.1/Modulo 8 - Escenarios Avanzados/WebApiModulo8/WebApiModulo8/Models/Recurso.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Threading.Tasks; 5 | 6 | namespace WebApiModulo8.Models 7 | { 8 | public class Recurso 9 | { 10 | public List Enlaces { get; set; } = new List(); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /ASP.NET Core 3.1/Modulo 8 - Escenarios Avanzados/WebApiModulo8/WebApiModulo8/appsettings.Development.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Debug", 5 | "System": "Information", 6 | "Microsoft": "Information" 7 | } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /ASP.NET Core 3.1/Modulo 8 - Escenarios Avanzados/WebApiModulo8/WebApiModulo8/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "ConnectionStrings": { 3 | "defaultConnection": "Data Source=(localdb)\\mssqllocaldb;Initial Catalog=WebApi2_2_Modulo8;Integrated Security=True" 4 | }, 5 | "Logging": { 6 | "LogLevel": { 7 | "Default": "Warning" 8 | } 9 | }, 10 | "AllowedHosts": "*" 11 | } 12 | -------------------------------------------------------------------------------- /ASP.NET Core 3.1/Modulo 9 - Pruebas Automaticas/Introduccion/Introduccion/Entities/Cuenta.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace Introduccion.Entities 6 | { 7 | public class Cuenta 8 | { 9 | public decimal Fondos { get; set; } 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /ASP.NET Core 3.1/Modulo 9 - Pruebas Automaticas/Introduccion/Introduccion/Introduccion.csproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | Exe 5 | netcoreapp3.1 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /ASP.NET Core 3.1/Modulo 9 - Pruebas Automaticas/Introduccion/Introduccion/Program.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Introduccion 4 | { 5 | class Program 6 | { 7 | static void Main(string[] args) 8 | { 9 | Console.WriteLine("Hello World!"); 10 | } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /ASP.NET Core 3.1/Modulo 9 - Pruebas Automaticas/Introduccion/ProyectoPruebas/TransferenciasTestsSinMocks.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gavilanch/CursoRESTfulAPIsASPNETCore/5e7ed70f9ab901647eec5bc29e4556676f9a2a4b/ASP.NET Core 3.1/Modulo 9 - Pruebas Automaticas/Introduccion/ProyectoPruebas/TransferenciasTestsSinMocks.cs -------------------------------------------------------------------------------- /ASP.NET Core 3.1/Modulo 9 - Pruebas Automaticas/WebApiModulo9/WebApiModulo9/Services/IRepositorioAutores.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Threading.Tasks; 5 | using WebApiModulo9.Entities; 6 | 7 | namespace WebApiModulo9.Services 8 | { 9 | public interface IRepositorioAutores 10 | { 11 | Autor ObtenerPorId(int id); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /ASP.NET Core 3.1/Modulo 9 - Pruebas Automaticas/WebApiModulo9/WebApiModulo9/appsettings.Development.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Debug", 5 | "System": "Information", 6 | "Microsoft": "Information" 7 | } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /ASP.NET Core 3.1/Modulo 9 - Pruebas Automaticas/WebApiModulo9/WebApiModulo9/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "ConnectionStrings": { 3 | "defaultConnection": "Data Source=(localdb)\\mssqllocaldb;Initial Catalog=WebApi2_2_Modulo9;Integrated Security=True" 4 | }, 5 | "Logging": { 6 | "LogLevel": { 7 | "Default": "Warning" 8 | } 9 | }, 10 | "AllowedHosts": "*" 11 | } 12 | -------------------------------------------------------------------------------- /ASP.NET Core 3.1/Modulo 9 - Pruebas Automaticas/WebApiModulo9/WebApiPruebasDeIntegracion/ValuesControllerTests.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gavilanch/CursoRESTfulAPIsASPNETCore/5e7ed70f9ab901647eec5bc29e4556676f9a2a4b/ASP.NET Core 3.1/Modulo 9 - Pruebas Automaticas/WebApiModulo9/WebApiPruebasDeIntegracion/ValuesControllerTests.cs -------------------------------------------------------------------------------- /ASP.NET Core 3.1/Modulo 9 - Pruebas Automaticas/WebApiModulo9/WebApiPruebasUnitarias/AutoresControllerTests.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gavilanch/CursoRESTfulAPIsASPNETCore/5e7ed70f9ab901647eec5bc29e4556676f9a2a4b/ASP.NET Core 3.1/Modulo 9 - Pruebas Automaticas/WebApiModulo9/WebApiPruebasUnitarias/AutoresControllerTests.cs -------------------------------------------------------------------------------- /ASP.NET Core 6/Modulo 10 - Despliegues/WebAPIAutores/WebAPIAutores.Tests/PruebasUnitarias/PrimeraLetraMayusculaAttributeTests.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gavilanch/CursoRESTfulAPIsASPNETCore/5e7ed70f9ab901647eec5bc29e4556676f9a2a4b/ASP.NET Core 6/Modulo 10 - Despliegues/WebAPIAutores/WebAPIAutores.Tests/PruebasUnitarias/PrimeraLetraMayusculaAttributeTests.cs -------------------------------------------------------------------------------- /ASP.NET Core 6/Modulo 10 - Despliegues/WebAPIAutores/WebAPIAutores/DTOs/AutorDTO.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Threading.Tasks; 5 | 6 | namespace WebAPIAutores.DTOs 7 | { 8 | public class AutorDTO: Recurso 9 | { 10 | public int Id { get; set; } 11 | public string Nombre { get; set; } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /ASP.NET Core 6/Modulo 10 - Despliegues/WebAPIAutores/WebAPIAutores/DTOs/AutorDTOConLibros.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Threading.Tasks; 5 | 6 | namespace WebAPIAutores.DTOs 7 | { 8 | public class AutorDTOConLibros: AutorDTO 9 | { 10 | public List Libros { get; set; } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /ASP.NET Core 6/Modulo 10 - Despliegues/WebAPIAutores/WebAPIAutores/DTOs/ColeccionDeRecursos.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Threading.Tasks; 5 | 6 | namespace WebAPIAutores.DTOs 7 | { 8 | public class ColeccionDeRecursos: Recurso where T: Recurso 9 | { 10 | public List Valores { get; set; } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /ASP.NET Core 6/Modulo 10 - Despliegues/WebAPIAutores/WebAPIAutores/DTOs/ComentarioCreacionDTO.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Threading.Tasks; 5 | 6 | namespace WebAPIAutores.DTOs 7 | { 8 | public class ComentarioCreacionDTO 9 | { 10 | public string Contenido { get; set; } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /ASP.NET Core 6/Modulo 10 - Despliegues/WebAPIAutores/WebAPIAutores/DTOs/ComentarioDTO.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Threading.Tasks; 5 | 6 | namespace WebAPIAutores.DTOs 7 | { 8 | public class ComentarioDTO 9 | { 10 | public int Id { get; set; } 11 | public string Contenido { get; set; } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /ASP.NET Core 6/Modulo 10 - Despliegues/WebAPIAutores/WebAPIAutores/DTOs/LibroDTOConAutores.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Threading.Tasks; 5 | 6 | namespace WebAPIAutores.DTOs 7 | { 8 | public class LibroDTOConAutores: LibroDTO 9 | { 10 | public List Autores { get; set; } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /ASP.NET Core 6/Modulo 10 - Despliegues/WebAPIAutores/WebAPIAutores/DTOs/Recurso.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Threading.Tasks; 5 | 6 | namespace WebAPIAutores.DTOs 7 | { 8 | public class Recurso 9 | { 10 | public List Enlaces { get; set; } = new List(); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /ASP.NET Core 6/Modulo 10 - Despliegues/WebAPIAutores/WebAPIAutores/DTOs/ResultadoHash.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Threading.Tasks; 5 | 6 | namespace WebAPIAutores.DTOs 7 | { 8 | public class ResultadoHash 9 | { 10 | public string Hash { get; set; } 11 | public byte[] Sal { get; set; } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /ASP.NET Core 6/Modulo 10 - Despliegues/WebAPIAutores/WebAPIAutores/Properties/serviceDependencies.json: -------------------------------------------------------------------------------- 1 | { 2 | "dependencies": { 3 | "mssql1": { 4 | "type": "mssql", 5 | "connectionId": "defaultConnection" 6 | } 7 | } 8 | } -------------------------------------------------------------------------------- /ASP.NET Core 6/Modulo 10 - Despliegues/WebAPIAutores/WebAPIAutores/Startup.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gavilanch/CursoRESTfulAPIsASPNETCore/5e7ed70f9ab901647eec5bc29e4556676f9a2a4b/ASP.NET Core 6/Modulo 10 - Despliegues/WebAPIAutores/WebAPIAutores/Startup.cs -------------------------------------------------------------------------------- /ASP.NET Core 6/Modulo 11 - Proyecto Final/PeliculasAPI/PeliculasAPI/DTOs/EditarRolDTO.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Threading.Tasks; 5 | 6 | namespace PeliculasAPI.DTOs 7 | { 8 | public class EditarRolDTO 9 | { 10 | public string UsuarioId { get; set; } 11 | public string NombreRol { get; set; } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /ASP.NET Core 6/Modulo 11 - Proyecto Final/PeliculasAPI/PeliculasAPI/DTOs/GeneroDTO.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.ComponentModel.DataAnnotations; 4 | using System.Linq; 5 | using System.Threading.Tasks; 6 | 7 | namespace PeliculasAPI.DTOs 8 | { 9 | public class GeneroDTO: GeneroCreacionDTO 10 | { 11 | public int Id { get; set; } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /ASP.NET Core 6/Modulo 11 - Proyecto Final/PeliculasAPI/PeliculasAPI/DTOs/SalaDeCineCercanoDTO.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Threading.Tasks; 5 | 6 | namespace PeliculasAPI.DTOs 7 | { 8 | public class SalaDeCineCercanoDTO: SalaDeCineDTO 9 | { 10 | public double DistanciaEnMetros { get; set; } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /ASP.NET Core 6/Modulo 11 - Proyecto Final/PeliculasAPI/PeliculasAPI/DTOs/UserToken.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Threading.Tasks; 5 | 6 | namespace PeliculasAPI.DTOs 7 | { 8 | public class UserToken 9 | { 10 | public string Token { get; set; } 11 | public DateTime Expiracion { get; set; } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /ASP.NET Core 6/Modulo 11 - Proyecto Final/PeliculasAPI/PeliculasAPI/DTOs/UsuarioDTO.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Threading.Tasks; 5 | 6 | namespace PeliculasAPI.DTOs 7 | { 8 | public class UsuarioDTO 9 | { 10 | public string Id { get; set; } 11 | public string Email { get; set; } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /ASP.NET Core 6/Modulo 11 - Proyecto Final/PeliculasAPI/PeliculasAPI/Entidades/IId.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Threading.Tasks; 5 | 6 | namespace PeliculasAPI.Entidades 7 | { 8 | public interface IId 9 | { 10 | public int Id { get; set; } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /ASP.NET Core 6/Modulo 11 - Proyecto Final/PeliculasAPI/PeliculasAPI/Helpers/CreateMap.cs: -------------------------------------------------------------------------------- 1 | namespace PeliculasAPI.Helpers 2 | { 3 | internal class CreateMap 4 | { 5 | } 6 | } -------------------------------------------------------------------------------- /ASP.NET Core 6/Modulo 11 - Proyecto Final/PeliculasAPI/PeliculasAPI/Program.cs: -------------------------------------------------------------------------------- 1 | using Microsoft.AspNetCore.Builder; 2 | using PeliculasAPI; 3 | 4 | var builder = WebApplication.CreateBuilder(args); 5 | 6 | var startup = new Startup(builder.Configuration); 7 | 8 | startup.ConfigureServices(builder.Services); 9 | 10 | var app = builder.Build(); 11 | 12 | startup.Configure(app, app.Environment); 13 | 14 | app.Run(); -------------------------------------------------------------------------------- /ASP.NET Core 6/Modulo 11 - Proyecto Final/PeliculasAPI/PeliculasAPI/Validaciones/GrupoTipoArchivo.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Threading.Tasks; 5 | 6 | namespace PeliculasAPI.Validaciones 7 | { 8 | public enum GrupoTipoArchivo 9 | { 10 | Imagen 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /ASP.NET Core 6/Modulo 11 - Proyecto Final/PeliculasAPI/PeliculasAPI/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Information", 5 | "Microsoft": "Warning", 6 | "Microsoft.Hosting.Lifetime": "Information" 7 | } 8 | }, 9 | "AllowedHosts": "*" 10 | } 11 | -------------------------------------------------------------------------------- /ASP.NET Core 6/Modulo 12 - API de Suscripciones/Fin/WebAPIAutores/CreacionFacturas.sql: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gavilanch/CursoRESTfulAPIsASPNETCore/5e7ed70f9ab901647eec5bc29e4556676f9a2a4b/ASP.NET Core 6/Modulo 12 - API de Suscripciones/Fin/WebAPIAutores/CreacionFacturas.sql -------------------------------------------------------------------------------- /ASP.NET Core 6/Modulo 12 - API de Suscripciones/Fin/WebAPIAutores/SetearMalaPaga.sql: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gavilanch/CursoRESTfulAPIsASPNETCore/5e7ed70f9ab901647eec5bc29e4556676f9a2a4b/ASP.NET Core 6/Modulo 12 - API de Suscripciones/Fin/WebAPIAutores/SetearMalaPaga.sql -------------------------------------------------------------------------------- /ASP.NET Core 6/Modulo 12 - API de Suscripciones/Fin/WebAPIAutores/WebAPIAutores/DTOs/ActualizarLlaveDTO.cs: -------------------------------------------------------------------------------- 1 |  2 | namespace WebAPIAutores.DTOs; 3 | public class ActualizarLlaveDTO 4 | { 5 | public int LlaveId { get; set; } 6 | public bool ActualizarLlave { get; set; } 7 | public bool Activa { get; set; } 8 | } 9 | -------------------------------------------------------------------------------- /ASP.NET Core 6/Modulo 12 - API de Suscripciones/Fin/WebAPIAutores/WebAPIAutores/DTOs/ActualizarRestriccionDominioDTO.cs: -------------------------------------------------------------------------------- 1 |  2 | using System.ComponentModel.DataAnnotations; 3 | 4 | namespace WebAPIAutores.DTOs; 5 | public class ActualizarRestriccionDominioDTO 6 | { 7 | [Required] 8 | public string Dominio { get; set; } 9 | } 10 | -------------------------------------------------------------------------------- /ASP.NET Core 6/Modulo 12 - API de Suscripciones/Fin/WebAPIAutores/WebAPIAutores/DTOs/ActualizarRestriccionIPDTO.cs: -------------------------------------------------------------------------------- 1 |  2 | using System.ComponentModel.DataAnnotations; 3 | 4 | namespace WebAPIAutores.DTOs; 5 | public class ActualizarRestriccionIPDTO 6 | { 7 | [Required] 8 | public string IP { get; set; } 9 | } 10 | -------------------------------------------------------------------------------- /ASP.NET Core 6/Modulo 12 - API de Suscripciones/Fin/WebAPIAutores/WebAPIAutores/DTOs/AutorDTO.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Threading.Tasks; 5 | 6 | namespace WebAPIAutores.DTOs 7 | { 8 | public class AutorDTO 9 | { 10 | public int Id { get; set; } 11 | public string Nombre { get; set; } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /ASP.NET Core 6/Modulo 12 - API de Suscripciones/Fin/WebAPIAutores/WebAPIAutores/DTOs/AutorDTOConLibros.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Threading.Tasks; 5 | 6 | namespace WebAPIAutores.DTOs 7 | { 8 | public class AutorDTOConLibros: AutorDTO 9 | { 10 | public List Libros { get; set; } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /ASP.NET Core 6/Modulo 12 - API de Suscripciones/Fin/WebAPIAutores/WebAPIAutores/DTOs/ComentarioCreacionDTO.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Threading.Tasks; 5 | 6 | namespace WebAPIAutores.DTOs 7 | { 8 | public class ComentarioCreacionDTO 9 | { 10 | public string Contenido { get; set; } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /ASP.NET Core 6/Modulo 12 - API de Suscripciones/Fin/WebAPIAutores/WebAPIAutores/DTOs/ComentarioDTO.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Threading.Tasks; 5 | 6 | namespace WebAPIAutores.DTOs 7 | { 8 | public class ComentarioDTO 9 | { 10 | public int Id { get; set; } 11 | public string Contenido { get; set; } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /ASP.NET Core 6/Modulo 12 - API de Suscripciones/Fin/WebAPIAutores/WebAPIAutores/DTOs/CrearLlaveDTO.cs: -------------------------------------------------------------------------------- 1 |  2 | using WebAPIAutores.Entidades; 3 | 4 | namespace WebAPIAutores.DTOs; 5 | public class CrearLlaveDTO 6 | { 7 | public TipoLlave TipoLlave { get; set; } 8 | } 9 | -------------------------------------------------------------------------------- /ASP.NET Core 6/Modulo 12 - API de Suscripciones/Fin/WebAPIAutores/WebAPIAutores/DTOs/CrearRestriccionIPDTO.cs: -------------------------------------------------------------------------------- 1 |  2 | using System.ComponentModel.DataAnnotations; 3 | 4 | namespace WebAPIAutores.DTOs; 5 | public class CrearRestriccionIPDTO 6 | { 7 | public int LlaveId { get; set; } 8 | [Required] 9 | public string IP { get; set; } 10 | } 11 | -------------------------------------------------------------------------------- /ASP.NET Core 6/Modulo 12 - API de Suscripciones/Fin/WebAPIAutores/WebAPIAutores/DTOs/CrearRestriccionesDominioDTO.cs: -------------------------------------------------------------------------------- 1 |  2 | using System.ComponentModel.DataAnnotations; 3 | 4 | namespace WebAPIAutores.DTOs; 5 | public class CrearRestriccionesDominioDTO 6 | { 7 | public int LlaveId { get; set; } 8 | [Required] 9 | public string Dominio { get; set; } 10 | } 11 | -------------------------------------------------------------------------------- /ASP.NET Core 6/Modulo 12 - API de Suscripciones/Fin/WebAPIAutores/WebAPIAutores/DTOs/LibroDTOConAutores.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Threading.Tasks; 5 | 6 | namespace WebAPIAutores.DTOs 7 | { 8 | public class LibroDTOConAutores: LibroDTO 9 | { 10 | public List Autores { get; set; } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /ASP.NET Core 6/Modulo 12 - API de Suscripciones/Fin/WebAPIAutores/WebAPIAutores/DTOs/LimitarPeticionesConfiguracion.cs: -------------------------------------------------------------------------------- 1 |  2 | namespace WebAPIAutores.DTOs; 3 | public class LimitarPeticionesConfiguracion 4 | { 5 | public int PeticionesPorDiaGratuito { get; set; } 6 | public string[] ListaBlancaRutas { get; set; } 7 | } 8 | -------------------------------------------------------------------------------- /ASP.NET Core 6/Modulo 12 - API de Suscripciones/Fin/WebAPIAutores/WebAPIAutores/DTOs/PagarFacturaDTO.cs: -------------------------------------------------------------------------------- 1 |  2 | namespace WebAPIAutores.DTOs; 3 | public class PagarFacturaDTO 4 | { 5 | public int FacturaId { get; set; } 6 | } 7 | -------------------------------------------------------------------------------- /ASP.NET Core 6/Modulo 12 - API de Suscripciones/Fin/WebAPIAutores/WebAPIAutores/DTOs/RestriccionDominioDTO.cs: -------------------------------------------------------------------------------- 1 |  2 | namespace WebAPIAutores.DTOs; 3 | public class RestriccionDominioDTO 4 | { 5 | public int Id { get; set; } 6 | public string Dominio { get; set; } 7 | } 8 | -------------------------------------------------------------------------------- /ASP.NET Core 6/Modulo 12 - API de Suscripciones/Fin/WebAPIAutores/WebAPIAutores/DTOs/RestriccionIPDTO.cs: -------------------------------------------------------------------------------- 1 |  2 | namespace WebAPIAutores.DTOs; 3 | public class RestriccionIPDTO 4 | { 5 | public int Id { get; set; } 6 | public string IP { get; set; } 7 | } 8 | -------------------------------------------------------------------------------- /ASP.NET Core 6/Modulo 12 - API de Suscripciones/Fin/WebAPIAutores/WebAPIAutores/DTOs/ResultadoHash.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Threading.Tasks; 5 | 6 | namespace WebAPIAutores.DTOs 7 | { 8 | public class ResultadoHash 9 | { 10 | public string Hash { get; set; } 11 | public byte[] Sal { get; set; } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /ASP.NET Core 6/Modulo 12 - API de Suscripciones/Fin/WebAPIAutores/WebAPIAutores/Entidades/FacturaEmitida.cs: -------------------------------------------------------------------------------- 1 |  2 | namespace WebAPIAutores.Entidades; 3 | public class FacturaEmitida 4 | { 5 | public int Id { get; set; } 6 | public int Mes { get; set; } 7 | public int Año { get; set; } 8 | } 9 | -------------------------------------------------------------------------------- /ASP.NET Core 6/Modulo 12 - API de Suscripciones/Fin/WebAPIAutores/WebAPIAutores/Entidades/Peticion.cs: -------------------------------------------------------------------------------- 1 |  2 | namespace WebAPIAutores.Entidades; 3 | public class Peticion 4 | { 5 | public int Id { get; set; } 6 | public int LlaveId { get; set; } 7 | public DateTime FechaPeticion { get; set; } 8 | public LlaveAPI Llave { get; set; } 9 | } 10 | -------------------------------------------------------------------------------- /ASP.NET Core 6/Modulo 12 - API de Suscripciones/Fin/WebAPIAutores/WebAPIAutores/Entidades/RestriccionDominio.cs: -------------------------------------------------------------------------------- 1 |  2 | namespace WebAPIAutores.Entidades; 3 | public class RestriccionDominio 4 | { 5 | public int Id { get; set; } 6 | public int LlaveId { get; set; } 7 | public string Dominio { get; set; } 8 | public LlaveAPI Llave { get; set; } 9 | } 10 | -------------------------------------------------------------------------------- /ASP.NET Core 6/Modulo 12 - API de Suscripciones/Fin/WebAPIAutores/WebAPIAutores/Entidades/RestriccionIP.cs: -------------------------------------------------------------------------------- 1 |  2 | namespace WebAPIAutores.Entidades; 3 | public class RestriccionIP 4 | { 5 | public int Id { get; set; } 6 | public int LlaveId { get; set; } 7 | public string IP { get; set; } 8 | public LlaveAPI Llave { get; set; } 9 | } 10 | -------------------------------------------------------------------------------- /ASP.NET Core 6/Modulo 12 - API de Suscripciones/Fin/WebAPIAutores/WebAPIAutores/Entidades/Usuario.cs: -------------------------------------------------------------------------------- 1 |  2 | using Microsoft.AspNetCore.Identity; 3 | 4 | namespace WebAPIAutores.Entidades; 5 | public class Usuario: IdentityUser 6 | { 7 | public bool MalaPaga { get; set; } 8 | } 9 | -------------------------------------------------------------------------------- /ASP.NET Core 6/Modulo 12 - API de Suscripciones/Inicio/WebAPIAutores/WebAPIAutores/DTOs/AutorDTO.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Threading.Tasks; 5 | 6 | namespace WebAPIAutores.DTOs 7 | { 8 | public class AutorDTO 9 | { 10 | public int Id { get; set; } 11 | public string Nombre { get; set; } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /ASP.NET Core 6/Modulo 12 - API de Suscripciones/Inicio/WebAPIAutores/WebAPIAutores/DTOs/AutorDTOConLibros.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Threading.Tasks; 5 | 6 | namespace WebAPIAutores.DTOs 7 | { 8 | public class AutorDTOConLibros: AutorDTO 9 | { 10 | public List Libros { get; set; } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /ASP.NET Core 6/Modulo 12 - API de Suscripciones/Inicio/WebAPIAutores/WebAPIAutores/DTOs/ComentarioCreacionDTO.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Threading.Tasks; 5 | 6 | namespace WebAPIAutores.DTOs 7 | { 8 | public class ComentarioCreacionDTO 9 | { 10 | public string Contenido { get; set; } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /ASP.NET Core 6/Modulo 12 - API de Suscripciones/Inicio/WebAPIAutores/WebAPIAutores/DTOs/ComentarioDTO.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Threading.Tasks; 5 | 6 | namespace WebAPIAutores.DTOs 7 | { 8 | public class ComentarioDTO 9 | { 10 | public int Id { get; set; } 11 | public string Contenido { get; set; } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /ASP.NET Core 6/Modulo 12 - API de Suscripciones/Inicio/WebAPIAutores/WebAPIAutores/DTOs/LibroDTOConAutores.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Threading.Tasks; 5 | 6 | namespace WebAPIAutores.DTOs 7 | { 8 | public class LibroDTOConAutores: LibroDTO 9 | { 10 | public List Autores { get; set; } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /ASP.NET Core 6/Modulo 12 - API de Suscripciones/Inicio/WebAPIAutores/WebAPIAutores/DTOs/ResultadoHash.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Threading.Tasks; 5 | 6 | namespace WebAPIAutores.DTOs 7 | { 8 | public class ResultadoHash 9 | { 10 | public string Hash { get; set; } 11 | public byte[] Sal { get; set; } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /ASP.NET Core 6/Modulo 2 - Configurando el Ambiente/WebAPIAutores/WebAPIAutores/appsettings.Development.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Information", 5 | "Microsoft": "Warning", 6 | "Microsoft.Hosting.Lifetime": "Information" 7 | } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /ASP.NET Core 6/Modulo 2 - Configurando el Ambiente/WebAPIAutores/WebAPIAutores/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Information", 5 | "Microsoft": "Warning", 6 | "Microsoft.Hosting.Lifetime": "Information" 7 | } 8 | }, 9 | "AllowedHosts": "*" 10 | } 11 | -------------------------------------------------------------------------------- /ASP.NET Core 6/Modulo 3 - Creando Nuestro Primer Web API/Fin/WebAPIAutores/WebAPIAutores/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Information", 5 | "Microsoft": "Warning", 6 | "Microsoft.Hosting.Lifetime": "Information" 7 | } 8 | }, 9 | "AllowedHosts": "*" 10 | } 11 | -------------------------------------------------------------------------------- /ASP.NET Core 6/Modulo 3 - Creando Nuestro Primer Web API/Inicio/WebAPIAutores/WebAPIAutores/appsettings.Development.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Information", 5 | "Microsoft": "Warning", 6 | "Microsoft.Hosting.Lifetime": "Information" 7 | } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /ASP.NET Core 6/Modulo 3 - Creando Nuestro Primer Web API/Inicio/WebAPIAutores/WebAPIAutores/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Information", 5 | "Microsoft": "Warning", 6 | "Microsoft.Hosting.Lifetime": "Information" 7 | } 8 | }, 9 | "AllowedHosts": "*" 10 | } 11 | -------------------------------------------------------------------------------- /ASP.NET Core 6/Modulo 4 - Fundamentos de ASP.NET Core/Fin/WebAPIAutores/WebAPIAutores/Startup.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gavilanch/CursoRESTfulAPIsASPNETCore/5e7ed70f9ab901647eec5bc29e4556676f9a2a4b/ASP.NET Core 6/Modulo 4 - Fundamentos de ASP.NET Core/Fin/WebAPIAutores/WebAPIAutores/Startup.cs -------------------------------------------------------------------------------- /ASP.NET Core 6/Modulo 4 - Fundamentos de ASP.NET Core/Fin/WebAPIAutores/WebAPIAutores/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Information", 5 | "Microsoft": "Warning", 6 | "Microsoft.Hosting.Lifetime": "Information" 7 | } 8 | }, 9 | "AllowedHosts": "*" 10 | } 11 | -------------------------------------------------------------------------------- /ASP.NET Core 6/Modulo 4 - Fundamentos de ASP.NET Core/Inicio/WebAPIAutores/WebAPIAutores/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Information", 5 | "Microsoft": "Warning", 6 | "Microsoft.Hosting.Lifetime": "Information" 7 | } 8 | }, 9 | "AllowedHosts": "*" 10 | } 11 | -------------------------------------------------------------------------------- /ASP.NET Core 6/Modulo 5 - Manipulando Recursos/Fin/WebAPIAutores/WebAPIAutores/DTOs/AutorDTO.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Threading.Tasks; 5 | 6 | namespace WebAPIAutores.DTOs 7 | { 8 | public class AutorDTO 9 | { 10 | public int Id { get; set; } 11 | public string Nombre { get; set; } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /ASP.NET Core 6/Modulo 5 - Manipulando Recursos/Fin/WebAPIAutores/WebAPIAutores/DTOs/AutorDTOConLibros.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Threading.Tasks; 5 | 6 | namespace WebAPIAutores.DTOs 7 | { 8 | public class AutorDTOConLibros: AutorDTO 9 | { 10 | public List Libros { get; set; } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /ASP.NET Core 6/Modulo 5 - Manipulando Recursos/Fin/WebAPIAutores/WebAPIAutores/DTOs/ComentarioCreacionDTO.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Threading.Tasks; 5 | 6 | namespace WebAPIAutores.DTOs 7 | { 8 | public class ComentarioCreacionDTO 9 | { 10 | public string Contenido { get; set; } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /ASP.NET Core 6/Modulo 5 - Manipulando Recursos/Fin/WebAPIAutores/WebAPIAutores/DTOs/ComentarioDTO.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Threading.Tasks; 5 | 6 | namespace WebAPIAutores.DTOs 7 | { 8 | public class ComentarioDTO 9 | { 10 | public int Id { get; set; } 11 | public string Contenido { get; set; } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /ASP.NET Core 6/Modulo 5 - Manipulando Recursos/Fin/WebAPIAutores/WebAPIAutores/DTOs/LibroDTOConAutores.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Threading.Tasks; 5 | 6 | namespace WebAPIAutores.DTOs 7 | { 8 | public class LibroDTOConAutores: LibroDTO 9 | { 10 | public List Autores { get; set; } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /ASP.NET Core 6/Modulo 5 - Manipulando Recursos/Fin/WebAPIAutores/WebAPIAutores/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Information", 5 | "Microsoft": "Warning", 6 | "Microsoft.Hosting.Lifetime": "Information" 7 | } 8 | }, 9 | "AllowedHosts": "*" 10 | } 11 | -------------------------------------------------------------------------------- /ASP.NET Core 6/Modulo 5 - Manipulando Recursos/Inicio/WebAPIAutores/WebAPIAutores/Startup.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gavilanch/CursoRESTfulAPIsASPNETCore/5e7ed70f9ab901647eec5bc29e4556676f9a2a4b/ASP.NET Core 6/Modulo 5 - Manipulando Recursos/Inicio/WebAPIAutores/WebAPIAutores/Startup.cs -------------------------------------------------------------------------------- /ASP.NET Core 6/Modulo 5 - Manipulando Recursos/Inicio/WebAPIAutores/WebAPIAutores/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Information", 5 | "Microsoft": "Warning", 6 | "Microsoft.Hosting.Lifetime": "Information" 7 | } 8 | }, 9 | "AllowedHosts": "*" 10 | } 11 | -------------------------------------------------------------------------------- /ASP.NET Core 6/Modulo 6 - Configuraciones/Fin/WebAPIAutores/WebAPIAutores/DTOs/AutorDTO.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Threading.Tasks; 5 | 6 | namespace WebAPIAutores.DTOs 7 | { 8 | public class AutorDTO 9 | { 10 | public int Id { get; set; } 11 | public string Nombre { get; set; } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /ASP.NET Core 6/Modulo 6 - Configuraciones/Fin/WebAPIAutores/WebAPIAutores/DTOs/AutorDTOConLibros.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Threading.Tasks; 5 | 6 | namespace WebAPIAutores.DTOs 7 | { 8 | public class AutorDTOConLibros: AutorDTO 9 | { 10 | public List Libros { get; set; } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /ASP.NET Core 6/Modulo 6 - Configuraciones/Fin/WebAPIAutores/WebAPIAutores/DTOs/ComentarioCreacionDTO.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Threading.Tasks; 5 | 6 | namespace WebAPIAutores.DTOs 7 | { 8 | public class ComentarioCreacionDTO 9 | { 10 | public string Contenido { get; set; } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /ASP.NET Core 6/Modulo 6 - Configuraciones/Fin/WebAPIAutores/WebAPIAutores/DTOs/ComentarioDTO.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Threading.Tasks; 5 | 6 | namespace WebAPIAutores.DTOs 7 | { 8 | public class ComentarioDTO 9 | { 10 | public int Id { get; set; } 11 | public string Contenido { get; set; } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /ASP.NET Core 6/Modulo 6 - Configuraciones/Fin/WebAPIAutores/WebAPIAutores/DTOs/LibroDTOConAutores.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Threading.Tasks; 5 | 6 | namespace WebAPIAutores.DTOs 7 | { 8 | public class LibroDTOConAutores: LibroDTO 9 | { 10 | public List Autores { get; set; } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /ASP.NET Core 6/Modulo 6 - Configuraciones/Fin/WebAPIAutores/WebAPIAutores/appsettings.Development.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gavilanch/CursoRESTfulAPIsASPNETCore/5e7ed70f9ab901647eec5bc29e4556676f9a2a4b/ASP.NET Core 6/Modulo 6 - Configuraciones/Fin/WebAPIAutores/WebAPIAutores/appsettings.Development.json -------------------------------------------------------------------------------- /ASP.NET Core 6/Modulo 6 - Configuraciones/Inicio/WebAPIAutores/WebAPIAutores/DTOs/AutorDTO.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Threading.Tasks; 5 | 6 | namespace WebAPIAutores.DTOs 7 | { 8 | public class AutorDTO 9 | { 10 | public int Id { get; set; } 11 | public string Nombre { get; set; } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /ASP.NET Core 6/Modulo 6 - Configuraciones/Inicio/WebAPIAutores/WebAPIAutores/DTOs/AutorDTOConLibros.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Threading.Tasks; 5 | 6 | namespace WebAPIAutores.DTOs 7 | { 8 | public class AutorDTOConLibros: AutorDTO 9 | { 10 | public List Libros { get; set; } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /ASP.NET Core 6/Modulo 6 - Configuraciones/Inicio/WebAPIAutores/WebAPIAutores/DTOs/ComentarioCreacionDTO.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Threading.Tasks; 5 | 6 | namespace WebAPIAutores.DTOs 7 | { 8 | public class ComentarioCreacionDTO 9 | { 10 | public string Contenido { get; set; } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /ASP.NET Core 6/Modulo 6 - Configuraciones/Inicio/WebAPIAutores/WebAPIAutores/DTOs/ComentarioDTO.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Threading.Tasks; 5 | 6 | namespace WebAPIAutores.DTOs 7 | { 8 | public class ComentarioDTO 9 | { 10 | public int Id { get; set; } 11 | public string Contenido { get; set; } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /ASP.NET Core 6/Modulo 6 - Configuraciones/Inicio/WebAPIAutores/WebAPIAutores/DTOs/LibroDTOConAutores.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Threading.Tasks; 5 | 6 | namespace WebAPIAutores.DTOs 7 | { 8 | public class LibroDTOConAutores: LibroDTO 9 | { 10 | public List Autores { get; set; } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /ASP.NET Core 6/Modulo 6 - Configuraciones/Inicio/WebAPIAutores/WebAPIAutores/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Information", 5 | "Microsoft": "Warning", 6 | "Microsoft.Hosting.Lifetime": "Information" 7 | } 8 | }, 9 | "AllowedHosts": "*" 10 | } 11 | -------------------------------------------------------------------------------- /ASP.NET Core 6/Modulo 7 - Seguridad/Fin/WebAPIAutores/WebAPIAutores/DTOs/AutorDTO.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Threading.Tasks; 5 | 6 | namespace WebAPIAutores.DTOs 7 | { 8 | public class AutorDTO 9 | { 10 | public int Id { get; set; } 11 | public string Nombre { get; set; } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /ASP.NET Core 6/Modulo 7 - Seguridad/Fin/WebAPIAutores/WebAPIAutores/DTOs/AutorDTOConLibros.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Threading.Tasks; 5 | 6 | namespace WebAPIAutores.DTOs 7 | { 8 | public class AutorDTOConLibros: AutorDTO 9 | { 10 | public List Libros { get; set; } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /ASP.NET Core 6/Modulo 7 - Seguridad/Fin/WebAPIAutores/WebAPIAutores/DTOs/ComentarioCreacionDTO.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Threading.Tasks; 5 | 6 | namespace WebAPIAutores.DTOs 7 | { 8 | public class ComentarioCreacionDTO 9 | { 10 | public string Contenido { get; set; } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /ASP.NET Core 6/Modulo 7 - Seguridad/Fin/WebAPIAutores/WebAPIAutores/DTOs/ComentarioDTO.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Threading.Tasks; 5 | 6 | namespace WebAPIAutores.DTOs 7 | { 8 | public class ComentarioDTO 9 | { 10 | public int Id { get; set; } 11 | public string Contenido { get; set; } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /ASP.NET Core 6/Modulo 7 - Seguridad/Fin/WebAPIAutores/WebAPIAutores/DTOs/LibroDTOConAutores.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Threading.Tasks; 5 | 6 | namespace WebAPIAutores.DTOs 7 | { 8 | public class LibroDTOConAutores: LibroDTO 9 | { 10 | public List Autores { get; set; } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /ASP.NET Core 6/Modulo 7 - Seguridad/Fin/WebAPIAutores/WebAPIAutores/DTOs/ResultadoHash.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Threading.Tasks; 5 | 6 | namespace WebAPIAutores.DTOs 7 | { 8 | public class ResultadoHash 9 | { 10 | public string Hash { get; set; } 11 | public byte[] Sal { get; set; } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /ASP.NET Core 6/Modulo 7 - Seguridad/Inicio/WebAPIAutores/WebAPIAutores/DTOs/AutorDTO.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Threading.Tasks; 5 | 6 | namespace WebAPIAutores.DTOs 7 | { 8 | public class AutorDTO 9 | { 10 | public int Id { get; set; } 11 | public string Nombre { get; set; } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /ASP.NET Core 6/Modulo 7 - Seguridad/Inicio/WebAPIAutores/WebAPIAutores/DTOs/AutorDTOConLibros.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Threading.Tasks; 5 | 6 | namespace WebAPIAutores.DTOs 7 | { 8 | public class AutorDTOConLibros: AutorDTO 9 | { 10 | public List Libros { get; set; } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /ASP.NET Core 6/Modulo 7 - Seguridad/Inicio/WebAPIAutores/WebAPIAutores/DTOs/ComentarioCreacionDTO.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Threading.Tasks; 5 | 6 | namespace WebAPIAutores.DTOs 7 | { 8 | public class ComentarioCreacionDTO 9 | { 10 | public string Contenido { get; set; } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /ASP.NET Core 6/Modulo 7 - Seguridad/Inicio/WebAPIAutores/WebAPIAutores/DTOs/ComentarioDTO.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Threading.Tasks; 5 | 6 | namespace WebAPIAutores.DTOs 7 | { 8 | public class ComentarioDTO 9 | { 10 | public int Id { get; set; } 11 | public string Contenido { get; set; } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /ASP.NET Core 6/Modulo 7 - Seguridad/Inicio/WebAPIAutores/WebAPIAutores/DTOs/LibroDTOConAutores.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Threading.Tasks; 5 | 6 | namespace WebAPIAutores.DTOs 7 | { 8 | public class LibroDTOConAutores: LibroDTO 9 | { 10 | public List Autores { get; set; } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /ASP.NET Core 6/Modulo 7 - Seguridad/Inicio/WebAPIAutores/WebAPIAutores/appsettings.Development.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gavilanch/CursoRESTfulAPIsASPNETCore/5e7ed70f9ab901647eec5bc29e4556676f9a2a4b/ASP.NET Core 6/Modulo 7 - Seguridad/Inicio/WebAPIAutores/WebAPIAutores/appsettings.Development.json -------------------------------------------------------------------------------- /ASP.NET Core 6/Modulo 8 - Escenarios Avanzados/Fin/WebAPIAutores/WebAPIAutores/DTOs/AutorDTO.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Threading.Tasks; 5 | 6 | namespace WebAPIAutores.DTOs 7 | { 8 | public class AutorDTO: Recurso 9 | { 10 | public int Id { get; set; } 11 | public string Nombre { get; set; } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /ASP.NET Core 6/Modulo 8 - Escenarios Avanzados/Fin/WebAPIAutores/WebAPIAutores/DTOs/AutorDTOConLibros.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Threading.Tasks; 5 | 6 | namespace WebAPIAutores.DTOs 7 | { 8 | public class AutorDTOConLibros: AutorDTO 9 | { 10 | public List Libros { get; set; } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /ASP.NET Core 6/Modulo 8 - Escenarios Avanzados/Fin/WebAPIAutores/WebAPIAutores/DTOs/ColeccionDeRecursos.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Threading.Tasks; 5 | 6 | namespace WebAPIAutores.DTOs 7 | { 8 | public class ColeccionDeRecursos: Recurso where T: Recurso 9 | { 10 | public List Valores { get; set; } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /ASP.NET Core 6/Modulo 8 - Escenarios Avanzados/Fin/WebAPIAutores/WebAPIAutores/DTOs/ComentarioCreacionDTO.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Threading.Tasks; 5 | 6 | namespace WebAPIAutores.DTOs 7 | { 8 | public class ComentarioCreacionDTO 9 | { 10 | public string Contenido { get; set; } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /ASP.NET Core 6/Modulo 8 - Escenarios Avanzados/Fin/WebAPIAutores/WebAPIAutores/DTOs/ComentarioDTO.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Threading.Tasks; 5 | 6 | namespace WebAPIAutores.DTOs 7 | { 8 | public class ComentarioDTO 9 | { 10 | public int Id { get; set; } 11 | public string Contenido { get; set; } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /ASP.NET Core 6/Modulo 8 - Escenarios Avanzados/Fin/WebAPIAutores/WebAPIAutores/DTOs/LibroDTOConAutores.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Threading.Tasks; 5 | 6 | namespace WebAPIAutores.DTOs 7 | { 8 | public class LibroDTOConAutores: LibroDTO 9 | { 10 | public List Autores { get; set; } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /ASP.NET Core 6/Modulo 8 - Escenarios Avanzados/Fin/WebAPIAutores/WebAPIAutores/DTOs/Recurso.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Threading.Tasks; 5 | 6 | namespace WebAPIAutores.DTOs 7 | { 8 | public class Recurso 9 | { 10 | public List Enlaces { get; set; } = new List(); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /ASP.NET Core 6/Modulo 8 - Escenarios Avanzados/Fin/WebAPIAutores/WebAPIAutores/DTOs/ResultadoHash.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Threading.Tasks; 5 | 6 | namespace WebAPIAutores.DTOs 7 | { 8 | public class ResultadoHash 9 | { 10 | public string Hash { get; set; } 11 | public byte[] Sal { get; set; } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /ASP.NET Core 6/Modulo 8 - Escenarios Avanzados/Fin/WebAPIAutores/WebAPIAutores/Startup.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gavilanch/CursoRESTfulAPIsASPNETCore/5e7ed70f9ab901647eec5bc29e4556676f9a2a4b/ASP.NET Core 6/Modulo 8 - Escenarios Avanzados/Fin/WebAPIAutores/WebAPIAutores/Startup.cs -------------------------------------------------------------------------------- /ASP.NET Core 6/Modulo 8 - Escenarios Avanzados/Inicio/WebAPIAutores/WebAPIAutores/DTOs/AutorDTO.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Threading.Tasks; 5 | 6 | namespace WebAPIAutores.DTOs 7 | { 8 | public class AutorDTO 9 | { 10 | public int Id { get; set; } 11 | public string Nombre { get; set; } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /ASP.NET Core 6/Modulo 8 - Escenarios Avanzados/Inicio/WebAPIAutores/WebAPIAutores/DTOs/AutorDTOConLibros.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Threading.Tasks; 5 | 6 | namespace WebAPIAutores.DTOs 7 | { 8 | public class AutorDTOConLibros: AutorDTO 9 | { 10 | public List Libros { get; set; } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /ASP.NET Core 6/Modulo 8 - Escenarios Avanzados/Inicio/WebAPIAutores/WebAPIAutores/DTOs/ComentarioCreacionDTO.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Threading.Tasks; 5 | 6 | namespace WebAPIAutores.DTOs 7 | { 8 | public class ComentarioCreacionDTO 9 | { 10 | public string Contenido { get; set; } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /ASP.NET Core 6/Modulo 8 - Escenarios Avanzados/Inicio/WebAPIAutores/WebAPIAutores/DTOs/ComentarioDTO.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Threading.Tasks; 5 | 6 | namespace WebAPIAutores.DTOs 7 | { 8 | public class ComentarioDTO 9 | { 10 | public int Id { get; set; } 11 | public string Contenido { get; set; } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /ASP.NET Core 6/Modulo 8 - Escenarios Avanzados/Inicio/WebAPIAutores/WebAPIAutores/DTOs/LibroDTOConAutores.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Threading.Tasks; 5 | 6 | namespace WebAPIAutores.DTOs 7 | { 8 | public class LibroDTOConAutores: LibroDTO 9 | { 10 | public List Autores { get; set; } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /ASP.NET Core 6/Modulo 8 - Escenarios Avanzados/Inicio/WebAPIAutores/WebAPIAutores/DTOs/ResultadoHash.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Threading.Tasks; 5 | 6 | namespace WebAPIAutores.DTOs 7 | { 8 | public class ResultadoHash 9 | { 10 | public string Hash { get; set; } 11 | public byte[] Sal { get; set; } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /ASP.NET Core 6/Modulo 9 - Pruebas Automaticas/Fin/WebAPIAutores/WebAPIAutores.Tests/PruebasUnitarias/PrimeraLetraMayusculaAttributeTests.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gavilanch/CursoRESTfulAPIsASPNETCore/5e7ed70f9ab901647eec5bc29e4556676f9a2a4b/ASP.NET Core 6/Modulo 9 - Pruebas Automaticas/Fin/WebAPIAutores/WebAPIAutores.Tests/PruebasUnitarias/PrimeraLetraMayusculaAttributeTests.cs -------------------------------------------------------------------------------- /ASP.NET Core 6/Modulo 9 - Pruebas Automaticas/Fin/WebAPIAutores/WebAPIAutores/DTOs/AutorDTO.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Threading.Tasks; 5 | 6 | namespace WebAPIAutores.DTOs 7 | { 8 | public class AutorDTO: Recurso 9 | { 10 | public int Id { get; set; } 11 | public string Nombre { get; set; } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /ASP.NET Core 6/Modulo 9 - Pruebas Automaticas/Fin/WebAPIAutores/WebAPIAutores/DTOs/AutorDTOConLibros.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Threading.Tasks; 5 | 6 | namespace WebAPIAutores.DTOs 7 | { 8 | public class AutorDTOConLibros: AutorDTO 9 | { 10 | public List Libros { get; set; } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /ASP.NET Core 6/Modulo 9 - Pruebas Automaticas/Fin/WebAPIAutores/WebAPIAutores/DTOs/ColeccionDeRecursos.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Threading.Tasks; 5 | 6 | namespace WebAPIAutores.DTOs 7 | { 8 | public class ColeccionDeRecursos: Recurso where T: Recurso 9 | { 10 | public List Valores { get; set; } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /ASP.NET Core 6/Modulo 9 - Pruebas Automaticas/Fin/WebAPIAutores/WebAPIAutores/DTOs/ComentarioCreacionDTO.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Threading.Tasks; 5 | 6 | namespace WebAPIAutores.DTOs 7 | { 8 | public class ComentarioCreacionDTO 9 | { 10 | public string Contenido { get; set; } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /ASP.NET Core 6/Modulo 9 - Pruebas Automaticas/Fin/WebAPIAutores/WebAPIAutores/DTOs/ComentarioDTO.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Threading.Tasks; 5 | 6 | namespace WebAPIAutores.DTOs 7 | { 8 | public class ComentarioDTO 9 | { 10 | public int Id { get; set; } 11 | public string Contenido { get; set; } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /ASP.NET Core 6/Modulo 9 - Pruebas Automaticas/Fin/WebAPIAutores/WebAPIAutores/DTOs/LibroDTOConAutores.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Threading.Tasks; 5 | 6 | namespace WebAPIAutores.DTOs 7 | { 8 | public class LibroDTOConAutores: LibroDTO 9 | { 10 | public List Autores { get; set; } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /ASP.NET Core 6/Modulo 9 - Pruebas Automaticas/Fin/WebAPIAutores/WebAPIAutores/DTOs/Recurso.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Threading.Tasks; 5 | 6 | namespace WebAPIAutores.DTOs 7 | { 8 | public class Recurso 9 | { 10 | public List Enlaces { get; set; } = new List(); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /ASP.NET Core 6/Modulo 9 - Pruebas Automaticas/Fin/WebAPIAutores/WebAPIAutores/DTOs/ResultadoHash.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Threading.Tasks; 5 | 6 | namespace WebAPIAutores.DTOs 7 | { 8 | public class ResultadoHash 9 | { 10 | public string Hash { get; set; } 11 | public byte[] Sal { get; set; } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /ASP.NET Core 6/Modulo 9 - Pruebas Automaticas/Fin/WebAPIAutores/WebAPIAutores/Startup.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gavilanch/CursoRESTfulAPIsASPNETCore/5e7ed70f9ab901647eec5bc29e4556676f9a2a4b/ASP.NET Core 6/Modulo 9 - Pruebas Automaticas/Fin/WebAPIAutores/WebAPIAutores/Startup.cs -------------------------------------------------------------------------------- /ASP.NET Core 6/Modulo 9 - Pruebas Automaticas/Fin/WebAPIAutores/WebAPIAutores2.Tests2/UnitTest1.cs: -------------------------------------------------------------------------------- 1 | using Microsoft.VisualStudio.TestTools.UnitTesting; 2 | 3 | namespace WebAPIAutores2.Tests2 4 | { 5 | [TestClass] 6 | public class UnitTest1 7 | { 8 | [TestMethod] 9 | public void TestMethod1() 10 | { 11 | } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /ASP.NET Core 6/Modulo 9 - Pruebas Automaticas/Inicio/WebAPIAutores/WebAPIAutores/DTOs/AutorDTO.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Threading.Tasks; 5 | 6 | namespace WebAPIAutores.DTOs 7 | { 8 | public class AutorDTO: Recurso 9 | { 10 | public int Id { get; set; } 11 | public string Nombre { get; set; } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /ASP.NET Core 6/Modulo 9 - Pruebas Automaticas/Inicio/WebAPIAutores/WebAPIAutores/DTOs/AutorDTOConLibros.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Threading.Tasks; 5 | 6 | namespace WebAPIAutores.DTOs 7 | { 8 | public class AutorDTOConLibros: AutorDTO 9 | { 10 | public List Libros { get; set; } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /ASP.NET Core 6/Modulo 9 - Pruebas Automaticas/Inicio/WebAPIAutores/WebAPIAutores/DTOs/ColeccionDeRecursos.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Threading.Tasks; 5 | 6 | namespace WebAPIAutores.DTOs 7 | { 8 | public class ColeccionDeRecursos: Recurso where T: Recurso 9 | { 10 | public List Valores { get; set; } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /ASP.NET Core 6/Modulo 9 - Pruebas Automaticas/Inicio/WebAPIAutores/WebAPIAutores/DTOs/ComentarioCreacionDTO.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Threading.Tasks; 5 | 6 | namespace WebAPIAutores.DTOs 7 | { 8 | public class ComentarioCreacionDTO 9 | { 10 | public string Contenido { get; set; } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /ASP.NET Core 6/Modulo 9 - Pruebas Automaticas/Inicio/WebAPIAutores/WebAPIAutores/DTOs/ComentarioDTO.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Threading.Tasks; 5 | 6 | namespace WebAPIAutores.DTOs 7 | { 8 | public class ComentarioDTO 9 | { 10 | public int Id { get; set; } 11 | public string Contenido { get; set; } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /ASP.NET Core 6/Modulo 9 - Pruebas Automaticas/Inicio/WebAPIAutores/WebAPIAutores/DTOs/LibroDTOConAutores.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Threading.Tasks; 5 | 6 | namespace WebAPIAutores.DTOs 7 | { 8 | public class LibroDTOConAutores: LibroDTO 9 | { 10 | public List Autores { get; set; } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /ASP.NET Core 6/Modulo 9 - Pruebas Automaticas/Inicio/WebAPIAutores/WebAPIAutores/DTOs/Recurso.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Threading.Tasks; 5 | 6 | namespace WebAPIAutores.DTOs 7 | { 8 | public class Recurso 9 | { 10 | public List Enlaces { get; set; } = new List(); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /ASP.NET Core 6/Modulo 9 - Pruebas Automaticas/Inicio/WebAPIAutores/WebAPIAutores/DTOs/ResultadoHash.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Threading.Tasks; 5 | 6 | namespace WebAPIAutores.DTOs 7 | { 8 | public class ResultadoHash 9 | { 10 | public string Hash { get; set; } 11 | public byte[] Sal { get; set; } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /ASP.NET Core 6/Modulo 9 - Pruebas Automaticas/Inicio/WebAPIAutores/WebAPIAutores/Startup.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gavilanch/CursoRESTfulAPIsASPNETCore/5e7ed70f9ab901647eec5bc29e4556676f9a2a4b/ASP.NET Core 6/Modulo 9 - Pruebas Automaticas/Inicio/WebAPIAutores/WebAPIAutores/Startup.cs -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 10 - Despliegues/Fin/BibliotecaAPI/.config/dotnet-tools.json: -------------------------------------------------------------------------------- 1 | { 2 | "version": 1, 3 | "isRoot": true, 4 | "tools": { 5 | "dotnet-ef": { 6 | "version": "9.0.2", 7 | "commands": [ 8 | "dotnet-ef" 9 | ], 10 | "rollForward": false 11 | } 12 | } 13 | } -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 10 - Despliegues/Fin/BibliotecaAPI/DTOs/ActualizarUsuarioDTO.cs: -------------------------------------------------------------------------------- 1 | namespace BibliotecaAPI.DTOs 2 | { 3 | public class ActualizarUsuarioDTO 4 | { 5 | public DateTime FechaNacimiento { get; set; } 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 10 - Despliegues/Fin/BibliotecaAPI/DTOs/AutorConLibrosDTO.cs: -------------------------------------------------------------------------------- 1 | namespace BibliotecaAPI.DTOs 2 | { 3 | public class AutorConLibrosDTO: AutorDTO 4 | { 5 | public List Libros { get; set; } = []; 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 10 - Despliegues/Fin/BibliotecaAPI/DTOs/AutorCreacionDTOConFoto.cs: -------------------------------------------------------------------------------- 1 | namespace BibliotecaAPI.DTOs 2 | { 3 | public class AutorCreacionDTOConFoto: AutorCreacionDTO 4 | { 5 | public IFormFile? Foto { get; set; } 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 10 - Despliegues/Fin/BibliotecaAPI/DTOs/AutorDTO.cs: -------------------------------------------------------------------------------- 1 | namespace BibliotecaAPI.DTOs 2 | { 3 | public class AutorDTO: RecursoDTO 4 | { 5 | public int Id { get; set; } 6 | public required string NombreCompleto { get; set; } 7 | public string? Foto { get; set; } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 10 - Despliegues/Fin/BibliotecaAPI/DTOs/ColeccionDeRecursosDTO.cs: -------------------------------------------------------------------------------- 1 | namespace BibliotecaAPI.DTOs 2 | { 3 | public class ColeccionDeRecursosDTO: RecursoDTO where T: RecursoDTO 4 | { 5 | public IEnumerable Valores { get; set; } = []; 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 10 - Despliegues/Fin/BibliotecaAPI/DTOs/ComentarioCreacionDTO.cs: -------------------------------------------------------------------------------- 1 | using System.ComponentModel.DataAnnotations; 2 | 3 | namespace BibliotecaAPI.DTOs 4 | { 5 | public class ComentarioCreacionDTO 6 | { 7 | [Required] 8 | public required string Cuerpo { get; set; } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 10 - Despliegues/Fin/BibliotecaAPI/DTOs/ComentarioPatchDTO.cs: -------------------------------------------------------------------------------- 1 | namespace BibliotecaAPI.DTOs 2 | { 3 | public class ComentarioPatchDTO: ComentarioCreacionDTO 4 | { 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 10 - Despliegues/Fin/BibliotecaAPI/DTOs/DatosHATEOASDTO.cs: -------------------------------------------------------------------------------- 1 | namespace BibliotecaAPI.DTOs 2 | { 3 | public record DatosHATEOASDTO(string Enlace, string Descripcion, string Metodo); 4 | } 5 | -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 10 - Despliegues/Fin/BibliotecaAPI/DTOs/EditarClaimDTO.cs: -------------------------------------------------------------------------------- 1 | using System.ComponentModel.DataAnnotations; 2 | 3 | namespace BibliotecaAPI.DTOs 4 | { 5 | public class EditarClaimDTO 6 | { 7 | [EmailAddress] 8 | [Required] 9 | public required string Email { get; set; } 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 10 - Despliegues/Fin/BibliotecaAPI/DTOs/LibroConAutorDTO.cs: -------------------------------------------------------------------------------- 1 | namespace BibliotecaAPI.DTOs 2 | { 3 | public class LibroConAutoresDTO: LibroDTO 4 | { 5 | public List Autores { get; set; } = []; 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 10 - Despliegues/Fin/BibliotecaAPI/DTOs/LibroDTO.cs: -------------------------------------------------------------------------------- 1 | namespace BibliotecaAPI.DTOs 2 | { 3 | public class LibroDTO 4 | { 5 | public int Id { get; set; } 6 | public required string Titulo { get; set; } 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 10 - Despliegues/Fin/BibliotecaAPI/DTOs/RecursoDTO.cs: -------------------------------------------------------------------------------- 1 | namespace BibliotecaAPI.DTOs 2 | { 3 | public class RecursoDTO 4 | { 5 | public List Enlaces { get; set; } = []; 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 10 - Despliegues/Fin/BibliotecaAPI/DTOs/RespuestaAutenticacionDTO.cs: -------------------------------------------------------------------------------- 1 | namespace BibliotecaAPI.DTOs 2 | { 3 | public class RespuestaAutenticacionDTO 4 | { 5 | public required string Token { get; set; } 6 | public DateTime Expiracion { get; set; } 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 10 - Despliegues/Fin/BibliotecaAPI/DTOs/ResultadoHashDTO.cs: -------------------------------------------------------------------------------- 1 | namespace BibliotecaAPI.DTOs 2 | { 3 | public class ResultadoHashDTO 4 | { 5 | public required string Hash { get; set; } 6 | public required byte[] Sal { get; set; } 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 10 - Despliegues/Fin/BibliotecaAPI/DTOs/UsuarioDTO.cs: -------------------------------------------------------------------------------- 1 | namespace BibliotecaAPI.DTOs 2 | { 3 | public class UsuarioDTO 4 | { 5 | public required string Email { get; set; } 6 | public DateTime FechaNacimiento { get; set; } 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 10 - Despliegues/Fin/BibliotecaAPI/Entidades/Error.cs: -------------------------------------------------------------------------------- 1 | namespace BibliotecaAPI.Entidades 2 | { 3 | public class Error 4 | { 5 | public Guid Id { get; set; } 6 | public required string MensajeDeError { get; set; } 7 | public string? StrackTrace { get; set; } 8 | public DateTime Fecha { get; set; } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 10 - Despliegues/Fin/BibliotecaAPI/Entidades/Usuario.cs: -------------------------------------------------------------------------------- 1 | using Microsoft.AspNetCore.Identity; 2 | 3 | namespace BibliotecaAPI.Entidades 4 | { 5 | public class Usuario: IdentityUser 6 | { 7 | public DateTime FechaNacimiento { get; set; } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 10 - Despliegues/Fin/BibliotecaAPI/Servicios/IServiciosUsuarios.cs: -------------------------------------------------------------------------------- 1 | using BibliotecaAPI.Entidades; 2 | using Microsoft.AspNetCore.Identity; 3 | 4 | namespace BibliotecaAPI.Servicios 5 | { 6 | public interface IServiciosUsuarios 7 | { 8 | Task ObtenerUsuario(); 9 | } 10 | } -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 10 - Despliegues/Fin/BibliotecaAPI/Servicios/V1/IGeneradorEnlaces.cs: -------------------------------------------------------------------------------- 1 | using BibliotecaAPI.DTOs; 2 | 3 | namespace BibliotecaAPI.Servicios.V1 4 | { 5 | public interface IGeneradorEnlaces 6 | { 7 | Task GenerarEnlaces(AutorDTO autorDTO); 8 | Task> GenerarEnlaces(List autores); 9 | } 10 | } -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 10 - Despliegues/Fin/BibliotecaAPI/Servicios/V1/IServicioAutores.cs: -------------------------------------------------------------------------------- 1 | using BibliotecaAPI.DTOs; 2 | using Microsoft.AspNetCore.Mvc; 3 | 4 | namespace BibliotecaAPI.Servicios.V1 5 | { 6 | public interface IServicioAutores 7 | { 8 | Task> Get(PaginacionDTO paginacionDTO); 9 | } 10 | } -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 10 - Despliegues/Fin/BibliotecaAPITests/MSTestSettings.cs: -------------------------------------------------------------------------------- 1 | [assembly: Parallelize(Scope = ExecutionScope.MethodLevel)] 2 | -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 10 - Despliegues/Fin/BibliotecaAPITests/Properties/launchSettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "profiles": { 3 | "BibliotecaAPITests": { 4 | "commandName": "Project", 5 | "launchBrowser": true, 6 | "environmentVariables": { 7 | "ASPNETCORE_ENVIRONMENT": "Development" 8 | }, 9 | "applicationUrl": "https://localhost:51500;http://localhost:51501" 10 | } 11 | } 12 | } -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 10 - Despliegues/Inicio/BibliotecaAPI/DTOs/ActualizarUsuarioDTO.cs: -------------------------------------------------------------------------------- 1 | namespace BibliotecaAPI.DTOs 2 | { 3 | public class ActualizarUsuarioDTO 4 | { 5 | public DateTime FechaNacimiento { get; set; } 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 10 - Despliegues/Inicio/BibliotecaAPI/DTOs/AutorConLibrosDTO.cs: -------------------------------------------------------------------------------- 1 | namespace BibliotecaAPI.DTOs 2 | { 3 | public class AutorConLibrosDTO: AutorDTO 4 | { 5 | public List Libros { get; set; } = []; 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 10 - Despliegues/Inicio/BibliotecaAPI/DTOs/AutorCreacionDTOConFoto.cs: -------------------------------------------------------------------------------- 1 | namespace BibliotecaAPI.DTOs 2 | { 3 | public class AutorCreacionDTOConFoto: AutorCreacionDTO 4 | { 5 | public IFormFile? Foto { get; set; } 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 10 - Despliegues/Inicio/BibliotecaAPI/DTOs/AutorDTO.cs: -------------------------------------------------------------------------------- 1 | namespace BibliotecaAPI.DTOs 2 | { 3 | public class AutorDTO: RecursoDTO 4 | { 5 | public int Id { get; set; } 6 | public required string NombreCompleto { get; set; } 7 | public string? Foto { get; set; } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 10 - Despliegues/Inicio/BibliotecaAPI/DTOs/ColeccionDeRecursosDTO.cs: -------------------------------------------------------------------------------- 1 | namespace BibliotecaAPI.DTOs 2 | { 3 | public class ColeccionDeRecursosDTO: RecursoDTO where T: RecursoDTO 4 | { 5 | public IEnumerable Valores { get; set; } = []; 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 10 - Despliegues/Inicio/BibliotecaAPI/DTOs/ComentarioCreacionDTO.cs: -------------------------------------------------------------------------------- 1 | using System.ComponentModel.DataAnnotations; 2 | 3 | namespace BibliotecaAPI.DTOs 4 | { 5 | public class ComentarioCreacionDTO 6 | { 7 | [Required] 8 | public required string Cuerpo { get; set; } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 10 - Despliegues/Inicio/BibliotecaAPI/DTOs/ComentarioPatchDTO.cs: -------------------------------------------------------------------------------- 1 | namespace BibliotecaAPI.DTOs 2 | { 3 | public class ComentarioPatchDTO: ComentarioCreacionDTO 4 | { 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 10 - Despliegues/Inicio/BibliotecaAPI/DTOs/DatosHATEOASDTO.cs: -------------------------------------------------------------------------------- 1 | namespace BibliotecaAPI.DTOs 2 | { 3 | public record DatosHATEOASDTO(string Enlace, string Descripcion, string Metodo); 4 | } 5 | -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 10 - Despliegues/Inicio/BibliotecaAPI/DTOs/EditarClaimDTO.cs: -------------------------------------------------------------------------------- 1 | using System.ComponentModel.DataAnnotations; 2 | 3 | namespace BibliotecaAPI.DTOs 4 | { 5 | public class EditarClaimDTO 6 | { 7 | [EmailAddress] 8 | [Required] 9 | public required string Email { get; set; } 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 10 - Despliegues/Inicio/BibliotecaAPI/DTOs/LibroConAutorDTO.cs: -------------------------------------------------------------------------------- 1 | namespace BibliotecaAPI.DTOs 2 | { 3 | public class LibroConAutoresDTO: LibroDTO 4 | { 5 | public List Autores { get; set; } = []; 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 10 - Despliegues/Inicio/BibliotecaAPI/DTOs/LibroDTO.cs: -------------------------------------------------------------------------------- 1 | namespace BibliotecaAPI.DTOs 2 | { 3 | public class LibroDTO 4 | { 5 | public int Id { get; set; } 6 | public required string Titulo { get; set; } 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 10 - Despliegues/Inicio/BibliotecaAPI/DTOs/RecursoDTO.cs: -------------------------------------------------------------------------------- 1 | namespace BibliotecaAPI.DTOs 2 | { 3 | public class RecursoDTO 4 | { 5 | public List Enlaces { get; set; } = []; 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 10 - Despliegues/Inicio/BibliotecaAPI/DTOs/RespuestaAutenticacionDTO.cs: -------------------------------------------------------------------------------- 1 | namespace BibliotecaAPI.DTOs 2 | { 3 | public class RespuestaAutenticacionDTO 4 | { 5 | public required string Token { get; set; } 6 | public DateTime Expiracion { get; set; } 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 10 - Despliegues/Inicio/BibliotecaAPI/DTOs/ResultadoHashDTO.cs: -------------------------------------------------------------------------------- 1 | namespace BibliotecaAPI.DTOs 2 | { 3 | public class ResultadoHashDTO 4 | { 5 | public required string Hash { get; set; } 6 | public required byte[] Sal { get; set; } 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 10 - Despliegues/Inicio/BibliotecaAPI/DTOs/UsuarioDTO.cs: -------------------------------------------------------------------------------- 1 | namespace BibliotecaAPI.DTOs 2 | { 3 | public class UsuarioDTO 4 | { 5 | public required string Email { get; set; } 6 | public DateTime FechaNacimiento { get; set; } 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 10 - Despliegues/Inicio/BibliotecaAPI/Entidades/Error.cs: -------------------------------------------------------------------------------- 1 | namespace BibliotecaAPI.Entidades 2 | { 3 | public class Error 4 | { 5 | public Guid Id { get; set; } 6 | public required string MensajeDeError { get; set; } 7 | public string? StrackTrace { get; set; } 8 | public DateTime Fecha { get; set; } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 10 - Despliegues/Inicio/BibliotecaAPI/Entidades/Usuario.cs: -------------------------------------------------------------------------------- 1 | using Microsoft.AspNetCore.Identity; 2 | 3 | namespace BibliotecaAPI.Entidades 4 | { 5 | public class Usuario: IdentityUser 6 | { 7 | public DateTime FechaNacimiento { get; set; } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 10 - Despliegues/Inicio/BibliotecaAPI/Program.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gavilanch/CursoRESTfulAPIsASPNETCore/5e7ed70f9ab901647eec5bc29e4556676f9a2a4b/ASP.NET Core 9/Modulo 10 - Despliegues/Inicio/BibliotecaAPI/Program.cs -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 10 - Despliegues/Inicio/BibliotecaAPI/Servicios/IServiciosUsuarios.cs: -------------------------------------------------------------------------------- 1 | using BibliotecaAPI.Entidades; 2 | using Microsoft.AspNetCore.Identity; 3 | 4 | namespace BibliotecaAPI.Servicios 5 | { 6 | public interface IServiciosUsuarios 7 | { 8 | Task ObtenerUsuario(); 9 | } 10 | } -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 10 - Despliegues/Inicio/BibliotecaAPI/Servicios/V1/IGeneradorEnlaces.cs: -------------------------------------------------------------------------------- 1 | using BibliotecaAPI.DTOs; 2 | 3 | namespace BibliotecaAPI.Servicios.V1 4 | { 5 | public interface IGeneradorEnlaces 6 | { 7 | Task GenerarEnlaces(AutorDTO autorDTO); 8 | Task> GenerarEnlaces(List autores); 9 | } 10 | } -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 10 - Despliegues/Inicio/BibliotecaAPI/Servicios/V1/IServicioAutores.cs: -------------------------------------------------------------------------------- 1 | using BibliotecaAPI.DTOs; 2 | using Microsoft.AspNetCore.Mvc; 3 | 4 | namespace BibliotecaAPI.Servicios.V1 5 | { 6 | public interface IServicioAutores 7 | { 8 | Task> Get(PaginacionDTO paginacionDTO); 9 | } 10 | } -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 10 - Despliegues/Inicio/BibliotecaAPI/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Information", 5 | "Microsoft.AspNetCore": "Warning" 6 | } 7 | }, 8 | "AllowedHosts": "*" 9 | } 10 | -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 10 - Despliegues/Inicio/BibliotecaAPITests/MSTestSettings.cs: -------------------------------------------------------------------------------- 1 | [assembly: Parallelize(Scope = ExecutionScope.MethodLevel)] 2 | -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 10 - Despliegues/Inicio/BibliotecaAPITests/Properties/launchSettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "profiles": { 3 | "BibliotecaAPITests": { 4 | "commandName": "Project", 5 | "launchBrowser": true, 6 | "environmentVariables": { 7 | "ASPNETCORE_ENVIRONMENT": "Development" 8 | }, 9 | "applicationUrl": "https://localhost:51500;http://localhost:51501" 10 | } 11 | } 12 | } -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 11 - Web API de Suscripciones/Fin/BibliotecaAPI/.config/dotnet-tools.json: -------------------------------------------------------------------------------- 1 | { 2 | "version": 1, 3 | "isRoot": true, 4 | "tools": { 5 | "dotnet-ef": { 6 | "version": "9.0.2", 7 | "commands": [ 8 | "dotnet-ef" 9 | ], 10 | "rollForward": false 11 | } 12 | } 13 | } -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 11 - Web API de Suscripciones/Fin/BibliotecaAPI/.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "liveServer.settings.port": 5501 3 | } -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 11 - Web API de Suscripciones/Fin/BibliotecaAPI/DTOs/ActualizarUsuarioDTO.cs: -------------------------------------------------------------------------------- 1 | namespace BibliotecaAPI.DTOs 2 | { 3 | public class ActualizarUsuarioDTO 4 | { 5 | public DateTime FechaNacimiento { get; set; } 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 11 - Web API de Suscripciones/Fin/BibliotecaAPI/DTOs/AutorConLibrosDTO.cs: -------------------------------------------------------------------------------- 1 | namespace BibliotecaAPI.DTOs 2 | { 3 | public class AutorConLibrosDTO: AutorDTO 4 | { 5 | public List Libros { get; set; } = []; 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 11 - Web API de Suscripciones/Fin/BibliotecaAPI/DTOs/AutorCreacionDTOConFoto.cs: -------------------------------------------------------------------------------- 1 | namespace BibliotecaAPI.DTOs 2 | { 3 | public class AutorCreacionDTOConFoto: AutorCreacionDTO 4 | { 5 | public IFormFile? Foto { get; set; } 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 11 - Web API de Suscripciones/Fin/BibliotecaAPI/DTOs/AutorDTO.cs: -------------------------------------------------------------------------------- 1 | namespace BibliotecaAPI.DTOs 2 | { 3 | public class AutorDTO: RecursoDTO 4 | { 5 | public int Id { get; set; } 6 | public required string NombreCompleto { get; set; } 7 | public string? Foto { get; set; } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 11 - Web API de Suscripciones/Fin/BibliotecaAPI/DTOs/ColeccionDeRecursosDTO.cs: -------------------------------------------------------------------------------- 1 | namespace BibliotecaAPI.DTOs 2 | { 3 | public class ColeccionDeRecursosDTO: RecursoDTO where T: RecursoDTO 4 | { 5 | public IEnumerable Valores { get; set; } = []; 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 11 - Web API de Suscripciones/Fin/BibliotecaAPI/DTOs/ComentarioCreacionDTO.cs: -------------------------------------------------------------------------------- 1 | using System.ComponentModel.DataAnnotations; 2 | 3 | namespace BibliotecaAPI.DTOs 4 | { 5 | public class ComentarioCreacionDTO 6 | { 7 | [Required] 8 | public required string Cuerpo { get; set; } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 11 - Web API de Suscripciones/Fin/BibliotecaAPI/DTOs/ComentarioPatchDTO.cs: -------------------------------------------------------------------------------- 1 | namespace BibliotecaAPI.DTOs 2 | { 3 | public class ComentarioPatchDTO: ComentarioCreacionDTO 4 | { 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 11 - Web API de Suscripciones/Fin/BibliotecaAPI/DTOs/DatosHATEOASDTO.cs: -------------------------------------------------------------------------------- 1 | namespace BibliotecaAPI.DTOs 2 | { 3 | public record DatosHATEOASDTO(string Enlace, string Descripcion, string Metodo); 4 | } 5 | -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 11 - Web API de Suscripciones/Fin/BibliotecaAPI/DTOs/EditarClaimDTO.cs: -------------------------------------------------------------------------------- 1 | using System.ComponentModel.DataAnnotations; 2 | 3 | namespace BibliotecaAPI.DTOs 4 | { 5 | public class EditarClaimDTO 6 | { 7 | [EmailAddress] 8 | [Required] 9 | public required string Email { get; set; } 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 11 - Web API de Suscripciones/Fin/BibliotecaAPI/DTOs/FacturaPagarDTO.cs: -------------------------------------------------------------------------------- 1 | namespace BibliotecaAPI.DTOs 2 | { 3 | public class FacturaPagarDTO 4 | { 5 | public int FacturaId { get; set; } 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 11 - Web API de Suscripciones/Fin/BibliotecaAPI/DTOs/LibroConAutorDTO.cs: -------------------------------------------------------------------------------- 1 | namespace BibliotecaAPI.DTOs 2 | { 3 | public class LibroConAutoresDTO: LibroDTO 4 | { 5 | public List Autores { get; set; } = []; 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 11 - Web API de Suscripciones/Fin/BibliotecaAPI/DTOs/LibroDTO.cs: -------------------------------------------------------------------------------- 1 | namespace BibliotecaAPI.DTOs 2 | { 3 | public class LibroDTO 4 | { 5 | public int Id { get; set; } 6 | public required string Titulo { get; set; } 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 11 - Web API de Suscripciones/Fin/BibliotecaAPI/DTOs/LimitarPeticionesDTO.cs: -------------------------------------------------------------------------------- 1 | using System.ComponentModel.DataAnnotations; 2 | 3 | namespace BibliotecaAPI.DTOs 4 | { 5 | public class LimitarPeticionesDTO 6 | { 7 | public const string Seccion = "limitarPeticiones"; 8 | [Required] 9 | public int PeticionesPorDiaGratuito { get; set; } 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 11 - Web API de Suscripciones/Fin/BibliotecaAPI/DTOs/LlaveActualizacionDTO.cs: -------------------------------------------------------------------------------- 1 | namespace BibliotecaAPI.DTOs 2 | { 3 | public class LlaveActualizacionDTO 4 | { 5 | public bool ActualizarLlave { get; set; } 6 | public bool Activa { get; set; } 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 11 - Web API de Suscripciones/Fin/BibliotecaAPI/DTOs/LlaveCreacionDTO.cs: -------------------------------------------------------------------------------- 1 | using BibliotecaAPI.Entidades; 2 | 3 | namespace BibliotecaAPI.DTOs 4 | { 5 | public class LlaveCreacionDTO 6 | { 7 | public TipoLlave TipoLlave { get; set; } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 11 - Web API de Suscripciones/Fin/BibliotecaAPI/DTOs/RecursoDTO.cs: -------------------------------------------------------------------------------- 1 | namespace BibliotecaAPI.DTOs 2 | { 3 | public class RecursoDTO 4 | { 5 | public List Enlaces { get; set; } = []; 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 11 - Web API de Suscripciones/Fin/BibliotecaAPI/DTOs/RespuestaAutenticacionDTO.cs: -------------------------------------------------------------------------------- 1 | namespace BibliotecaAPI.DTOs 2 | { 3 | public class RespuestaAutenticacionDTO 4 | { 5 | public required string Token { get; set; } 6 | public DateTime Expiracion { get; set; } 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 11 - Web API de Suscripciones/Fin/BibliotecaAPI/DTOs/RestriccionDominioActualizacionDTO.cs: -------------------------------------------------------------------------------- 1 | using System.ComponentModel.DataAnnotations; 2 | 3 | namespace BibliotecaAPI.DTOs 4 | { 5 | public class RestriccionDominioActualizacionDTO 6 | { 7 | [Required] 8 | public required string Dominio { get; set; } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 11 - Web API de Suscripciones/Fin/BibliotecaAPI/DTOs/RestriccionDominioCreacionDTO.cs: -------------------------------------------------------------------------------- 1 | using System.ComponentModel.DataAnnotations; 2 | 3 | namespace BibliotecaAPI.DTOs 4 | { 5 | public class RestriccionDominioCreacionDTO 6 | { 7 | public int LlaveId { get; set; } 8 | [Required] 9 | public required string Dominio { get; set; } 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 11 - Web API de Suscripciones/Fin/BibliotecaAPI/DTOs/RestriccionDominioDTO.cs: -------------------------------------------------------------------------------- 1 | namespace BibliotecaAPI.DTOs 2 | { 3 | public class RestriccionDominioDTO 4 | { 5 | public int Id { get; set; } 6 | public required string Dominio { get; set; } 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 11 - Web API de Suscripciones/Fin/BibliotecaAPI/DTOs/RestriccionIPActualizacionDTO.cs: -------------------------------------------------------------------------------- 1 | using System.ComponentModel.DataAnnotations; 2 | 3 | namespace BibliotecaAPI.DTOs 4 | { 5 | public class RestriccionIPActualizacionDTO 6 | { 7 | [Required] 8 | public required string IP { get; set; } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 11 - Web API de Suscripciones/Fin/BibliotecaAPI/DTOs/RestriccionIPCreacionDTO.cs: -------------------------------------------------------------------------------- 1 | using System.ComponentModel.DataAnnotations; 2 | 3 | namespace BibliotecaAPI.DTOs 4 | { 5 | public class RestriccionIPCreacionDTO 6 | { 7 | public int LlaveId { get; set; } 8 | [Required] 9 | public required string IP { get; set; } 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 11 - Web API de Suscripciones/Fin/BibliotecaAPI/DTOs/RestriccionIPDTO.cs: -------------------------------------------------------------------------------- 1 | namespace BibliotecaAPI.DTOs 2 | { 3 | public class RestriccionIPDTO 4 | { 5 | public int Id { get; set; } 6 | public required string IP { get; set; } 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 11 - Web API de Suscripciones/Fin/BibliotecaAPI/DTOs/ResultadoHashDTO.cs: -------------------------------------------------------------------------------- 1 | namespace BibliotecaAPI.DTOs 2 | { 3 | public class ResultadoHashDTO 4 | { 5 | public required string Hash { get; set; } 6 | public required byte[] Sal { get; set; } 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 11 - Web API de Suscripciones/Fin/BibliotecaAPI/DTOs/UsuarioDTO.cs: -------------------------------------------------------------------------------- 1 | namespace BibliotecaAPI.DTOs 2 | { 3 | public class UsuarioDTO 4 | { 5 | public required string Email { get; set; } 6 | public DateTime FechaNacimiento { get; set; } 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 11 - Web API de Suscripciones/Fin/BibliotecaAPI/Entidades/Error.cs: -------------------------------------------------------------------------------- 1 | namespace BibliotecaAPI.Entidades 2 | { 3 | public class Error 4 | { 5 | public Guid Id { get; set; } 6 | public required string MensajeDeError { get; set; } 7 | public string? StrackTrace { get; set; } 8 | public DateTime Fecha { get; set; } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 11 - Web API de Suscripciones/Fin/BibliotecaAPI/Entidades/FacturaEmitida.cs: -------------------------------------------------------------------------------- 1 | using Microsoft.EntityFrameworkCore; 2 | 3 | namespace BibliotecaAPI.Entidades 4 | { 5 | [PrimaryKey("Mes", "Año")] 6 | public class FacturaEmitida 7 | { 8 | public int Mes { get; set; } 9 | public int Año { get; set; } 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 11 - Web API de Suscripciones/Fin/BibliotecaAPI/Entidades/Peticion.cs: -------------------------------------------------------------------------------- 1 | namespace BibliotecaAPI.Entidades 2 | { 3 | public class Peticion 4 | { 5 | public int Id { get; set; } 6 | public int LlaveId { get; set; } 7 | public DateTime FechaPeticion { get; set; } 8 | public LlaveAPI? Llave { get; set; } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 11 - Web API de Suscripciones/Fin/BibliotecaAPI/Entidades/Usuario.cs: -------------------------------------------------------------------------------- 1 | using Microsoft.AspNetCore.Identity; 2 | 3 | namespace BibliotecaAPI.Entidades 4 | { 5 | public class Usuario: IdentityUser 6 | { 7 | public DateTime FechaNacimiento { get; set; } 8 | public bool MalaPaga { get; set; } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 11 - Web API de Suscripciones/Fin/BibliotecaAPI/Servicios/IServicioLlaves.cs: -------------------------------------------------------------------------------- 1 | using BibliotecaAPI.Entidades; 2 | 3 | namespace BibliotecaAPI.Servicios 4 | { 5 | public interface IServicioLlaves 6 | { 7 | Task CrearLlave(string usuarioId, TipoLlave tipoLlave); 8 | string GenerarLlave(); 9 | } 10 | } -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 11 - Web API de Suscripciones/Fin/BibliotecaAPI/Servicios/IServiciosUsuarios.cs: -------------------------------------------------------------------------------- 1 | using BibliotecaAPI.Entidades; 2 | using Microsoft.AspNetCore.Identity; 3 | 4 | namespace BibliotecaAPI.Servicios 5 | { 6 | public interface IServiciosUsuarios 7 | { 8 | Task ObtenerUsuario(); 9 | string? ObtenerUsuarioId(); 10 | } 11 | } -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 11 - Web API de Suscripciones/Fin/BibliotecaAPI/Servicios/V1/IGeneradorEnlaces.cs: -------------------------------------------------------------------------------- 1 | using BibliotecaAPI.DTOs; 2 | 3 | namespace BibliotecaAPI.Servicios.V1 4 | { 5 | public interface IGeneradorEnlaces 6 | { 7 | Task GenerarEnlaces(AutorDTO autorDTO); 8 | Task> GenerarEnlaces(List autores); 9 | } 10 | } -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 11 - Web API de Suscripciones/Fin/BibliotecaAPI/Servicios/V1/IServicioAutores.cs: -------------------------------------------------------------------------------- 1 | using BibliotecaAPI.DTOs; 2 | using Microsoft.AspNetCore.Mvc; 3 | 4 | namespace BibliotecaAPI.Servicios.V1 5 | { 6 | public interface IServicioAutores 7 | { 8 | Task> Get(PaginacionDTO paginacionDTO); 9 | } 10 | } -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 11 - Web API de Suscripciones/Fin/BibliotecaAPI/Utilidades/DeshabilitarLimitarPeticionesAttribute.cs: -------------------------------------------------------------------------------- 1 | namespace BibliotecaAPI.Utilidades 2 | { 3 | [AttributeUsage(AttributeTargets.Method | AttributeTargets.Class, AllowMultiple = false)] 4 | public class DeshabilitarLimitarPeticionesAttribute: Attribute 5 | { 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 11 - Web API de Suscripciones/Fin/BibliotecaAPITests/MSTestSettings.cs: -------------------------------------------------------------------------------- 1 | [assembly: Parallelize(Scope = ExecutionScope.MethodLevel)] 2 | -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 11 - Web API de Suscripciones/Inicio/BibliotecaAPI/.config/dotnet-tools.json: -------------------------------------------------------------------------------- 1 | { 2 | "version": 1, 3 | "isRoot": true, 4 | "tools": { 5 | "dotnet-ef": { 6 | "version": "9.0.2", 7 | "commands": [ 8 | "dotnet-ef" 9 | ], 10 | "rollForward": false 11 | } 12 | } 13 | } -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 11 - Web API de Suscripciones/Inicio/BibliotecaAPI/DTOs/ActualizarUsuarioDTO.cs: -------------------------------------------------------------------------------- 1 | namespace BibliotecaAPI.DTOs 2 | { 3 | public class ActualizarUsuarioDTO 4 | { 5 | public DateTime FechaNacimiento { get; set; } 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 11 - Web API de Suscripciones/Inicio/BibliotecaAPI/DTOs/AutorConLibrosDTO.cs: -------------------------------------------------------------------------------- 1 | namespace BibliotecaAPI.DTOs 2 | { 3 | public class AutorConLibrosDTO: AutorDTO 4 | { 5 | public List Libros { get; set; } = []; 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 11 - Web API de Suscripciones/Inicio/BibliotecaAPI/DTOs/AutorCreacionDTOConFoto.cs: -------------------------------------------------------------------------------- 1 | namespace BibliotecaAPI.DTOs 2 | { 3 | public class AutorCreacionDTOConFoto: AutorCreacionDTO 4 | { 5 | public IFormFile? Foto { get; set; } 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 11 - Web API de Suscripciones/Inicio/BibliotecaAPI/DTOs/AutorDTO.cs: -------------------------------------------------------------------------------- 1 | namespace BibliotecaAPI.DTOs 2 | { 3 | public class AutorDTO: RecursoDTO 4 | { 5 | public int Id { get; set; } 6 | public required string NombreCompleto { get; set; } 7 | public string? Foto { get; set; } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 11 - Web API de Suscripciones/Inicio/BibliotecaAPI/DTOs/ColeccionDeRecursosDTO.cs: -------------------------------------------------------------------------------- 1 | namespace BibliotecaAPI.DTOs 2 | { 3 | public class ColeccionDeRecursosDTO: RecursoDTO where T: RecursoDTO 4 | { 5 | public IEnumerable Valores { get; set; } = []; 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 11 - Web API de Suscripciones/Inicio/BibliotecaAPI/DTOs/ComentarioCreacionDTO.cs: -------------------------------------------------------------------------------- 1 | using System.ComponentModel.DataAnnotations; 2 | 3 | namespace BibliotecaAPI.DTOs 4 | { 5 | public class ComentarioCreacionDTO 6 | { 7 | [Required] 8 | public required string Cuerpo { get; set; } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 11 - Web API de Suscripciones/Inicio/BibliotecaAPI/DTOs/ComentarioPatchDTO.cs: -------------------------------------------------------------------------------- 1 | namespace BibliotecaAPI.DTOs 2 | { 3 | public class ComentarioPatchDTO: ComentarioCreacionDTO 4 | { 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 11 - Web API de Suscripciones/Inicio/BibliotecaAPI/DTOs/DatosHATEOASDTO.cs: -------------------------------------------------------------------------------- 1 | namespace BibliotecaAPI.DTOs 2 | { 3 | public record DatosHATEOASDTO(string Enlace, string Descripcion, string Metodo); 4 | } 5 | -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 11 - Web API de Suscripciones/Inicio/BibliotecaAPI/DTOs/EditarClaimDTO.cs: -------------------------------------------------------------------------------- 1 | using System.ComponentModel.DataAnnotations; 2 | 3 | namespace BibliotecaAPI.DTOs 4 | { 5 | public class EditarClaimDTO 6 | { 7 | [EmailAddress] 8 | [Required] 9 | public required string Email { get; set; } 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 11 - Web API de Suscripciones/Inicio/BibliotecaAPI/DTOs/LibroConAutorDTO.cs: -------------------------------------------------------------------------------- 1 | namespace BibliotecaAPI.DTOs 2 | { 3 | public class LibroConAutoresDTO: LibroDTO 4 | { 5 | public List Autores { get; set; } = []; 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 11 - Web API de Suscripciones/Inicio/BibliotecaAPI/DTOs/LibroDTO.cs: -------------------------------------------------------------------------------- 1 | namespace BibliotecaAPI.DTOs 2 | { 3 | public class LibroDTO 4 | { 5 | public int Id { get; set; } 6 | public required string Titulo { get; set; } 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 11 - Web API de Suscripciones/Inicio/BibliotecaAPI/DTOs/RecursoDTO.cs: -------------------------------------------------------------------------------- 1 | namespace BibliotecaAPI.DTOs 2 | { 3 | public class RecursoDTO 4 | { 5 | public List Enlaces { get; set; } = []; 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 11 - Web API de Suscripciones/Inicio/BibliotecaAPI/DTOs/RespuestaAutenticacionDTO.cs: -------------------------------------------------------------------------------- 1 | namespace BibliotecaAPI.DTOs 2 | { 3 | public class RespuestaAutenticacionDTO 4 | { 5 | public required string Token { get; set; } 6 | public DateTime Expiracion { get; set; } 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 11 - Web API de Suscripciones/Inicio/BibliotecaAPI/DTOs/ResultadoHashDTO.cs: -------------------------------------------------------------------------------- 1 | namespace BibliotecaAPI.DTOs 2 | { 3 | public class ResultadoHashDTO 4 | { 5 | public required string Hash { get; set; } 6 | public required byte[] Sal { get; set; } 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 11 - Web API de Suscripciones/Inicio/BibliotecaAPI/DTOs/UsuarioDTO.cs: -------------------------------------------------------------------------------- 1 | namespace BibliotecaAPI.DTOs 2 | { 3 | public class UsuarioDTO 4 | { 5 | public required string Email { get; set; } 6 | public DateTime FechaNacimiento { get; set; } 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 11 - Web API de Suscripciones/Inicio/BibliotecaAPI/Entidades/Error.cs: -------------------------------------------------------------------------------- 1 | namespace BibliotecaAPI.Entidades 2 | { 3 | public class Error 4 | { 5 | public Guid Id { get; set; } 6 | public required string MensajeDeError { get; set; } 7 | public string? StrackTrace { get; set; } 8 | public DateTime Fecha { get; set; } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 11 - Web API de Suscripciones/Inicio/BibliotecaAPI/Entidades/Usuario.cs: -------------------------------------------------------------------------------- 1 | using Microsoft.AspNetCore.Identity; 2 | 3 | namespace BibliotecaAPI.Entidades 4 | { 5 | public class Usuario: IdentityUser 6 | { 7 | public DateTime FechaNacimiento { get; set; } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 11 - Web API de Suscripciones/Inicio/BibliotecaAPI/Servicios/IServiciosUsuarios.cs: -------------------------------------------------------------------------------- 1 | using BibliotecaAPI.Entidades; 2 | using Microsoft.AspNetCore.Identity; 3 | 4 | namespace BibliotecaAPI.Servicios 5 | { 6 | public interface IServiciosUsuarios 7 | { 8 | Task ObtenerUsuario(); 9 | } 10 | } -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 11 - Web API de Suscripciones/Inicio/BibliotecaAPI/Servicios/V1/IGeneradorEnlaces.cs: -------------------------------------------------------------------------------- 1 | using BibliotecaAPI.DTOs; 2 | 3 | namespace BibliotecaAPI.Servicios.V1 4 | { 5 | public interface IGeneradorEnlaces 6 | { 7 | Task GenerarEnlaces(AutorDTO autorDTO); 8 | Task> GenerarEnlaces(List autores); 9 | } 10 | } -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 11 - Web API de Suscripciones/Inicio/BibliotecaAPI/Servicios/V1/IServicioAutores.cs: -------------------------------------------------------------------------------- 1 | using BibliotecaAPI.DTOs; 2 | using Microsoft.AspNetCore.Mvc; 3 | 4 | namespace BibliotecaAPI.Servicios.V1 5 | { 6 | public interface IServicioAutores 7 | { 8 | Task> Get(PaginacionDTO paginacionDTO); 9 | } 10 | } -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 11 - Web API de Suscripciones/Inicio/BibliotecaAPITests/MSTestSettings.cs: -------------------------------------------------------------------------------- 1 | [assembly: Parallelize(Scope = ExecutionScope.MethodLevel)] 2 | -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 3 - Nuestro Primer Web API/Fin/BibliotecaAPI/Program.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gavilanch/CursoRESTfulAPIsASPNETCore/5e7ed70f9ab901647eec5bc29e4556676f9a2a4b/ASP.NET Core 9/Modulo 3 - Nuestro Primer Web API/Fin/BibliotecaAPI/Program.cs -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 3 - Nuestro Primer Web API/Fin/BibliotecaAPI/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Information", 5 | "Microsoft.AspNetCore": "Warning" 6 | } 7 | }, 8 | "AllowedHosts": "*" 9 | } 10 | -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 3 - Nuestro Primer Web API/Inicio/BibliotecaAPI/BibliotecaAPI/BibliotecaAPI.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | net9.0 5 | enable 6 | enable 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 3 - Nuestro Primer Web API/Inicio/BibliotecaAPI/BibliotecaAPI/Program.cs: -------------------------------------------------------------------------------- 1 | var builder = WebApplication.CreateBuilder(args); 2 | var app = builder.Build(); 3 | 4 | app.MapGet("/", () => "Hello World!"); 5 | 6 | app.Run(); 7 | -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 3 - Nuestro Primer Web API/Inicio/BibliotecaAPI/BibliotecaAPI/appsettings.Development.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Information", 5 | "Microsoft.AspNetCore": "Warning" 6 | } 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 3 - Nuestro Primer Web API/Inicio/BibliotecaAPI/BibliotecaAPI/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Information", 5 | "Microsoft.AspNetCore": "Warning" 6 | } 7 | }, 8 | "AllowedHosts": "*" 9 | } 10 | -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 4 - Fundamentos de ASP.NET Core/Fin/BibliotecaAPI/Entidades/Valor.cs: -------------------------------------------------------------------------------- 1 | namespace BibliotecaAPI.Entidades 2 | { 3 | public class Valor 4 | { 5 | public int Id { get; set; } 6 | public required string Nombre { get; set; } 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 4 - Fundamentos de ASP.NET Core/Fin/BibliotecaAPI/IRepositorioValores.cs: -------------------------------------------------------------------------------- 1 | using BibliotecaAPI.Entidades; 2 | 3 | namespace BibliotecaAPI 4 | { 5 | public interface IRepositorioValores 6 | { 7 | void InsertarValor(Valor valor); 8 | IEnumerable ObtenerValores(); 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 4 - Fundamentos de ASP.NET Core/Fin/BibliotecaAPI/Program.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gavilanch/CursoRESTfulAPIsASPNETCore/5e7ed70f9ab901647eec5bc29e4556676f9a2a4b/ASP.NET Core 9/Modulo 4 - Fundamentos de ASP.NET Core/Fin/BibliotecaAPI/Program.cs -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 4 - Fundamentos de ASP.NET Core/Fin/BibliotecaAPI/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Information", 5 | "Microsoft.AspNetCore": "Warning" 6 | } 7 | }, 8 | "AllowedHosts": "*" 9 | } 10 | -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 4 - Fundamentos de ASP.NET Core/Inicio/BibliotecaAPI/Program.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gavilanch/CursoRESTfulAPIsASPNETCore/5e7ed70f9ab901647eec5bc29e4556676f9a2a4b/ASP.NET Core 9/Modulo 4 - Fundamentos de ASP.NET Core/Inicio/BibliotecaAPI/Program.cs -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 4 - Fundamentos de ASP.NET Core/Inicio/BibliotecaAPI/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Information", 5 | "Microsoft.AspNetCore": "Warning" 6 | } 7 | }, 8 | "AllowedHosts": "*" 9 | } 10 | -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 5 - Manipulando Recursos/Fin/BibliotecaAPI/DTOs/AutorConLibrosDTO.cs: -------------------------------------------------------------------------------- 1 | namespace BibliotecaAPI.DTOs 2 | { 3 | public class AutorConLibrosDTO: AutorDTO 4 | { 5 | public List Libros { get; set; } = []; 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 5 - Manipulando Recursos/Fin/BibliotecaAPI/DTOs/AutorDTO.cs: -------------------------------------------------------------------------------- 1 | namespace BibliotecaAPI.DTOs 2 | { 3 | public class AutorDTO 4 | { 5 | public int Id { get; set; } 6 | public required string NombreCompleto { get; set; } 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 5 - Manipulando Recursos/Fin/BibliotecaAPI/DTOs/ComentarioCreacionDTO.cs: -------------------------------------------------------------------------------- 1 | using System.ComponentModel.DataAnnotations; 2 | 3 | namespace BibliotecaAPI.DTOs 4 | { 5 | public class ComentarioCreacionDTO 6 | { 7 | [Required] 8 | public required string Cuerpo { get; set; } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 5 - Manipulando Recursos/Fin/BibliotecaAPI/DTOs/ComentarioDTO.cs: -------------------------------------------------------------------------------- 1 | using System.ComponentModel.DataAnnotations; 2 | 3 | namespace BibliotecaAPI.DTOs 4 | { 5 | public class ComentarioDTO 6 | { 7 | public Guid Id { get; set; } 8 | public required string Cuerpo { get; set; } 9 | public DateTime FechaPublicacion { get; set; } 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 5 - Manipulando Recursos/Fin/BibliotecaAPI/DTOs/ComentarioPatchDTO.cs: -------------------------------------------------------------------------------- 1 | namespace BibliotecaAPI.DTOs 2 | { 3 | public class ComentarioPatchDTO: ComentarioCreacionDTO 4 | { 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 5 - Manipulando Recursos/Fin/BibliotecaAPI/DTOs/LibroConAutorDTO.cs: -------------------------------------------------------------------------------- 1 | namespace BibliotecaAPI.DTOs 2 | { 3 | public class LibroConAutoresDTO: LibroDTO 4 | { 5 | public List Autores { get; set; } = []; 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 5 - Manipulando Recursos/Fin/BibliotecaAPI/DTOs/LibroDTO.cs: -------------------------------------------------------------------------------- 1 | namespace BibliotecaAPI.DTOs 2 | { 3 | public class LibroDTO 4 | { 5 | public int Id { get; set; } 6 | public required string Titulo { get; set; } 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 5 - Manipulando Recursos/Fin/BibliotecaAPI/Program.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gavilanch/CursoRESTfulAPIsASPNETCore/5e7ed70f9ab901647eec5bc29e4556676f9a2a4b/ASP.NET Core 9/Modulo 5 - Manipulando Recursos/Fin/BibliotecaAPI/Program.cs -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 5 - Manipulando Recursos/Fin/BibliotecaAPI/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Information", 5 | "Microsoft.AspNetCore": "Warning" 6 | } 7 | }, 8 | "AllowedHosts": "*" 9 | } 10 | -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 5 - Manipulando Recursos/Inicio/BibliotecaAPI/Entidades/Valor.cs: -------------------------------------------------------------------------------- 1 | namespace BibliotecaAPI.Entidades 2 | { 3 | public class Valor 4 | { 5 | public int Id { get; set; } 6 | public required string Nombre { get; set; } 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 5 - Manipulando Recursos/Inicio/BibliotecaAPI/IRepositorioValores.cs: -------------------------------------------------------------------------------- 1 | using BibliotecaAPI.Entidades; 2 | 3 | namespace BibliotecaAPI 4 | { 5 | public interface IRepositorioValores 6 | { 7 | void InsertarValor(Valor valor); 8 | IEnumerable ObtenerValores(); 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 5 - Manipulando Recursos/Inicio/BibliotecaAPI/Program.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gavilanch/CursoRESTfulAPIsASPNETCore/5e7ed70f9ab901647eec5bc29e4556676f9a2a4b/ASP.NET Core 9/Modulo 5 - Manipulando Recursos/Inicio/BibliotecaAPI/Program.cs -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 5 - Manipulando Recursos/Inicio/BibliotecaAPI/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Information", 5 | "Microsoft.AspNetCore": "Warning" 6 | } 7 | }, 8 | "AllowedHosts": "*" 9 | } 10 | -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 6 - Configuraciones/Fin/BibliotecaAPI/DTOs/AutorConLibrosDTO.cs: -------------------------------------------------------------------------------- 1 | namespace BibliotecaAPI.DTOs 2 | { 3 | public class AutorConLibrosDTO: AutorDTO 4 | { 5 | public List Libros { get; set; } = []; 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 6 - Configuraciones/Fin/BibliotecaAPI/DTOs/AutorDTO.cs: -------------------------------------------------------------------------------- 1 | namespace BibliotecaAPI.DTOs 2 | { 3 | public class AutorDTO 4 | { 5 | public int Id { get; set; } 6 | public required string NombreCompleto { get; set; } 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 6 - Configuraciones/Fin/BibliotecaAPI/DTOs/ComentarioCreacionDTO.cs: -------------------------------------------------------------------------------- 1 | using System.ComponentModel.DataAnnotations; 2 | 3 | namespace BibliotecaAPI.DTOs 4 | { 5 | public class ComentarioCreacionDTO 6 | { 7 | [Required] 8 | public required string Cuerpo { get; set; } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 6 - Configuraciones/Fin/BibliotecaAPI/DTOs/ComentarioDTO.cs: -------------------------------------------------------------------------------- 1 | using System.ComponentModel.DataAnnotations; 2 | 3 | namespace BibliotecaAPI.DTOs 4 | { 5 | public class ComentarioDTO 6 | { 7 | public Guid Id { get; set; } 8 | public required string Cuerpo { get; set; } 9 | public DateTime FechaPublicacion { get; set; } 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 6 - Configuraciones/Fin/BibliotecaAPI/DTOs/ComentarioPatchDTO.cs: -------------------------------------------------------------------------------- 1 | namespace BibliotecaAPI.DTOs 2 | { 3 | public class ComentarioPatchDTO: ComentarioCreacionDTO 4 | { 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 6 - Configuraciones/Fin/BibliotecaAPI/DTOs/LibroConAutorDTO.cs: -------------------------------------------------------------------------------- 1 | namespace BibliotecaAPI.DTOs 2 | { 3 | public class LibroConAutoresDTO: LibroDTO 4 | { 5 | public List Autores { get; set; } = []; 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 6 - Configuraciones/Fin/BibliotecaAPI/DTOs/LibroDTO.cs: -------------------------------------------------------------------------------- 1 | namespace BibliotecaAPI.DTOs 2 | { 3 | public class LibroDTO 4 | { 5 | public int Id { get; set; } 6 | public required string Titulo { get; set; } 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 6 - Configuraciones/Fin/BibliotecaAPI/Program.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gavilanch/CursoRESTfulAPIsASPNETCore/5e7ed70f9ab901647eec5bc29e4556676f9a2a4b/ASP.NET Core 9/Modulo 6 - Configuraciones/Fin/BibliotecaAPI/Program.cs -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 6 - Configuraciones/Fin/BibliotecaAPI/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "quien_soy": "appsettings.json (producción)", 3 | "Logging": { 4 | "LogLevel": { 5 | "Default": "Information", 6 | "Microsoft.AspNetCore": "Warning" 7 | } 8 | }, 9 | "AllowedHosts": "*" 10 | } 11 | -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 6 - Configuraciones/Inicio/BibliotecaAPI/DTOs/AutorConLibrosDTO.cs: -------------------------------------------------------------------------------- 1 | namespace BibliotecaAPI.DTOs 2 | { 3 | public class AutorConLibrosDTO: AutorDTO 4 | { 5 | public List Libros { get; set; } = []; 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 6 - Configuraciones/Inicio/BibliotecaAPI/DTOs/AutorDTO.cs: -------------------------------------------------------------------------------- 1 | namespace BibliotecaAPI.DTOs 2 | { 3 | public class AutorDTO 4 | { 5 | public int Id { get; set; } 6 | public required string NombreCompleto { get; set; } 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 6 - Configuraciones/Inicio/BibliotecaAPI/DTOs/ComentarioCreacionDTO.cs: -------------------------------------------------------------------------------- 1 | using System.ComponentModel.DataAnnotations; 2 | 3 | namespace BibliotecaAPI.DTOs 4 | { 5 | public class ComentarioCreacionDTO 6 | { 7 | [Required] 8 | public required string Cuerpo { get; set; } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 6 - Configuraciones/Inicio/BibliotecaAPI/DTOs/ComentarioDTO.cs: -------------------------------------------------------------------------------- 1 | using System.ComponentModel.DataAnnotations; 2 | 3 | namespace BibliotecaAPI.DTOs 4 | { 5 | public class ComentarioDTO 6 | { 7 | public Guid Id { get; set; } 8 | public required string Cuerpo { get; set; } 9 | public DateTime FechaPublicacion { get; set; } 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 6 - Configuraciones/Inicio/BibliotecaAPI/DTOs/ComentarioPatchDTO.cs: -------------------------------------------------------------------------------- 1 | namespace BibliotecaAPI.DTOs 2 | { 3 | public class ComentarioPatchDTO: ComentarioCreacionDTO 4 | { 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 6 - Configuraciones/Inicio/BibliotecaAPI/DTOs/LibroConAutorDTO.cs: -------------------------------------------------------------------------------- 1 | namespace BibliotecaAPI.DTOs 2 | { 3 | public class LibroConAutoresDTO: LibroDTO 4 | { 5 | public List Autores { get; set; } = []; 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 6 - Configuraciones/Inicio/BibliotecaAPI/DTOs/LibroDTO.cs: -------------------------------------------------------------------------------- 1 | namespace BibliotecaAPI.DTOs 2 | { 3 | public class LibroDTO 4 | { 5 | public int Id { get; set; } 6 | public required string Titulo { get; set; } 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 6 - Configuraciones/Inicio/BibliotecaAPI/Program.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gavilanch/CursoRESTfulAPIsASPNETCore/5e7ed70f9ab901647eec5bc29e4556676f9a2a4b/ASP.NET Core 9/Modulo 6 - Configuraciones/Inicio/BibliotecaAPI/Program.cs -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 6 - Configuraciones/Inicio/BibliotecaAPI/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Information", 5 | "Microsoft.AspNetCore": "Warning" 6 | } 7 | }, 8 | "AllowedHosts": "*" 9 | } 10 | -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 7 - Seguridad/Fin/BibliotecaAPI/DTOs/ActualizarUsuarioDTO.cs: -------------------------------------------------------------------------------- 1 | namespace BibliotecaAPI.DTOs 2 | { 3 | public class ActualizarUsuarioDTO 4 | { 5 | public DateTime FechaNacimiento { get; set; } 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 7 - Seguridad/Fin/BibliotecaAPI/DTOs/AutorConLibrosDTO.cs: -------------------------------------------------------------------------------- 1 | namespace BibliotecaAPI.DTOs 2 | { 3 | public class AutorConLibrosDTO: AutorDTO 4 | { 5 | public List Libros { get; set; } = []; 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 7 - Seguridad/Fin/BibliotecaAPI/DTOs/AutorDTO.cs: -------------------------------------------------------------------------------- 1 | namespace BibliotecaAPI.DTOs 2 | { 3 | public class AutorDTO 4 | { 5 | public int Id { get; set; } 6 | public required string NombreCompleto { get; set; } 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 7 - Seguridad/Fin/BibliotecaAPI/DTOs/ComentarioCreacionDTO.cs: -------------------------------------------------------------------------------- 1 | using System.ComponentModel.DataAnnotations; 2 | 3 | namespace BibliotecaAPI.DTOs 4 | { 5 | public class ComentarioCreacionDTO 6 | { 7 | [Required] 8 | public required string Cuerpo { get; set; } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 7 - Seguridad/Fin/BibliotecaAPI/DTOs/ComentarioPatchDTO.cs: -------------------------------------------------------------------------------- 1 | namespace BibliotecaAPI.DTOs 2 | { 3 | public class ComentarioPatchDTO: ComentarioCreacionDTO 4 | { 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 7 - Seguridad/Fin/BibliotecaAPI/DTOs/EditarClaimDTO.cs: -------------------------------------------------------------------------------- 1 | using System.ComponentModel.DataAnnotations; 2 | 3 | namespace BibliotecaAPI.DTOs 4 | { 5 | public class EditarClaimDTO 6 | { 7 | [EmailAddress] 8 | [Required] 9 | public required string Email { get; set; } 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 7 - Seguridad/Fin/BibliotecaAPI/DTOs/LibroConAutorDTO.cs: -------------------------------------------------------------------------------- 1 | namespace BibliotecaAPI.DTOs 2 | { 3 | public class LibroConAutoresDTO: LibroDTO 4 | { 5 | public List Autores { get; set; } = []; 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 7 - Seguridad/Fin/BibliotecaAPI/DTOs/LibroDTO.cs: -------------------------------------------------------------------------------- 1 | namespace BibliotecaAPI.DTOs 2 | { 3 | public class LibroDTO 4 | { 5 | public int Id { get; set; } 6 | public required string Titulo { get; set; } 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 7 - Seguridad/Fin/BibliotecaAPI/DTOs/RespuestaAutenticacionDTO.cs: -------------------------------------------------------------------------------- 1 | namespace BibliotecaAPI.DTOs 2 | { 3 | public class RespuestaAutenticacionDTO 4 | { 5 | public required string Token { get; set; } 6 | public DateTime Expiracion { get; set; } 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 7 - Seguridad/Fin/BibliotecaAPI/DTOs/ResultadoHashDTO.cs: -------------------------------------------------------------------------------- 1 | namespace BibliotecaAPI.DTOs 2 | { 3 | public class ResultadoHashDTO 4 | { 5 | public required string Hash { get; set; } 6 | public required byte[] Sal { get; set; } 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 7 - Seguridad/Fin/BibliotecaAPI/DTOs/UsuarioDTO.cs: -------------------------------------------------------------------------------- 1 | namespace BibliotecaAPI.DTOs 2 | { 3 | public class UsuarioDTO 4 | { 5 | public required string Email { get; set; } 6 | public DateTime FechaNacimiento { get; set; } 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 7 - Seguridad/Fin/BibliotecaAPI/Entidades/Usuario.cs: -------------------------------------------------------------------------------- 1 | using Microsoft.AspNetCore.Identity; 2 | 3 | namespace BibliotecaAPI.Entidades 4 | { 5 | public class Usuario: IdentityUser 6 | { 7 | public DateTime FechaNacimiento { get; set; } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 7 - Seguridad/Fin/BibliotecaAPI/Program.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gavilanch/CursoRESTfulAPIsASPNETCore/5e7ed70f9ab901647eec5bc29e4556676f9a2a4b/ASP.NET Core 9/Modulo 7 - Seguridad/Fin/BibliotecaAPI/Program.cs -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 7 - Seguridad/Fin/BibliotecaAPI/Servicios/IServicioHash.cs: -------------------------------------------------------------------------------- 1 | using BibliotecaAPI.DTOs; 2 | 3 | namespace BibliotecaAPI.Servicios 4 | { 5 | public interface IServicioHash 6 | { 7 | ResultadoHashDTO Hash(string input); 8 | ResultadoHashDTO Hash(string input, byte[] sal); 9 | } 10 | } -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 7 - Seguridad/Fin/BibliotecaAPI/Servicios/IServiciosUsuarios.cs: -------------------------------------------------------------------------------- 1 | using BibliotecaAPI.Entidades; 2 | using Microsoft.AspNetCore.Identity; 3 | 4 | namespace BibliotecaAPI.Servicios 5 | { 6 | public interface IServiciosUsuarios 7 | { 8 | Task ObtenerUsuario(); 9 | } 10 | } -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 7 - Seguridad/Fin/BibliotecaAPI/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Information", 5 | "Microsoft.AspNetCore": "Warning" 6 | } 7 | }, 8 | "AllowedHosts": "*" 9 | } 10 | -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 7 - Seguridad/Inicio/BibliotecaAPI/DTOs/AutorConLibrosDTO.cs: -------------------------------------------------------------------------------- 1 | namespace BibliotecaAPI.DTOs 2 | { 3 | public class AutorConLibrosDTO: AutorDTO 4 | { 5 | public List Libros { get; set; } = []; 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 7 - Seguridad/Inicio/BibliotecaAPI/DTOs/AutorDTO.cs: -------------------------------------------------------------------------------- 1 | namespace BibliotecaAPI.DTOs 2 | { 3 | public class AutorDTO 4 | { 5 | public int Id { get; set; } 6 | public required string NombreCompleto { get; set; } 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 7 - Seguridad/Inicio/BibliotecaAPI/DTOs/ComentarioCreacionDTO.cs: -------------------------------------------------------------------------------- 1 | using System.ComponentModel.DataAnnotations; 2 | 3 | namespace BibliotecaAPI.DTOs 4 | { 5 | public class ComentarioCreacionDTO 6 | { 7 | [Required] 8 | public required string Cuerpo { get; set; } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 7 - Seguridad/Inicio/BibliotecaAPI/DTOs/ComentarioDTO.cs: -------------------------------------------------------------------------------- 1 | using System.ComponentModel.DataAnnotations; 2 | 3 | namespace BibliotecaAPI.DTOs 4 | { 5 | public class ComentarioDTO 6 | { 7 | public Guid Id { get; set; } 8 | public required string Cuerpo { get; set; } 9 | public DateTime FechaPublicacion { get; set; } 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 7 - Seguridad/Inicio/BibliotecaAPI/DTOs/ComentarioPatchDTO.cs: -------------------------------------------------------------------------------- 1 | namespace BibliotecaAPI.DTOs 2 | { 3 | public class ComentarioPatchDTO: ComentarioCreacionDTO 4 | { 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 7 - Seguridad/Inicio/BibliotecaAPI/DTOs/LibroConAutorDTO.cs: -------------------------------------------------------------------------------- 1 | namespace BibliotecaAPI.DTOs 2 | { 3 | public class LibroConAutoresDTO: LibroDTO 4 | { 5 | public List Autores { get; set; } = []; 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 7 - Seguridad/Inicio/BibliotecaAPI/DTOs/LibroDTO.cs: -------------------------------------------------------------------------------- 1 | namespace BibliotecaAPI.DTOs 2 | { 3 | public class LibroDTO 4 | { 5 | public int Id { get; set; } 6 | public required string Titulo { get; set; } 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 7 - Seguridad/Inicio/BibliotecaAPI/Program.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gavilanch/CursoRESTfulAPIsASPNETCore/5e7ed70f9ab901647eec5bc29e4556676f9a2a4b/ASP.NET Core 9/Modulo 7 - Seguridad/Inicio/BibliotecaAPI/Program.cs -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 7 - Seguridad/Inicio/BibliotecaAPI/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "quien_soy": "appsettings.json (producción)", 3 | "Logging": { 4 | "LogLevel": { 5 | "Default": "Information", 6 | "Microsoft.AspNetCore": "Warning" 7 | } 8 | }, 9 | "AllowedHosts": "*" 10 | } 11 | -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 8 - Escenarios Avanzados/Fin/BibliotecaAPI/DTOs/ActualizarUsuarioDTO.cs: -------------------------------------------------------------------------------- 1 | namespace BibliotecaAPI.DTOs 2 | { 3 | public class ActualizarUsuarioDTO 4 | { 5 | public DateTime FechaNacimiento { get; set; } 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 8 - Escenarios Avanzados/Fin/BibliotecaAPI/DTOs/AutorConLibrosDTO.cs: -------------------------------------------------------------------------------- 1 | namespace BibliotecaAPI.DTOs 2 | { 3 | public class AutorConLibrosDTO: AutorDTO 4 | { 5 | public List Libros { get; set; } = []; 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 8 - Escenarios Avanzados/Fin/BibliotecaAPI/DTOs/AutorCreacionDTOConFoto.cs: -------------------------------------------------------------------------------- 1 | namespace BibliotecaAPI.DTOs 2 | { 3 | public class AutorCreacionDTOConFoto: AutorCreacionDTO 4 | { 5 | public IFormFile? Foto { get; set; } 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 8 - Escenarios Avanzados/Fin/BibliotecaAPI/DTOs/AutorDTO.cs: -------------------------------------------------------------------------------- 1 | namespace BibliotecaAPI.DTOs 2 | { 3 | public class AutorDTO: RecursoDTO 4 | { 5 | public int Id { get; set; } 6 | public required string NombreCompleto { get; set; } 7 | public string? Foto { get; set; } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 8 - Escenarios Avanzados/Fin/BibliotecaAPI/DTOs/ColeccionDeRecursosDTO.cs: -------------------------------------------------------------------------------- 1 | namespace BibliotecaAPI.DTOs 2 | { 3 | public class ColeccionDeRecursosDTO: RecursoDTO where T: RecursoDTO 4 | { 5 | public IEnumerable Valores { get; set; } = []; 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 8 - Escenarios Avanzados/Fin/BibliotecaAPI/DTOs/ComentarioCreacionDTO.cs: -------------------------------------------------------------------------------- 1 | using System.ComponentModel.DataAnnotations; 2 | 3 | namespace BibliotecaAPI.DTOs 4 | { 5 | public class ComentarioCreacionDTO 6 | { 7 | [Required] 8 | public required string Cuerpo { get; set; } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 8 - Escenarios Avanzados/Fin/BibliotecaAPI/DTOs/ComentarioPatchDTO.cs: -------------------------------------------------------------------------------- 1 | namespace BibliotecaAPI.DTOs 2 | { 3 | public class ComentarioPatchDTO: ComentarioCreacionDTO 4 | { 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 8 - Escenarios Avanzados/Fin/BibliotecaAPI/DTOs/DatosHATEOASDTO.cs: -------------------------------------------------------------------------------- 1 | namespace BibliotecaAPI.DTOs 2 | { 3 | public record DatosHATEOASDTO(string Enlace, string Descripcion, string Metodo); 4 | } 5 | -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 8 - Escenarios Avanzados/Fin/BibliotecaAPI/DTOs/EditarClaimDTO.cs: -------------------------------------------------------------------------------- 1 | using System.ComponentModel.DataAnnotations; 2 | 3 | namespace BibliotecaAPI.DTOs 4 | { 5 | public class EditarClaimDTO 6 | { 7 | [EmailAddress] 8 | [Required] 9 | public required string Email { get; set; } 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 8 - Escenarios Avanzados/Fin/BibliotecaAPI/DTOs/LibroConAutorDTO.cs: -------------------------------------------------------------------------------- 1 | namespace BibliotecaAPI.DTOs 2 | { 3 | public class LibroConAutoresDTO: LibroDTO 4 | { 5 | public List Autores { get; set; } = []; 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 8 - Escenarios Avanzados/Fin/BibliotecaAPI/DTOs/LibroDTO.cs: -------------------------------------------------------------------------------- 1 | namespace BibliotecaAPI.DTOs 2 | { 3 | public class LibroDTO 4 | { 5 | public int Id { get; set; } 6 | public required string Titulo { get; set; } 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 8 - Escenarios Avanzados/Fin/BibliotecaAPI/DTOs/RecursoDTO.cs: -------------------------------------------------------------------------------- 1 | namespace BibliotecaAPI.DTOs 2 | { 3 | public class RecursoDTO 4 | { 5 | public List Enlaces { get; set; } = []; 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 8 - Escenarios Avanzados/Fin/BibliotecaAPI/DTOs/RespuestaAutenticacionDTO.cs: -------------------------------------------------------------------------------- 1 | namespace BibliotecaAPI.DTOs 2 | { 3 | public class RespuestaAutenticacionDTO 4 | { 5 | public required string Token { get; set; } 6 | public DateTime Expiracion { get; set; } 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 8 - Escenarios Avanzados/Fin/BibliotecaAPI/DTOs/ResultadoHashDTO.cs: -------------------------------------------------------------------------------- 1 | namespace BibliotecaAPI.DTOs 2 | { 3 | public class ResultadoHashDTO 4 | { 5 | public required string Hash { get; set; } 6 | public required byte[] Sal { get; set; } 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 8 - Escenarios Avanzados/Fin/BibliotecaAPI/DTOs/UsuarioDTO.cs: -------------------------------------------------------------------------------- 1 | namespace BibliotecaAPI.DTOs 2 | { 3 | public class UsuarioDTO 4 | { 5 | public required string Email { get; set; } 6 | public DateTime FechaNacimiento { get; set; } 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 8 - Escenarios Avanzados/Fin/BibliotecaAPI/Entidades/Error.cs: -------------------------------------------------------------------------------- 1 | namespace BibliotecaAPI.Entidades 2 | { 3 | public class Error 4 | { 5 | public Guid Id { get; set; } 6 | public required string MensajeDeError { get; set; } 7 | public string? StrackTrace { get; set; } 8 | public DateTime Fecha { get; set; } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 8 - Escenarios Avanzados/Fin/BibliotecaAPI/Entidades/Usuario.cs: -------------------------------------------------------------------------------- 1 | using Microsoft.AspNetCore.Identity; 2 | 3 | namespace BibliotecaAPI.Entidades 4 | { 5 | public class Usuario: IdentityUser 6 | { 7 | public DateTime FechaNacimiento { get; set; } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 8 - Escenarios Avanzados/Fin/BibliotecaAPI/Program.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gavilanch/CursoRESTfulAPIsASPNETCore/5e7ed70f9ab901647eec5bc29e4556676f9a2a4b/ASP.NET Core 9/Modulo 8 - Escenarios Avanzados/Fin/BibliotecaAPI/Program.cs -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 8 - Escenarios Avanzados/Fin/BibliotecaAPI/Servicios/IServiciosUsuarios.cs: -------------------------------------------------------------------------------- 1 | using BibliotecaAPI.Entidades; 2 | using Microsoft.AspNetCore.Identity; 3 | 4 | namespace BibliotecaAPI.Servicios 5 | { 6 | public interface IServiciosUsuarios 7 | { 8 | Task ObtenerUsuario(); 9 | } 10 | } -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 8 - Escenarios Avanzados/Fin/BibliotecaAPI/Servicios/V1/IGeneradorEnlaces.cs: -------------------------------------------------------------------------------- 1 | using BibliotecaAPI.DTOs; 2 | 3 | namespace BibliotecaAPI.Servicios.V1 4 | { 5 | public interface IGeneradorEnlaces 6 | { 7 | Task GenerarEnlaces(AutorDTO autorDTO); 8 | Task> GenerarEnlaces(List autores); 9 | } 10 | } -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 8 - Escenarios Avanzados/Fin/BibliotecaAPI/Servicios/V1/IServicioAutores.cs: -------------------------------------------------------------------------------- 1 | using BibliotecaAPI.DTOs; 2 | using Microsoft.AspNetCore.Mvc; 3 | 4 | namespace BibliotecaAPI.Servicios.V1 5 | { 6 | public interface IServicioAutores 7 | { 8 | Task> Get(PaginacionDTO paginacionDTO); 9 | } 10 | } -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 8 - Escenarios Avanzados/Fin/BibliotecaAPI/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Information", 5 | "Microsoft.AspNetCore": "Warning" 6 | } 7 | }, 8 | "AllowedHosts": "*" 9 | } 10 | -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 8 - Escenarios Avanzados/Inicio/BibliotecaAPI/DTOs/ActualizarUsuarioDTO.cs: -------------------------------------------------------------------------------- 1 | namespace BibliotecaAPI.DTOs 2 | { 3 | public class ActualizarUsuarioDTO 4 | { 5 | public DateTime FechaNacimiento { get; set; } 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 8 - Escenarios Avanzados/Inicio/BibliotecaAPI/DTOs/AutorConLibrosDTO.cs: -------------------------------------------------------------------------------- 1 | namespace BibliotecaAPI.DTOs 2 | { 3 | public class AutorConLibrosDTO: AutorDTO 4 | { 5 | public List Libros { get; set; } = []; 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 8 - Escenarios Avanzados/Inicio/BibliotecaAPI/DTOs/AutorDTO.cs: -------------------------------------------------------------------------------- 1 | namespace BibliotecaAPI.DTOs 2 | { 3 | public class AutorDTO 4 | { 5 | public int Id { get; set; } 6 | public required string NombreCompleto { get; set; } 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 8 - Escenarios Avanzados/Inicio/BibliotecaAPI/DTOs/ComentarioCreacionDTO.cs: -------------------------------------------------------------------------------- 1 | using System.ComponentModel.DataAnnotations; 2 | 3 | namespace BibliotecaAPI.DTOs 4 | { 5 | public class ComentarioCreacionDTO 6 | { 7 | [Required] 8 | public required string Cuerpo { get; set; } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 8 - Escenarios Avanzados/Inicio/BibliotecaAPI/DTOs/ComentarioPatchDTO.cs: -------------------------------------------------------------------------------- 1 | namespace BibliotecaAPI.DTOs 2 | { 3 | public class ComentarioPatchDTO: ComentarioCreacionDTO 4 | { 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 8 - Escenarios Avanzados/Inicio/BibliotecaAPI/DTOs/EditarClaimDTO.cs: -------------------------------------------------------------------------------- 1 | using System.ComponentModel.DataAnnotations; 2 | 3 | namespace BibliotecaAPI.DTOs 4 | { 5 | public class EditarClaimDTO 6 | { 7 | [EmailAddress] 8 | [Required] 9 | public required string Email { get; set; } 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 8 - Escenarios Avanzados/Inicio/BibliotecaAPI/DTOs/LibroConAutorDTO.cs: -------------------------------------------------------------------------------- 1 | namespace BibliotecaAPI.DTOs 2 | { 3 | public class LibroConAutoresDTO: LibroDTO 4 | { 5 | public List Autores { get; set; } = []; 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 8 - Escenarios Avanzados/Inicio/BibliotecaAPI/DTOs/LibroDTO.cs: -------------------------------------------------------------------------------- 1 | namespace BibliotecaAPI.DTOs 2 | { 3 | public class LibroDTO 4 | { 5 | public int Id { get; set; } 6 | public required string Titulo { get; set; } 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 8 - Escenarios Avanzados/Inicio/BibliotecaAPI/DTOs/RespuestaAutenticacionDTO.cs: -------------------------------------------------------------------------------- 1 | namespace BibliotecaAPI.DTOs 2 | { 3 | public class RespuestaAutenticacionDTO 4 | { 5 | public required string Token { get; set; } 6 | public DateTime Expiracion { get; set; } 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 8 - Escenarios Avanzados/Inicio/BibliotecaAPI/DTOs/ResultadoHashDTO.cs: -------------------------------------------------------------------------------- 1 | namespace BibliotecaAPI.DTOs 2 | { 3 | public class ResultadoHashDTO 4 | { 5 | public required string Hash { get; set; } 6 | public required byte[] Sal { get; set; } 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 8 - Escenarios Avanzados/Inicio/BibliotecaAPI/DTOs/UsuarioDTO.cs: -------------------------------------------------------------------------------- 1 | namespace BibliotecaAPI.DTOs 2 | { 3 | public class UsuarioDTO 4 | { 5 | public required string Email { get; set; } 6 | public DateTime FechaNacimiento { get; set; } 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 8 - Escenarios Avanzados/Inicio/BibliotecaAPI/Entidades/Usuario.cs: -------------------------------------------------------------------------------- 1 | using Microsoft.AspNetCore.Identity; 2 | 3 | namespace BibliotecaAPI.Entidades 4 | { 5 | public class Usuario: IdentityUser 6 | { 7 | public DateTime FechaNacimiento { get; set; } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 8 - Escenarios Avanzados/Inicio/BibliotecaAPI/Program.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gavilanch/CursoRESTfulAPIsASPNETCore/5e7ed70f9ab901647eec5bc29e4556676f9a2a4b/ASP.NET Core 9/Modulo 8 - Escenarios Avanzados/Inicio/BibliotecaAPI/Program.cs -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 8 - Escenarios Avanzados/Inicio/BibliotecaAPI/Servicios/IServicioHash.cs: -------------------------------------------------------------------------------- 1 | using BibliotecaAPI.DTOs; 2 | 3 | namespace BibliotecaAPI.Servicios 4 | { 5 | public interface IServicioHash 6 | { 7 | ResultadoHashDTO Hash(string input); 8 | ResultadoHashDTO Hash(string input, byte[] sal); 9 | } 10 | } -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 8 - Escenarios Avanzados/Inicio/BibliotecaAPI/Servicios/IServiciosUsuarios.cs: -------------------------------------------------------------------------------- 1 | using BibliotecaAPI.Entidades; 2 | using Microsoft.AspNetCore.Identity; 3 | 4 | namespace BibliotecaAPI.Servicios 5 | { 6 | public interface IServiciosUsuarios 7 | { 8 | Task ObtenerUsuario(); 9 | } 10 | } -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 8 - Escenarios Avanzados/Inicio/BibliotecaAPI/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Information", 5 | "Microsoft.AspNetCore": "Warning" 6 | } 7 | }, 8 | "AllowedHosts": "*" 9 | } 10 | -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 9 - Pruebas Automaticas/Fin/BibliotecaAPI/DTOs/ActualizarUsuarioDTO.cs: -------------------------------------------------------------------------------- 1 | namespace BibliotecaAPI.DTOs 2 | { 3 | public class ActualizarUsuarioDTO 4 | { 5 | public DateTime FechaNacimiento { get; set; } 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 9 - Pruebas Automaticas/Fin/BibliotecaAPI/DTOs/AutorConLibrosDTO.cs: -------------------------------------------------------------------------------- 1 | namespace BibliotecaAPI.DTOs 2 | { 3 | public class AutorConLibrosDTO: AutorDTO 4 | { 5 | public List Libros { get; set; } = []; 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 9 - Pruebas Automaticas/Fin/BibliotecaAPI/DTOs/AutorCreacionDTOConFoto.cs: -------------------------------------------------------------------------------- 1 | namespace BibliotecaAPI.DTOs 2 | { 3 | public class AutorCreacionDTOConFoto: AutorCreacionDTO 4 | { 5 | public IFormFile? Foto { get; set; } 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 9 - Pruebas Automaticas/Fin/BibliotecaAPI/DTOs/AutorDTO.cs: -------------------------------------------------------------------------------- 1 | namespace BibliotecaAPI.DTOs 2 | { 3 | public class AutorDTO: RecursoDTO 4 | { 5 | public int Id { get; set; } 6 | public required string NombreCompleto { get; set; } 7 | public string? Foto { get; set; } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 9 - Pruebas Automaticas/Fin/BibliotecaAPI/DTOs/ColeccionDeRecursosDTO.cs: -------------------------------------------------------------------------------- 1 | namespace BibliotecaAPI.DTOs 2 | { 3 | public class ColeccionDeRecursosDTO: RecursoDTO where T: RecursoDTO 4 | { 5 | public IEnumerable Valores { get; set; } = []; 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 9 - Pruebas Automaticas/Fin/BibliotecaAPI/DTOs/ComentarioCreacionDTO.cs: -------------------------------------------------------------------------------- 1 | using System.ComponentModel.DataAnnotations; 2 | 3 | namespace BibliotecaAPI.DTOs 4 | { 5 | public class ComentarioCreacionDTO 6 | { 7 | [Required] 8 | public required string Cuerpo { get; set; } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 9 - Pruebas Automaticas/Fin/BibliotecaAPI/DTOs/ComentarioPatchDTO.cs: -------------------------------------------------------------------------------- 1 | namespace BibliotecaAPI.DTOs 2 | { 3 | public class ComentarioPatchDTO: ComentarioCreacionDTO 4 | { 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 9 - Pruebas Automaticas/Fin/BibliotecaAPI/DTOs/DatosHATEOASDTO.cs: -------------------------------------------------------------------------------- 1 | namespace BibliotecaAPI.DTOs 2 | { 3 | public record DatosHATEOASDTO(string Enlace, string Descripcion, string Metodo); 4 | } 5 | -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 9 - Pruebas Automaticas/Fin/BibliotecaAPI/DTOs/EditarClaimDTO.cs: -------------------------------------------------------------------------------- 1 | using System.ComponentModel.DataAnnotations; 2 | 3 | namespace BibliotecaAPI.DTOs 4 | { 5 | public class EditarClaimDTO 6 | { 7 | [EmailAddress] 8 | [Required] 9 | public required string Email { get; set; } 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 9 - Pruebas Automaticas/Fin/BibliotecaAPI/DTOs/LibroConAutorDTO.cs: -------------------------------------------------------------------------------- 1 | namespace BibliotecaAPI.DTOs 2 | { 3 | public class LibroConAutoresDTO: LibroDTO 4 | { 5 | public List Autores { get; set; } = []; 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 9 - Pruebas Automaticas/Fin/BibliotecaAPI/DTOs/LibroDTO.cs: -------------------------------------------------------------------------------- 1 | namespace BibliotecaAPI.DTOs 2 | { 3 | public class LibroDTO 4 | { 5 | public int Id { get; set; } 6 | public required string Titulo { get; set; } 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 9 - Pruebas Automaticas/Fin/BibliotecaAPI/DTOs/RecursoDTO.cs: -------------------------------------------------------------------------------- 1 | namespace BibliotecaAPI.DTOs 2 | { 3 | public class RecursoDTO 4 | { 5 | public List Enlaces { get; set; } = []; 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 9 - Pruebas Automaticas/Fin/BibliotecaAPI/DTOs/RespuestaAutenticacionDTO.cs: -------------------------------------------------------------------------------- 1 | namespace BibliotecaAPI.DTOs 2 | { 3 | public class RespuestaAutenticacionDTO 4 | { 5 | public required string Token { get; set; } 6 | public DateTime Expiracion { get; set; } 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 9 - Pruebas Automaticas/Fin/BibliotecaAPI/DTOs/ResultadoHashDTO.cs: -------------------------------------------------------------------------------- 1 | namespace BibliotecaAPI.DTOs 2 | { 3 | public class ResultadoHashDTO 4 | { 5 | public required string Hash { get; set; } 6 | public required byte[] Sal { get; set; } 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 9 - Pruebas Automaticas/Fin/BibliotecaAPI/DTOs/UsuarioDTO.cs: -------------------------------------------------------------------------------- 1 | namespace BibliotecaAPI.DTOs 2 | { 3 | public class UsuarioDTO 4 | { 5 | public required string Email { get; set; } 6 | public DateTime FechaNacimiento { get; set; } 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 9 - Pruebas Automaticas/Fin/BibliotecaAPI/Entidades/Error.cs: -------------------------------------------------------------------------------- 1 | namespace BibliotecaAPI.Entidades 2 | { 3 | public class Error 4 | { 5 | public Guid Id { get; set; } 6 | public required string MensajeDeError { get; set; } 7 | public string? StrackTrace { get; set; } 8 | public DateTime Fecha { get; set; } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 9 - Pruebas Automaticas/Fin/BibliotecaAPI/Entidades/Usuario.cs: -------------------------------------------------------------------------------- 1 | using Microsoft.AspNetCore.Identity; 2 | 3 | namespace BibliotecaAPI.Entidades 4 | { 5 | public class Usuario: IdentityUser 6 | { 7 | public DateTime FechaNacimiento { get; set; } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 9 - Pruebas Automaticas/Fin/BibliotecaAPI/Program.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gavilanch/CursoRESTfulAPIsASPNETCore/5e7ed70f9ab901647eec5bc29e4556676f9a2a4b/ASP.NET Core 9/Modulo 9 - Pruebas Automaticas/Fin/BibliotecaAPI/Program.cs -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 9 - Pruebas Automaticas/Fin/BibliotecaAPI/Servicios/IServiciosUsuarios.cs: -------------------------------------------------------------------------------- 1 | using BibliotecaAPI.Entidades; 2 | using Microsoft.AspNetCore.Identity; 3 | 4 | namespace BibliotecaAPI.Servicios 5 | { 6 | public interface IServiciosUsuarios 7 | { 8 | Task ObtenerUsuario(); 9 | } 10 | } -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 9 - Pruebas Automaticas/Fin/BibliotecaAPI/Servicios/V1/IGeneradorEnlaces.cs: -------------------------------------------------------------------------------- 1 | using BibliotecaAPI.DTOs; 2 | 3 | namespace BibliotecaAPI.Servicios.V1 4 | { 5 | public interface IGeneradorEnlaces 6 | { 7 | Task GenerarEnlaces(AutorDTO autorDTO); 8 | Task> GenerarEnlaces(List autores); 9 | } 10 | } -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 9 - Pruebas Automaticas/Fin/BibliotecaAPI/Servicios/V1/IServicioAutores.cs: -------------------------------------------------------------------------------- 1 | using BibliotecaAPI.DTOs; 2 | using Microsoft.AspNetCore.Mvc; 3 | 4 | namespace BibliotecaAPI.Servicios.V1 5 | { 6 | public interface IServicioAutores 7 | { 8 | Task> Get(PaginacionDTO paginacionDTO); 9 | } 10 | } -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 9 - Pruebas Automaticas/Fin/BibliotecaAPI/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Information", 5 | "Microsoft.AspNetCore": "Warning" 6 | } 7 | }, 8 | "AllowedHosts": "*" 9 | } 10 | -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 9 - Pruebas Automaticas/Fin/BibliotecaAPITests/MSTestSettings.cs: -------------------------------------------------------------------------------- 1 | [assembly: Parallelize(Scope = ExecutionScope.MethodLevel)] 2 | -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 9 - Pruebas Automaticas/Inicio/BibliotecaAPI/DTOs/ActualizarUsuarioDTO.cs: -------------------------------------------------------------------------------- 1 | namespace BibliotecaAPI.DTOs 2 | { 3 | public class ActualizarUsuarioDTO 4 | { 5 | public DateTime FechaNacimiento { get; set; } 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 9 - Pruebas Automaticas/Inicio/BibliotecaAPI/DTOs/AutorConLibrosDTO.cs: -------------------------------------------------------------------------------- 1 | namespace BibliotecaAPI.DTOs 2 | { 3 | public class AutorConLibrosDTO: AutorDTO 4 | { 5 | public List Libros { get; set; } = []; 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 9 - Pruebas Automaticas/Inicio/BibliotecaAPI/DTOs/AutorCreacionDTOConFoto.cs: -------------------------------------------------------------------------------- 1 | namespace BibliotecaAPI.DTOs 2 | { 3 | public class AutorCreacionDTOConFoto: AutorCreacionDTO 4 | { 5 | public IFormFile? Foto { get; set; } 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 9 - Pruebas Automaticas/Inicio/BibliotecaAPI/DTOs/AutorDTO.cs: -------------------------------------------------------------------------------- 1 | namespace BibliotecaAPI.DTOs 2 | { 3 | public class AutorDTO: RecursoDTO 4 | { 5 | public int Id { get; set; } 6 | public required string NombreCompleto { get; set; } 7 | public string? Foto { get; set; } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 9 - Pruebas Automaticas/Inicio/BibliotecaAPI/DTOs/ColeccionDeRecursosDTO.cs: -------------------------------------------------------------------------------- 1 | namespace BibliotecaAPI.DTOs 2 | { 3 | public class ColeccionDeRecursosDTO: RecursoDTO where T: RecursoDTO 4 | { 5 | public IEnumerable Valores { get; set; } = []; 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 9 - Pruebas Automaticas/Inicio/BibliotecaAPI/DTOs/ComentarioCreacionDTO.cs: -------------------------------------------------------------------------------- 1 | using System.ComponentModel.DataAnnotations; 2 | 3 | namespace BibliotecaAPI.DTOs 4 | { 5 | public class ComentarioCreacionDTO 6 | { 7 | [Required] 8 | public required string Cuerpo { get; set; } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 9 - Pruebas Automaticas/Inicio/BibliotecaAPI/DTOs/ComentarioPatchDTO.cs: -------------------------------------------------------------------------------- 1 | namespace BibliotecaAPI.DTOs 2 | { 3 | public class ComentarioPatchDTO: ComentarioCreacionDTO 4 | { 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 9 - Pruebas Automaticas/Inicio/BibliotecaAPI/DTOs/DatosHATEOASDTO.cs: -------------------------------------------------------------------------------- 1 | namespace BibliotecaAPI.DTOs 2 | { 3 | public record DatosHATEOASDTO(string Enlace, string Descripcion, string Metodo); 4 | } 5 | -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 9 - Pruebas Automaticas/Inicio/BibliotecaAPI/DTOs/EditarClaimDTO.cs: -------------------------------------------------------------------------------- 1 | using System.ComponentModel.DataAnnotations; 2 | 3 | namespace BibliotecaAPI.DTOs 4 | { 5 | public class EditarClaimDTO 6 | { 7 | [EmailAddress] 8 | [Required] 9 | public required string Email { get; set; } 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 9 - Pruebas Automaticas/Inicio/BibliotecaAPI/DTOs/LibroConAutorDTO.cs: -------------------------------------------------------------------------------- 1 | namespace BibliotecaAPI.DTOs 2 | { 3 | public class LibroConAutoresDTO: LibroDTO 4 | { 5 | public List Autores { get; set; } = []; 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 9 - Pruebas Automaticas/Inicio/BibliotecaAPI/DTOs/LibroDTO.cs: -------------------------------------------------------------------------------- 1 | namespace BibliotecaAPI.DTOs 2 | { 3 | public class LibroDTO 4 | { 5 | public int Id { get; set; } 6 | public required string Titulo { get; set; } 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 9 - Pruebas Automaticas/Inicio/BibliotecaAPI/DTOs/RecursoDTO.cs: -------------------------------------------------------------------------------- 1 | namespace BibliotecaAPI.DTOs 2 | { 3 | public class RecursoDTO 4 | { 5 | public List Enlaces { get; set; } = []; 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 9 - Pruebas Automaticas/Inicio/BibliotecaAPI/DTOs/RespuestaAutenticacionDTO.cs: -------------------------------------------------------------------------------- 1 | namespace BibliotecaAPI.DTOs 2 | { 3 | public class RespuestaAutenticacionDTO 4 | { 5 | public required string Token { get; set; } 6 | public DateTime Expiracion { get; set; } 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 9 - Pruebas Automaticas/Inicio/BibliotecaAPI/DTOs/ResultadoHashDTO.cs: -------------------------------------------------------------------------------- 1 | namespace BibliotecaAPI.DTOs 2 | { 3 | public class ResultadoHashDTO 4 | { 5 | public required string Hash { get; set; } 6 | public required byte[] Sal { get; set; } 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 9 - Pruebas Automaticas/Inicio/BibliotecaAPI/DTOs/UsuarioDTO.cs: -------------------------------------------------------------------------------- 1 | namespace BibliotecaAPI.DTOs 2 | { 3 | public class UsuarioDTO 4 | { 5 | public required string Email { get; set; } 6 | public DateTime FechaNacimiento { get; set; } 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 9 - Pruebas Automaticas/Inicio/BibliotecaAPI/Entidades/Error.cs: -------------------------------------------------------------------------------- 1 | namespace BibliotecaAPI.Entidades 2 | { 3 | public class Error 4 | { 5 | public Guid Id { get; set; } 6 | public required string MensajeDeError { get; set; } 7 | public string? StrackTrace { get; set; } 8 | public DateTime Fecha { get; set; } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 9 - Pruebas Automaticas/Inicio/BibliotecaAPI/Entidades/Usuario.cs: -------------------------------------------------------------------------------- 1 | using Microsoft.AspNetCore.Identity; 2 | 3 | namespace BibliotecaAPI.Entidades 4 | { 5 | public class Usuario: IdentityUser 6 | { 7 | public DateTime FechaNacimiento { get; set; } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 9 - Pruebas Automaticas/Inicio/BibliotecaAPI/Program.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gavilanch/CursoRESTfulAPIsASPNETCore/5e7ed70f9ab901647eec5bc29e4556676f9a2a4b/ASP.NET Core 9/Modulo 9 - Pruebas Automaticas/Inicio/BibliotecaAPI/Program.cs -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 9 - Pruebas Automaticas/Inicio/BibliotecaAPI/Servicios/IServiciosUsuarios.cs: -------------------------------------------------------------------------------- 1 | using BibliotecaAPI.Entidades; 2 | using Microsoft.AspNetCore.Identity; 3 | 4 | namespace BibliotecaAPI.Servicios 5 | { 6 | public interface IServiciosUsuarios 7 | { 8 | Task ObtenerUsuario(); 9 | } 10 | } -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 9 - Pruebas Automaticas/Inicio/BibliotecaAPI/Servicios/V1/IGeneradorEnlaces.cs: -------------------------------------------------------------------------------- 1 | using BibliotecaAPI.DTOs; 2 | 3 | namespace BibliotecaAPI.Servicios.V1 4 | { 5 | public interface IGeneradorEnlaces 6 | { 7 | Task GenerarEnlaces(AutorDTO autorDTO); 8 | Task> GenerarEnlaces(List autores); 9 | } 10 | } -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 9 - Pruebas Automaticas/Inicio/BibliotecaAPI/Servicios/V1/IServicioAutores.cs: -------------------------------------------------------------------------------- 1 | using BibliotecaAPI.DTOs; 2 | using Microsoft.AspNetCore.Mvc; 3 | 4 | namespace BibliotecaAPI.Servicios.V1 5 | { 6 | public interface IServicioAutores 7 | { 8 | Task> Get(PaginacionDTO paginacionDTO); 9 | } 10 | } -------------------------------------------------------------------------------- /ASP.NET Core 9/Modulo 9 - Pruebas Automaticas/Inicio/BibliotecaAPI/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Information", 5 | "Microsoft.AspNetCore": "Warning" 6 | } 7 | }, 8 | "AllowedHosts": "*" 9 | } 10 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Repositorio del curso: Construyendo Web APIs con ASP.NET Core 9 2 | 3 | Link del curso con descuento aplicado: https://felipe-gavilan.azurewebsites.net/api/Redireccion?curso=asp-net-core-web-apis-esp&video=github-repo 4 | 5 | En este repositorio encontrarás el código fuente de lo enseñado en el curso de desarrollo de Web APIs con ASP.NET Core 6 | 7 | Gracias! 8 | --------------------------------------------------------------------------------