TFS_ANTIGUO/TPAtesa_RecHuma/REC-HUMA.API/Controllers/TelefonoController.cs
2026-06-26 10:14:39 -06:00

125 lines
3.7 KiB
C#

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;
// For more information on enabling Web API for empty projects, visit https://go.microsoft.com/fwlink/?LinkID=397860
namespace REC_HUMA.API.Controllers
{
[Route("api/[controller]")]
[ApiController]
public class TelefonoController : ControllerBase
{
private readonly ITelefonoRepo _TelefonoRepo;
private readonly IMapper _mapper;
private readonly ILogger<TelefonoController> _logger;
public TelefonoController(ITelefonoRepo TelefonoRepo, IMapper mapper, ILogger<TelefonoController> logger)
{
_TelefonoRepo = TelefonoRepo;
_mapper = mapper;
_logger = logger ?? throw new ArgumentNullException(nameof(logger));
}
[HttpGet]
public async Task<IEnumerable<TelefonoDto>> GetTelefonos()
{
try
{
var telefonos = await _TelefonoRepo.GetTelefonos();
var telefonoDto = _mapper.Map<IEnumerable<TelefonoDto>>(telefonos);
return telefonoDto;
}
catch (Exception ex)
{
var TelefonoDTO = new List<TelefonoDto>();
TelefonoDTO.Add(new TelefonoDto() { CodResultado = 500, Mensaje = "Error" });
_logger.LogError(ex, ex.Message);
return TelefonoDTO;
}
}
[HttpGet("Id")]
public async Task<TelefonoDto> GetTelefono(int IdTelefono)
{
try
{
var telefonos = await _TelefonoRepo.GetTelefono(IdTelefono);
var telefonoDto = _mapper.Map<TelefonoDto>(telefonos);
return telefonoDto;
}
catch (Exception ex)
{
var TelefonoDTO = new TelefonoDto();
TelefonoDTO.CodResultado = 500;
TelefonoDTO.Mensaje = "Error";
_logger.LogError(ex, ex.Message);
return TelefonoDTO;
}
}
[HttpPut]
public async Task<IActionResult> PutTelefono(TelefonoDto telefonoDto)
{
try
{
var telefono = _mapper.Map<Telefono>(telefonoDto);
await _TelefonoRepo.PutTelefono(telefono);
return Ok();
}
catch (Exception ex)
{
_logger.LogError(ex, ex.Message);
return StatusCode(500);
}
}
[HttpPost]
public async Task<IActionResult> PostTelefono(TelefonoDto telefonoDto)
{
try
{
var telefono = _mapper.Map<Telefono>(telefonoDto);
await _TelefonoRepo.PostTelefono(telefono);
return Ok(new RespuestaDTO() { Resultado = "Se realizaron los cambios satisfactoriamente" });
}
catch (Exception ex)
{
_logger.LogError(ex, ex.Message);
return Ok(StatusCode(500));
}
}
[HttpDelete("Id")]
public async Task<IActionResult> DeleteTelefono(int IdTelefono)
{
try
{
await _TelefonoRepo.DeleteTelefono(IdTelefono);
return Ok();
}
catch (Exception ex)
{
_logger.LogError(ex, ex.Message);
return StatusCode(500);
}
}
}
}