using AutoMapper; using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; using Microsoft.Extensions.Logging; using REC_HUMA.CORE.DTOs; using REC_HUMA.CORE.Interfaces; using System.Collections.Generic; using System.Threading.Tasks; using System; namespace REC_HUMA.API.Controllers { [Route("api/[controller]")] [ApiController] public class GradoAcademicoController : ControllerBase { private readonly IGradoAcademicoRepo _GradoAcademicoRepo; private readonly IMapper _mapper; private readonly ILogger _logger; public GradoAcademicoController(IGradoAcademicoRepo GradoAcademicoRepo, IMapper mapper, ILogger logger) { _GradoAcademicoRepo = GradoAcademicoRepo; _mapper = mapper; _logger = logger ?? throw new ArgumentNullException(nameof(logger)); } [HttpGet] public async Task> GetGradosAcademicos() { try { var gradosAcademicos = await _GradoAcademicoRepo.GetGradosAcademicos(); var gradosAcademicosDto = _mapper.Map>(gradosAcademicos); return gradosAcademicosDto; } catch (Exception ex) { var gradosAcademicosDto = new List { new GradoAcademicoDto() { CodResultado = 500, Mensaje = "Error" } }; _logger.LogError(ex, ex.Message); return gradosAcademicosDto; } } [HttpGet("{id}")] public async Task GetGradoAcademico(int id) { try { var gradoAcademico = await _GradoAcademicoRepo.GetGradoAcademico(id); var gradoAcademicoDto = _mapper.Map(gradoAcademico); return gradoAcademicoDto; } catch (Exception ex) { var gradoAcademicoDto = new GradoAcademicoDto { CodResultado = 500, Mensaje = "Error" }; _logger.LogError(ex, ex.Message); return gradoAcademicoDto; } } } }