Files

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>();
}
}
}