Files
gpw_next/GPW.CORE.Smart10/Controllers/TimbratureController.cs
T
2026-05-14 08:01:07 +02:00

113 lines
3.5 KiB
C#

using GPW.CORE.Data.DbModels;
using GPW.CORE.Data.DTO;
using GPW.CORE.Dto;
using GPW.CORE.Smart10.Data;
using Microsoft.AspNetCore.Mvc;
namespace GPW.CORE.Smart10.Controllers
{
[ApiController]
[Route("api/[controller]")]
public class TimbratureController : ControllerBase
{
#region Public Constructors
public TimbratureController(CoreSmartDataService dataService)
{
_dataService = dataService;
}
#endregion Public Constructors
#region Public Methods
[HttpDelete("{uid}")]
public async Task<ActionResult<bool>> Delete([FromRoute] string uid)
{
bool result = false;
// in primis ricerco il record...
var dbRec = await _dataService.TimbratureByUidAsync(uid);
// se trovato elimino!
if (dbRec != null)
{
result = await _dataService.TimbratureDelete(dbRec);
}
return Ok(result);
}
[HttpGet("daily-details")]
public async Task<ActionResult<List<DailyDataDTO>>> GetDailyDetails([FromQuery] int idxDip, [FromQuery] DateTime dtInizio, [FromQuery] DateTime dtFine)
{
var result = await _dataService.DailyDetails(idxDip, dtInizio, dtFine);
return Ok(result);
}
[HttpGet("day")]
public async Task<ActionResult<List<TimbraturaDto>>> GetDay([FromQuery] DateTime dateRif, [FromQuery] int idxDip)
{
var models = await _dataService.TimbratureDay(dateRif, idxDip);
return Ok(models.Select(MapToDto).ToList());
}
[HttpGet("richieste")]
public async Task<ActionResult<List<TimbraturaDto>>> GetRichieste()
{
var models = await _dataService.TimbratureRichieste();
return Ok(models.Select(MapToDto).ToList());
}
[HttpPost("delete")]
public async Task<ActionResult<bool>> PostDelete([FromBody] TimbraturaDto dto)
{
var model = MapToModel(dto);
var result = await _dataService.TimbratureDelete(model);
return Ok(result);
}
[HttpPost("ins-richiesta")]
public async Task<ActionResult<bool>> PostInsRichiesta([FromBody] TimbraturaDto dto)
{
var model = MapToModel(dto);
var result = await _dataService.TimbratureInsRichiesta(model);
return Ok(result);
}
[HttpPost("update")]
public async Task<ActionResult<bool>> PostUpdate([FromBody] TimbraturaDto dto)
{
var model = MapToModel(dto);
var result = await _dataService.TimbratureUpdate(model);
return Ok(result);
}
#endregion Public Methods
#region Private Fields
private readonly CoreSmartDataService _dataService;
#endregion Private Fields
#region Private Methods
private TimbraturaDto MapToDto(TimbratureModel model) => new TimbraturaDto
{
DataOra = model.DataOra,
IdxDipendente = model.IdxDipendente,
Entrata = model.Entrata,
CodTipoTimb = model.CodTipoTimb,
Approv = model.Approv
};
private TimbratureModel MapToModel(TimbraturaDto dto) => new TimbratureModel
{
DataOra = dto.DataOra,
IdxDipendente = dto.IdxDipendente,
Entrata = dto.Entrata,
CodTipoTimb = dto.CodTipoTimb,
Approv = dto.Approv
};
#endregion Private Methods
}
}