using GPW.CORE.Data.Mappings; using GPW.CORE.Dto; using GPW.CORE.Smart10.Data; namespace GPW.CORE.Smart10.Client.Services { /// /// Implementazione server-side del servizio per la gestione delle timbrature. /// Utilizzata durante il prerendering per evitare chiamate HTTP verso se stessi. /// public class TimbraturesServiceServer : ITimbraturesService { private readonly CoreSmartDataService _dataService; public TimbraturesServiceServer(CoreSmartDataService dataService) { _dataService = dataService; } /// public async Task> GetDayAsync(DateTime dateRif, int idxDip) { var models = await _dataService.TimbratureDay(dateRif, idxDip); return models.Select(MapToDto).ToList(); } /// public async Task> GetRichiesteAsync() { var models = await _dataService.TimbratureRichieste(); return models.Select(MapToDto).ToList(); } /// public async Task PostInsRichiestaAsync(TimbraturaDto item) { var model = MapToModel(item); return await _dataService.TimbratureInsRichiesta(model); } /// public async Task PostUpdateAsync(TimbraturaDto item) { var model = MapToModel(item); return await _dataService.TimbratureUpdate(model); } /// public async Task 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; } /// public async Task> 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 }; } }