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,