From c9f47adab437bca1efb5ddb77305fab207c7797e Mon Sep 17 00:00:00 2001 From: Samuele Locatelli Date: Thu, 14 May 2026 08:01:07 +0200 Subject: [PATCH] Update servizio e controller x timbrature --- .../Services/ITimbraturesService.cs | 9 ++ .../Services/TimbraturesService.cs | 7 + .../Controllers/TimbratureController.cs | 131 ++++++++++-------- .../Service/TimbraturesServiceServer.cs | 7 + 4 files changed, 100 insertions(+), 54 deletions(-) diff --git a/GPW.CORE.Smart10.Client/Services/ITimbraturesService.cs b/GPW.CORE.Smart10.Client/Services/ITimbraturesService.cs index ff61170..cf98434 100644 --- a/GPW.CORE.Smart10.Client/Services/ITimbraturesService.cs +++ b/GPW.CORE.Smart10.Client/Services/ITimbraturesService.cs @@ -42,5 +42,14 @@ namespace GPW.CORE.Smart10.Client.Services /// L'UID della timbratura da eliminare. /// True se l'operazione รจ andata a buon fine, altrimenti false. Task DeleteByUidAsync(string uid); + + /// + /// Recupera i dettagli delle timbrature per un dipendente in un intervallo di date. + /// + /// L'indice identificativo del dipendente. + /// Data inizio intervallo. + /// Data fine intervallo. + /// Una lista di oggetti . + Task> GetDailyDetailsAsync(int idxDip, DateTime dtInizio, DateTime dtFine); } } diff --git a/GPW.CORE.Smart10.Client/Services/TimbraturesService.cs b/GPW.CORE.Smart10.Client/Services/TimbraturesService.cs index 4b18cf4..3802cc3 100644 --- a/GPW.CORE.Smart10.Client/Services/TimbraturesService.cs +++ b/GPW.CORE.Smart10.Client/Services/TimbraturesService.cs @@ -52,5 +52,12 @@ namespace GPW.CORE.Smart10.Client.Services var response = await _httpClient.DeleteAsync($"api/timbrature/{uid}"); return response.IsSuccessStatusCode; } + + /// + public async Task> GetDailyDetailsAsync(int idxDip, DateTime dtInizio, DateTime dtFine) + { + var response = await _httpClient.GetFromJsonAsync>($"api/timbrature/daily-details?idxDip={idxDip}&dtInizio={dtInizio:yyyy-MM-dd}&dtFine={dtFine:yyyy-MM-dd}"); + return response ?? new List(); + } } } diff --git a/GPW.CORE.Smart10/Controllers/TimbratureController.cs b/GPW.CORE.Smart10/Controllers/TimbratureController.cs index 3826e40..2c433f8 100644 --- a/GPW.CORE.Smart10/Controllers/TimbratureController.cs +++ b/GPW.CORE.Smart10/Controllers/TimbratureController.cs @@ -1,4 +1,5 @@ using GPW.CORE.Data.DbModels; +using GPW.CORE.Data.DTO; using GPW.CORE.Dto; using GPW.CORE.Smart10.Data; using Microsoft.AspNetCore.Mvc; @@ -9,13 +10,86 @@ namespace GPW.CORE.Smart10.Controllers [Route("api/[controller]")] public class TimbratureController : ControllerBase { - private readonly CoreSmartDataService _dataService; + #region Public Constructors public TimbratureController(CoreSmartDataService dataService) { _dataService = dataService; } + #endregion Public Constructors + + #region Public Methods + + [HttpDelete("{uid}")] + public async Task> 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>> 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>> 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>> GetRichieste() + { + var models = await _dataService.TimbratureRichieste(); + return Ok(models.Select(MapToDto).ToList()); + } + + [HttpPost("delete")] + public async Task> PostDelete([FromBody] TimbraturaDto dto) + { + var model = MapToModel(dto); + var result = await _dataService.TimbratureDelete(model); + return Ok(result); + } + + [HttpPost("ins-richiesta")] + public async Task> PostInsRichiesta([FromBody] TimbraturaDto dto) + { + var model = MapToModel(dto); + var result = await _dataService.TimbratureInsRichiesta(model); + return Ok(result); + } + + [HttpPost("update")] + public async Task> 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, @@ -34,57 +108,6 @@ namespace GPW.CORE.Smart10.Controllers Approv = dto.Approv }; - [HttpGet("day")] - public async Task>> 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>> GetRichieste() - { - var models = await _dataService.TimbratureRichieste(); - return Ok(models.Select(MapToDto).ToList()); - } - - [HttpPost("ins-richiesta")] - public async Task> PostInsRichiesta([FromBody] TimbraturaDto dto) - { - var model = MapToModel(dto); - var result = await _dataService.TimbratureInsRichiesta(model); - return Ok(result); - } - - [HttpPost("update")] - public async Task> PostUpdate([FromBody] TimbraturaDto dto) - { - var model = MapToModel(dto); - var result = await _dataService.TimbratureUpdate(model); - return Ok(result); - } - - [HttpPost("delete")] - public async Task> PostDelete([FromBody] TimbraturaDto dto) - { - var model = MapToModel(dto); - var result = await _dataService.TimbratureDelete(model); - return Ok(result); - } - - [HttpDelete("{uid}")] - public async Task> 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); - } + #endregion Private Methods } -} - +} \ No newline at end of file diff --git a/GPW.CORE.Smart10/Service/TimbraturesServiceServer.cs b/GPW.CORE.Smart10/Service/TimbraturesServiceServer.cs index 81eeabc..edbf569 100644 --- a/GPW.CORE.Smart10/Service/TimbraturesServiceServer.cs +++ b/GPW.CORE.Smart10/Service/TimbraturesServiceServer.cs @@ -57,6 +57,13 @@ namespace GPW.CORE.Smart10.Client.Services return false; } + /// + public async Task> GetDailyDetailsAsync(int idxDip, DateTime dtInizio, DateTime dtFine) + { + var models = await _dataService.DailyDetails(idxDip, dtInizio, dtFine); + return models.Select(MapToDto).ToList(); + } + private TimbraturaDto MapToDto(GPW.CORE.Data.DbModels.TimbratureModel model) => new TimbraturaDto { DataOra = model.DataOra,