64 lines
2.4 KiB
C#
64 lines
2.4 KiB
C#
using GPW.CORE.Dto;
|
|
using System.Net.Http.Json;
|
|
|
|
namespace GPW.CORE.Smart10.Client.Services
|
|
{
|
|
/// <summary>
|
|
/// Implementazione del servizio per la gestione delle timbrature nel modulo Smart10.
|
|
/// Effettua le chiamate HTTP verso l'API server.
|
|
/// </summary>
|
|
public class TimbraturesService : ITimbraturesService
|
|
{
|
|
private readonly HttpClient _httpClient;
|
|
|
|
public TimbraturesService(HttpClient httpClient)
|
|
{
|
|
_httpClient = httpClient;
|
|
}
|
|
|
|
/// <inheritdoc />
|
|
public async Task<List<TimbraturaDto>> GetDayAsync(DateTime dateRif, int idxDip)
|
|
{
|
|
// Formattazione data per la query string: yyyy-MM-dd
|
|
var dateStr = dateRif.ToString("yyyy-MM-dd");
|
|
var response = await _httpClient.GetFromJsonAsync<List<TimbraturaDto>>($"api/timbrature/day?dateRif={dateStr}&idxDip={idxDip}");
|
|
return response ?? new List<TimbraturaDto>();
|
|
}
|
|
|
|
/// <inheritdoc />
|
|
public async Task<List<TimbraturaDto>> GetRichiesteAsync()
|
|
{
|
|
var response = await _httpClient.GetFromJsonAsync<List<TimbraturaDto>>("api/timbrature/richieste");
|
|
return response ?? new List<TimbraturaDto>();
|
|
}
|
|
|
|
/// <inheritdoc />
|
|
public async Task<bool> PostInsRichiestaAsync(TimbraturaDto item)
|
|
{
|
|
var response = await _httpClient.PostAsJsonAsync("api/timbrature/ins-richiesta", item);
|
|
return response.IsSuccessStatusCode;
|
|
}
|
|
|
|
/// <inheritdoc />
|
|
public async Task<bool> PostUpdateAsync(TimbraturaDto item)
|
|
{
|
|
var response = await _httpClient.PostAsJsonAsync("api/timbrature/update", item);
|
|
return response.IsSuccessStatusCode;
|
|
}
|
|
|
|
/// <inheritdoc />
|
|
public async Task<bool> DeleteByUidAsync(string uid)
|
|
{
|
|
var response = await _httpClient.DeleteAsync($"api/timbrature/{uid}");
|
|
return response.IsSuccessStatusCode;
|
|
}
|
|
|
|
/// <inheritdoc />
|
|
public async Task<List<DailyDataDto>> GetDailyDetailsAsync(int idxDip, DateTime dtInizio, DateTime dtFine)
|
|
{
|
|
var response = await _httpClient.GetFromJsonAsync<List<DailyDataDto>>($"api/timbrature/daily-details?idxDip={idxDip}&dtInizio={dtInizio:yyyy-MM-dd}&dtFine={dtFine:yyyy-MM-dd}");
|
|
return response ?? new List<DailyDataDto>();
|
|
}
|
|
}
|
|
}
|