using AutoMapper; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; using Microsoft.Extensions.Logging; using REC_HUMA.CORE.DTOs; using REC_HUMA.CORE.Entities; using REC_HUMA.CORE.Interfaces; using REC_HUMA.INFRASTRUCTURE.Repositories; using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; namespace REC_HUMA.API.Controllers { [Route("api/[controller]")] [ApiController] public class EstadoCivilController : ControllerBase { private readonly IEstadoCivilRepo _EstadoCivilRepo; private readonly IMapper _mapper; private readonly ILogger _logger; public EstadoCivilController(IEstadoCivilRepo EstadoCivilRepo, IMapper mapper, ILogger logger) { _EstadoCivilRepo = EstadoCivilRepo; _mapper = mapper; _logger = logger; } [HttpGet] public async Task> GetEstadoCivils() { try { var estadocivils = await _EstadoCivilRepo.GetEstadoCivils(); var estadocivilDto = _mapper.Map>(estadocivils); return estadocivilDto; } catch (Exception ex) { var estadocivilDto = new List { new EstadoCivilDto() { CodResultado = 500, Mensaje = "Error" } }; _logger.LogError(ex, ex.Message); return estadocivilDto; } } [HttpGet("{id}")] public async Task GetEstadoCivil(int id) { try { var estadocivils = await _EstadoCivilRepo.GetEstadoCivil(id); var estadocivilDto = _mapper.Map(estadocivils); return estadocivilDto; } catch (Exception ex) { var estadocivilDTO = new EstadoCivilDto { CodResultado = 500, Mensaje = "Error" }; _logger.LogError(ex, ex.Message); return estadocivilDTO; } } [HttpPut] public async Task PutEstadoCivil(EstadoCivilDto estadocivilDto) { try { var estadocivil = _mapper.Map(estadocivilDto); await _EstadoCivilRepo.PutEstadoCivil(estadocivil); return Ok(); } catch (Exception ex) { _logger.LogError(ex, ex.Message); return StatusCode(500); } } [HttpPost] public async Task PostEstadoCivil(EstadoCivilDto estadocivilDto) { try { var estadocivil = _mapper.Map(estadocivilDto); await _EstadoCivilRepo.PostEstadoCivil(estadocivil); return Ok(); } catch (Exception ex) { _logger.LogError(ex, ex.Message); return StatusCode(500); } } [HttpDelete("{id}")] public async Task DeleteEstadoCivil(int id) { try { await _EstadoCivilRepo.DeleteEstadoCivil(id); return Ok(); } catch (Exception ex) { _logger.LogError(ex, ex.Message); return StatusCode(500); } } } }