87 lines
2.9 KiB
C#
87 lines
2.9 KiB
C#
using GPW.CORE.Data.Mappings;
|
|
using GPW.CORE.Dto;
|
|
using GPW.CORE.Smart10.Data;
|
|
|
|
namespace GPW.CORE.Smart10.Client.Services
|
|
{
|
|
/// <summary>
|
|
/// Implementazione server-side del servizio per la gestione delle timbrature.
|
|
/// Utilizzata durante il prerendering per evitare chiamate HTTP verso se stessi.
|
|
/// </summary>
|
|
public class TimbraturesServiceServer : ITimbraturesService
|
|
{
|
|
private readonly CoreSmartDataService _dataService;
|
|
|
|
public TimbraturesServiceServer(CoreSmartDataService dataService)
|
|
{
|
|
_dataService = dataService;
|
|
}
|
|
|
|
/// <inheritdoc />
|
|
public async Task<List<TimbraturaDto>> GetDayAsync(DateTime dateRif, int idxDip)
|
|
{
|
|
var models = await _dataService.TimbratureDay(dateRif, idxDip);
|
|
return models.Select(MapToDto).ToList();
|
|
}
|
|
|
|
/// <inheritdoc />
|
|
public async Task<List<TimbraturaDto>> GetRichiesteAsync()
|
|
{
|
|
var models = await _dataService.TimbratureRichieste();
|
|
return models.Select(MapToDto).ToList();
|
|
}
|
|
|
|
/// <inheritdoc />
|
|
public async Task<bool> PostInsRichiestaAsync(TimbraturaDto item)
|
|
{
|
|
var model = MapToModel(item);
|
|
return await _dataService.TimbratureInsRichiesta(model);
|
|
}
|
|
|
|
/// <inheritdoc />
|
|
public async Task<bool> PostUpdateAsync(TimbraturaDto item)
|
|
{
|
|
var model = MapToModel(item);
|
|
return await _dataService.TimbratureUpdate(model);
|
|
}
|
|
|
|
/// <inheritdoc />
|
|
public async Task<bool> DeleteByUidAsync(string uid)
|
|
{
|
|
// Per l'eliminazione via UID, usiamo la logica esistente nel data service
|
|
// che lavora con i modelli del DB.
|
|
var dbRec = await _dataService.TimbratureByUidAsync(uid);
|
|
if (dbRec != null)
|
|
{
|
|
return await _dataService.TimbratureDelete(dbRec);
|
|
}
|
|
return false;
|
|
}
|
|
|
|
/// <inheritdoc />
|
|
public async Task<List<DailyDataDto>> GetDailyDetailsAsync(int idxDip, DateTime dtInizio, DateTime dtFine)
|
|
{
|
|
var models = await _dataService.DailyDetails(idxDip, dtInizio, dtFine);
|
|
return models.Select(r => r.ToDto()).ToList();
|
|
}
|
|
|
|
private TimbraturaDto MapToDto(GPW.CORE.Data.DbModels.TimbratureModel model) => new TimbraturaDto
|
|
{
|
|
DataOra = model.DataOra,
|
|
IdxDipendente = model.IdxDipendente,
|
|
Entrata = model.Entrata,
|
|
CodTipoTimb = model.CodTipoTimb,
|
|
Approv = model.Approv
|
|
};
|
|
|
|
private GPW.CORE.Data.DbModels.TimbratureModel MapToModel(TimbraturaDto dto) => new GPW.CORE.Data.DbModels.TimbratureModel
|
|
{
|
|
DataOra = dto.DataOra,
|
|
IdxDipendente = dto.IdxDipendente,
|
|
Entrata = dto.Entrata,
|
|
CodTipoTimb = dto.CodTipoTimb,
|
|
Approv = dto.Approv
|
|
};
|
|
}
|
|
}
|