111 lines
3.9 KiB
C#
111 lines
3.9 KiB
C#
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);
|
|
}
|
|
}
|
|
}
|
|
}
|