TFS_ANTIGUO/TPAtesa_RecHuma/REC-HUMA.API/Controllers/DiasAcreditadosPeriodoController.cs

112 lines
3.9 KiB
C#
Raw Permalink Normal View History

2026-06-26 10:14:39 -06:00
using AutoMapper;
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.Threading.Tasks;
namespace REC_HUMA.API.Controllers
{
[Route("api/[controller]")]
[ApiController]
public class DiasAcreditadosPeriodoController : ControllerBase
{
private readonly IDiasAcreditadosPeriodoRepo _diasAcreditadosPeriodoRepo;
private readonly IMapper _mapper;
private readonly ILogger<DiasAcreditadosPeriodoController> _logger;
public DiasAcreditadosPeriodoController(IDiasAcreditadosPeriodoRepo diasAcreditadosPeriodoRepo, IMapper mapper, ILogger<DiasAcreditadosPeriodoController> logger)
{
_diasAcreditadosPeriodoRepo = diasAcreditadosPeriodoRepo;
_mapper = mapper;
_logger = logger ?? throw new ArgumentNullException(nameof(logger));
}
[HttpGet]
public async Task<IEnumerable<DiasAcreditadosPeriodoDto>> GetDiasAcreditados()
{
try
{
var diasAcreditados = await _diasAcreditadosPeriodoRepo.GetAllDiasAcreditados();
var diasAcreditadosDto = _mapper.Map<IEnumerable<DiasAcreditadosPeriodoDto>>(diasAcreditados);
return diasAcreditadosDto;
}
catch (Exception ex)
{
var diasAcreditadosDto = new List<DiasAcreditadosPeriodoDto>
{
new DiasAcreditadosPeriodoDto() { CodResultado = 500, Mensaje = "Error" }
};
_logger.LogError(ex, ex.Message);
return diasAcreditadosDto;
}
}
[HttpGet("{id}")]
public async Task<DiasAcreditadosPeriodoDto> GetDiasAcreditados(int id)
{
try
{
var diasAcreditados = await _diasAcreditadosPeriodoRepo.GetDiasAcreditados(id);
var diasAcreditadosDto = _mapper.Map<DiasAcreditadosPeriodoDto>(diasAcreditados);
return diasAcreditadosDto;
}
catch (Exception ex)
{
var diasAcreditadosDto = new DiasAcreditadosPeriodoDto
{
CodResultado = 500,
Mensaje = "Error"
};
_logger.LogError(ex, ex.Message);
return diasAcreditadosDto;
}
}
[HttpPost]
public async Task<IActionResult> PostDiasAcreditados(DiasAcreditadosPeriodoDto diasAcreditadosPeriodoDto)
{
try
{
var DiasAcreditadosPeriodo = _mapper.Map<DiasAcreditadosPeriodo>(diasAcreditadosPeriodoDto);
await _diasAcreditadosPeriodoRepo.PostDiasAcreditados(DiasAcreditadosPeriodo);
return Ok(new RespuestaDTO() { Resultado = "Se agregó la persona satisfactoriamente" });
}
catch (Exception ex)
{
_logger.LogError(ex, ex.Message);
return StatusCode(500);
}
}
[Route("ModificarDias/{idFuncionario}/{diasSolicitados}/{idSolicitud}")]
[HttpGet]
public async Task<IActionResult> PutDiasAcreditados(int idFuncionario, int diasSolicitados,int idSolicitud)
{
try
{
var diasAcreditados = await _diasAcreditadosPeriodoRepo.RebajarDiasAcreditados(idFuncionario, diasSolicitados, idSolicitud);
return Ok(new RespuestaDTO() { Resultado = "Se modificaron los dias satisfactoriamente." });
}
catch (Exception ex)
{
_logger.LogError(ex, ex.Message);
return StatusCode(500);
}
}
}
}