using AlquilaFacil.Builder; using Entidades.Informes; using Microsoft.AspNetCore.Mvc; using Modelo; namespace AlquilaFacil.Controllers; [ApiController] public class EstadisticaController: ControllerBase { [HttpGet("api/stats/alquileresIniciados")] public IActionResult alquileresIniciadosEsteAño([FromHeader(Name ="Auth")]string Auth, int year) { if (String.IsNullOrWhiteSpace(Auth)) return BadRequest(""); var validacion1 = RepositorioGrupos.Singleton.CheckGrupos(Auth, "Informes"); if (validacion1 == false) return Unauthorized(); var validacion2 = RepositorioContratos.Singleton.HayContratosEnAño(year); if (validacion2 == false) return BadRequest(new { message = "No hay contratos en ese año"}); var a = RepositorioEstadisticas.Singleton.ObtenerDataIniciadosPorAño(year); return Ok(a); } [HttpGet("api/tabla/alquileresIniciados")] public IActionResult tablaalquileresIniciadosEsteAño([FromHeader(Name ="Auth")]string Auth, int year) { if (String.IsNullOrWhiteSpace(Auth)) return BadRequest(""); var validacion1 = RepositorioGrupos.Singleton.CheckGrupos(Auth, "Informes"); if (validacion1 == false) return Unauthorized(); var validacion2 = RepositorioContratos.Singleton.HayContratosEnAño(year); if (validacion2 == false) return BadRequest(new { message = "No hay contratos en ese año"}); var a = RepositorioEstadisticas.Singleton.TablaObtenerContratosIniciadosPorAño(year); if (a == null) return BadRequest(new { message = "Fallo al obtener el contrato"}); List informe =new(); foreach (var i in a) { var d = new InformesAlquilerBuilder() .SetId(i.Id).SetUbicacion(i.IdpropiedadNavigation.Ubicacion) .SetDivisa(i.IddivisaNavigation.Signo) .Build(); informe.Add(d); } return Ok(informe); } [HttpGet("api/stats/duracionContrato")] public IActionResult DuracionContrato([FromHeader(Name ="Auth")]string Auth) { if (String.IsNullOrWhiteSpace(Auth)) return BadRequest(""); var validacion1 = RepositorioGrupos.Singleton.CheckGrupos(Auth, "Informes"); if (validacion1 == false) return Unauthorized(); var a = RepositorioEstadisticas.Singleton.ObtenerDataDuracionContratos(); return Ok(a); } [HttpGet("api/tabla/duracionContrato")] public IActionResult TablaDuracionContrato([FromHeader(Name ="Auth")]string Auth) { if (String.IsNullOrWhiteSpace(Auth)) return BadRequest(""); var validacion1 = RepositorioGrupos.Singleton.CheckGrupos(Auth, "Informes"); if (validacion1 == false) return Unauthorized(); var a = RepositorioEstadisticas.Singleton.TablaObtenerDataDuracionContratos(); return Ok(a); } }