DLL Proxy per comunicare con WebApi pubbliche

Indice

Introduzione

I metodi per accedere alle Web Api pubbliche di Ufficio Web sono contenuti all’interno della DLL Hunext.UfficioWeb.Public.Proxies
Essi consistono in una serie di api di lettura o scrittura che utilizzano oggetti DTO di varie tipologie. Tali DTO sono contenuti all’interno della DLL Hunext.UfficioWeb.Public.Model

I pacchetti sono disponibili anche su repository Nuget pubblico: https://www.nuget.org/packages?q=hunext

Inizializzazione e login

La classe principale della DLL è PublicApiProxy, e viene istanziata passando al costruttore l’indirizzo di Ufficio Web.
Per effettuare l’autenticazione è necessario effettuare una chiamata al metodo Login, passando come parametri nome utente e password.
L’utente in questo caso deve possedere il ruolo speciale di PublicAPI.
E’ inoltre possibile verificare se la procedura di accesso è andata a buon fine utilizzando il metodo IsAuthenticated(), il quale restituisce un valore booleano positivo.

Esempio di accesso e verifica dell’autenticazione:

PublicApiProxy proxy = new PublicApiProxy(“address”);
proxy.Login(“username”, “password”);
bool isAuthenticated = proxy.IsAuthenticated();

Elenco metodi proxy

bool Login()

Effettua il login

  • username: nome utente
  • password: password
bool IsAuthenticated()

Metodo per testare l’autenticazione (valore positivo)

IEnumerable<AziDto> GetAllAzi()

Restituisce l’elenco di tutte le aziende (elenco di AziDto)

IEnumerable<AziOrariTurniDto> GetAziOrariTurni(int idAziPaghe)

Restituisce l’elenco degli orari/turni giornalieri di un’azienda

  • idAziPaghe: id azienda Paghe

AziOrariTurniDto GetAziOrariTurniByIdPresOrarioPaghe(int idAziPaghe, int idPresOrarioPaghe)

Restituisce l’orario relativo all’id richiesto

  • idAziPaghe: id azienda Paghe
  • idPresOrarioPaghe: id orario Paghe

void AddCausaleEsterna(int idAziPaghe, int idDipPaghe, DateTime presGGData, string codiceCauExt, int minuti, decimal giorni, decimal valore, string codice)

Inserisce una nuova causale esterna

  • idAziPaghe: id azienda Paghe
  • idDipPaghe: id dipendente Paghe
  • presGGData: data di riferimento
  • codiceCauExt: codice causale esterno
  • minuti: eventuale valore in minuti della causale
  • giorni: eventuale valore in giorni della causale
  • valore: eventuale valore numerico della causale
  • codice: eventuale codice della causale

void DeleteCausaleEsterna(int idAziPaghe, int idDipPaghe, DateTime presGGData)

Elimina tutte le causali esterne di un dipendente nel giorno specificato

  • idAziPaghe: id azienda Paghe
  • idDipPaghe: id dipendente Paghe
  • presGGData: data di riferimento

void DeleteCausaleEsterna(int idAziPaghe, int idDipPaghe, DateTime presGGData, string codiceCauExt)

Elimina la causale esterna specificata

  • idAziPaghe: id azienda Paghe
  • idDipPaghe: id dipendente Paghe
  • presGGData: data di riferimento
  • codiceCauExt: codice causale esterno

void ReplaceCausaliEsterne(int idAziPaghe, int idDipPaghe, DateTime presGGData, IEnumerable<AddCausaleEsternaDto> causaliToAdd)

Sovrascrive tutte le causali esterne di un dipendente nel giorno specificato

  • idAziPaghe: id azienda Paghe
  • idDipPaghe: id dipendente Paghe
  • presGGData: data di riferimento
  • causaliToAdd: nuovo elenco causali

IEnumerable<CausaleEsternaDto> GetCausaliEsterne(int idAziPaghe, int idDipPaghe, DateTime dateFrom, DateTime dateTo)

Restituisce le causali esterne di un dipendente in un dato periodo

  • idAziPaghe: id azienda Paghe
  • idDipPaghe: id dipendente Paghe
  • dateFrom: inizio periodo di riferimento
  • dateTo: fine periodo di riferimento
IEnumerable<DipInForzaDto> GetDipInForza(long idAziweb, DateTime date)

Restituisce l’elenco dei dipendenti in forza alla data richiesta (elenco di DipDto)

  • idAziWeb: id azienda
  • date: data
DipDto GetDip(long idAziWeb, string codiceFiscale, DateTime date)

Restituisce il dipendente attivo alla data richiesta (DipDto)

  • idAziWeb: id azienda
  • codiceFiscale: codice fiscale dipendente
  • date: data

DipDto GetDipByBadge(string idBadge, DateTime date)

Restituisce il dipendente relativo al badge e alla data richiesti

  • idBadge: id badge
  • date: data

IEnumerable<GTRPianoDto> GetGTRPiano(long idAziWeb, DateTime date)

Restituisce l’elenco di tutti i piani di turni e reperibilità di un’azienda alla data richiesta

  • idAziWeb: id azienda
  • date: data compresa nel piano
GTRPianoDto GetGTRPianoByExportCode(string exportCode, DateTime date)

Restituisce il piano di turni e servizi di un’azienda corrispondente ad un determinato codice di esportazione alla data richiesta (GTRPianoDto)

  • exportCode: codice di esportazione piano turni e servizi
  • date: data

IEnumerable<GTRServizioDto> GetGTRServizio(long idAziWeb, int idPiano)

Restituisce l’elenco di tutti i servizi appartenenti ad un piano di turni e reperibilità

  • idAziWeb: id azienda
  • idPiano: id del piano

IEnumerable<GTRDipDto> GetGTRDip(long idAziWeb, int idPiano, byte position)

Restituisce l’elenco di tutti i dipendenti di un servizio appartenente ad un piano di turni e reperibilità

  • idAziWeb: id azienda
  • idPiano: id del piano
  • position: posizione del servizio all’interno del piano

IEnumerable<GTRDipDto> GetGTRDip(long idAziWeb, int idPiano, byte position, DateTime date)

Restituisce l’elenco di tutti i dipendenti di un servizio appartenente ad un piano di turni e reperibilità previsti alla data richiesta

  • idAziWeb: id azienda
  • idPiano: id del piano
  • position: posizione del servizio all’interno del piano
  • date: data richiesta
IEnumerable<GTRPianoServizioGGDto> GetGTRGG(long idAziWeb, int idPiano, DateTime date)

Restituisce l’elenco di tutti i turni di un piano di turni e reperibilità previsti alla data richiesta (elenco di GTRPianoServizioGGDto)

  • idAziWeb: id azienda
  • idPiano: id piano turni e servizi
  • date: data

IEnumerable<PresGGTimbraDto> GetPresGGTimbraByAzi(int idAziPaghe, int idDipPaghe, DateTime dtFrom, DateTime dtTo)

Restituisce l’elenco delle timbrature del cartellino nel periodo richiesto

  • idAziPaghe: id azienda Paghe
  • dtFrom: data inizio periodo considerato
  • dtTo: data fine periodo considerato

IEnumerable<PresGGTimbraDto> GetPresGGTimbraByDip(int idAziPaghe, int idDipPaghe, DateTime dtFrom, DateTime dtTo)

Restituisce l’elenco delle timbrature del cartellino di un dipendente nel periodo richiesto

  • idAziPaghe: id azienda Paghe
  • idDipPaghe: id dipendente Paghe
  • dtFrom: data inizio periodo considerato
  • dtTo: data fine periodo considerato

void AddPresGGTimbra(int idAziPaghe, int idDipPaghe, DateTime date, short verso, string causale)

Inserisce una timbratura nel cartellino del dipendente

  • idAziPaghe: id azienda Paghe
  • idDipPaghe: id dipendente Paghe
  • date: data (compresa l’ora)
  • verso: verso della timbratura
  • causale: causale da terminale

void AddPresGGTimbraRagg(int idAziPaghe, int idDipPaghe, DateTime date, short verso, string causale)

Inserisce una timbratura legata ad un Raggruppamento

  • idAziPaghe: id azienda Paghe
  • idDipPaghe: id dipendente Paghe
  • date: data (compresa l’ora)
  • verso: verso della Timbratura
  • causale: causale relativa al Raggruppamento

void DeletePresGGTimbra(int idAziPaghe, int idDipPaghe, DateTime date)

Elimina una timbratura dal cartellino del dipendente

  • idAziPaghe: id azienda Paghe
  • idDipPaghe: id dipendente Paghe
  • date: data (compresa l’ora)

void SetPresOrario(nt idAziPaghe, int idDipPaghe, DateTime date, int idPresOrario)

Imposta un orario ad un dipendente in un dato giorno

  • idAziPaghe: id azienda Paghe
  • idDipPaghe: id dipendente Paghe
  • date: data
  • idPresOrario: id orario
CheckPresenceDto RicAuthCheckPresence(long idAziWeb, string codiceFiscale, DateTime dtFrom, DateTime dtTo)

Restituisce il dipendente attivo nel periodo richiesto (CheckPresenceDto)

  • idAziWeb: id azienda
  • codiceFiscale: codice fiscale dipendente
  • dtFrom: data inizio
  • dtTo: data fine
PresTransazDto GetPresTransazByIdTransazExt(string idTransazExt)

Restituisce la transazione corrispondente all’id esterno richiesto (PresTransazDto)

  • idTransazExt: id esterno transazione
PresTransazDto GetPresTransazByBadge(string badge, DateTime date)

Restituisce la transazione corrispondente al badge e alla data richiesti (PresTransazDto)

  • badge: id badge
  • date: data
IEnumerable<PresTransazDto> GetPresTransazByBadgePeriod(string badge, DateTime dateFrom, DateTime dateTo)

Restituisce la transazione corrispondente al badge e al periodo richiesti

  • badge: id badge
  • dateFrom: data iniziale periodo
  • dateTo: data finale periodo
void AddOrUpdatePresTransaz(string badge, string verso, DateTime data, string causale, string terminale, string idTransazExt)

Inserisce o aggiorna una transazione

  • badge: id badge
  • verso: verso (es: “E” per entrata e “U” per uscita)
  • date: data (compresa l’ora)
  • causale: causale della timbratura
  • idTransazExt: id esterno
IEnumerable<SettoreDto> GetAllSettori(long idAziWeb)

Restituisce l’elenco di tutti i settori di un’azienda (elenco di SettoreDto)

  • idAziWeb: id azienda

IEnumerable<DipCostoOrarioDto> GetDipCostoOrarioByAzi(long idAziWeb, int year, int monthFrom, int monthTo)

Restituisce l’elenco dei costi orari per Dipendente nel periodo richiesto

  • idAziWeb: id azienda
  • year: anno di riferimento
  • monthFrom:  mese iniziale di riferimento
  • monthTo: mese finale di riferimento

IEnumerable<TaskGGDipTotDto> GetTaskGGDipTotByDip(long idDipWeb, DateTime dtFrom, DateTime dtTo)

Restituisce l’elenco dei tempi per Dipendente e Tipo Attività nel periodo richiesto

  • idDipWeb: id Dipendente
  • dtFrom: inizio periodo di riferimento
  • dtTo: fine periodo di riferimento

IEnumerable<DipBadgeMensaDto> GetElencoDipBadgeMensaByDate(DateTime date)

Restituisce un elenco di badge in base alla data

  • Data alla quale estrarre i badge

IEnumerable<DipBadgeMensaDto> GetElencoDipBadgeMensaByAziDate(int idAziPaghe, DateTime date)

Restituisce un elenco di badge in base alla data e all’azienda

  • id azienda paghe
  • Data alla quale estrarre i badge

bool IsDipInForzaByIdPaghe(int idAziPaghe, int idDipPaghe, DateTime date)

estituisce un valore positivo se il Dipendente è in forza alla data di riferimento

  • id Paghe che identifica l’azienda
  • id Paghe che identifica il Dipendente
  • data di riferimento

Esempi di utilizzo

Ottenere l’elenco di tutte le aziende

PublicApiProxy proxy = new PublicApiProxy(“address”);
proxy.Login(“username”, “password”);
List<AziDto> aziende = proxy.GetAllAzi().ToList();

Ottenere l’elenco di tutti gli orari di un’azienda con id Paghe 1

PublicApiProxy proxy = new PublicApiProxy(“address”);
proxy.Login(“username”, “password”);
List<AziOrariTurniDto> orari = proxy.GetAziOrariTurni(1).ToList();

Ottenere l’orario dell’azienda con id Paghe 1 e id orario Paghe 1

PublicApiProxy proxy = new PublicApiProxy(“address”);
proxy.Login(“username”, “password”);
AziOrariTurniDto orario = proxy.GetAziOrariTurniByIdPresOrarioPaghe(1, 1);

Ottenere l’elenco di tutti i dipendenti in forza attualmente nell’azienda con id 1

PublicApiProxy proxy = new PublicApiProxy(“address”);
proxy.Login(“username”, “password”);
List<DipDto> dipendenti = proxy.GetDipInForza(1, DateTime.Today).ToList();

Ottenere un dipendente dell’azienda con id 1 attivo attualmente di cui si dispone il codice fiscale

PublicApiProxy proxy = new PublicApiProxy(“address”);
proxy.Login(“username”, “password”);
DipDto dipendente = proxy.GetDip(IDAziWeb, “codiceFiscale”, DateTime.Today);

Ottenere l’elenco degli orari dell’azienda con id Paghe 1

PublicApiProxy proxy = new PublicApiProxy(“address”);
proxy.Login(“username”, “password”);
List<AziOrariTurniDto> orariTurni = proxy.GetAziOrariTurni(1).ToList();

Inserire una causale esterna di un’ora con codice esterno “PER” per il dipendente con id Paghe 1 dell’azienda con id Paghe 1 nella giornata di oggi

PublicApiProxy proxy = new PublicApiProxy(“address”);
proxy.Login(“username”, “password”);
proxy.AddCausaleEsterna(1, 1, DateTime.Today, "PER", 60, 0, 0, string.empty);

Eliminare tutte le causali esterne di oggi del dipendente con id Paghe 1 dell’azienda con id Paghe 1

PublicApiProxy proxy = new PublicApiProxy(“address”);
proxy.Login(“username”, “password”);
proxy.DeleteCausaleEsterna(1, 1, DateTime.Today);

Eliminare la causale esterna con codice esterno “PER” di oggi del dipendente con id Paghe 1 dell’azienda con id Paghe 1

PublicApiProxy proxy = new PublicApiProxy(“address”);
proxy.Login(“username”, “password”);
proxy.DeleteCausaleEsterna(1, 1, DateTime.Today, "PER");

Sovrascrivere tutte le causali esterne di oggi del dipendente con id Paghe 1 dell’azienda con id Paghe 1 con una nuova lista di causali

PublicApiProxy proxy = new PublicApiProxy(“address”);
proxy.Login(“username”, “password”);
List<AddCausaleEsternaDto> causali = new List<AddCausaleEsternaDto>();
causali.Add(new AddCausaleEsternaDto() {IDAziPaghe = 1, IDDipPaghe = 1, PresGGData = DateTime.Today, CodiceCauExt = "PRE", Minuti = 640});
causali.Add(new AddCausaleEsternaDto() {IDAziPaghe = 1, IDDipPaghe = 1, PresGGData = DateTime.Today, CodiceCauExt = "STR", Minuti = 60});
proxy.ReplaceCausaliEsterne(1, 1, DateTime.Today, causali);

Ottenere tutte le causali esterne di oggi del dipendente con id Paghe 1 dell’azienda con id Paghe 1

PublicApiProxy proxy = new PublicApiProxy(“address”);
proxy.Login(“username”, “password”);
List<CausaleEsternaDto> causali = proxy.GetCausaliEsterne(1, 1, DateTime.Today, DateTime.Today).ToList();

Ottenere l’elenco dei piani di turni e servizi dell’azienda con id 1 ad oggi

PublicApiProxy proxy = new PublicApiProxy(“address”);
proxy.Login(“username”, “password”);
List<GTRPianoDto> piani = proxy.GetGTRPiano(1, DateTime.Today).ToList();

Ottenere un piano di turni e servizi attivo di cui si dispone del codice di esportazione

PublicApiProxy proxy = new PublicApiProxy(“address”);
proxy.Login(“username”, “password”);
GTRPianoDto piano = proxy.GetGTRPianoByExportCode(“exportCode”, DateTime.Today);

Ottenere tutti i servizi del piano di turni e servizi con id 1 appartenente all’azienda con id 1

PublicApiProxy proxy = new PublicApiProxy(“address”);
proxy.Login(“username”, “password”);
List<GTRServizioDto> servizi = proxy.GetGTRServizio(1, 1);

Ottenere tutti i dipendenti appartenenti al servizio con posizione 1 all’interno del piano con id 1 appartenente all’azienda con id 1

PublicApiProxy proxy = new PublicApiProxy(“address”);
proxy.Login(“username”, “password”);
List<GTRDipDto> dipendenti = proxy.GetGTRDip(1, 1, 1).ToList();

Ottenere tutti i dipendenti in turno oggi nel servizio con posizione 1 all’interno del piano con id 1 appartenente all’azienda con id 1

PublicApiProxy proxy = new PublicApiProxy(“address”);
proxy.Login(“username”, “password”);
List<GTRDipDto> dipendenti = proxy.GetGTRDip(1, 1, 1, DateTime.Today).ToList();

Ottenere i turni odierni di un piano dell’azienda con id 1 di cui si dispone dell’id

PublicApiProxy proxy = new PublicApiProxy(“address”);
proxy.Login(“username”, “password”);
List<GTRPianoServizioGG> turni = proxy.GetGTRPianoServizioGGByPiano(1, 1, DateTime.Today);

Ottenere le timbrature del cartellino di oggi dell’azienda con id Paghe 1

PublicApiProxy proxy = new PublicApiProxy(“address”);
proxy.Login(“username”, “password”);
List<PresGGTimbraDto> timbrature = proxy.GetPresGGTimbraByAzi(1, DateTime.Today, DateTime.Today);

Ottenere le timbrature del cartellino di oggi del dipendente con id Paghe 1 appartenente all’azienda con id Paghe 1

PublicApiProxy proxy = new PublicApiProxy(“address”);
proxy.Login(“username”, “password”);
List<PresGGTimbraDto> timbrature = proxy.GetPresGGTimbraByDip(1, 1, DateTime.Today, DateTime.Today);

Inserire una timbratura nel cartellino del dipendente con id Paghe 1 appartenente all’azienda con id Paghe 1

PublicApiProxy proxy = new PublicApiProxy(“address”);
proxy.Login(“username”, “password”);
proxy.AddPresGGTimbra(1, 1, DateTime.Now, 1, "");

Inserire una timbratura del dipendente con id Paghe 1 appartenente all’azienda con id Paghe 1 legata al Raggruppamento “CDC”

PublicApiProxy proxy = new PublicApiProxy(“address”);
proxy.Login(“username”, “password”);
proxy.AddPresGGTimbraRagg(1, 1, DateTime.Now, 1, "CDC");

Eliminare una timbratura dal cartellino del dipendente con id Paghe 1 appartenente all’azienda con id Paghe 1

PublicApiProxy proxy = new PublicApiProxy(“address”);
proxy.Login(“username”, “password”);
proxy.DeletePresGGTimbra(1, 1, new DateTime(2018, 1, 1, 8, 0, 0));

Impostare l’orario con id 1 per la giornata di oggi al dipendente con id Paghe 1 appartenente all’azienda con id Paghe 1

PublicApiProxy proxy = new PublicApiProxy(“address”);
proxy.Login(“username”, “password”);
proxy.SetPresOrario(1, 1, DateTime.Today, 1);

Verificare la presenza nelle giornate di oggi e domani di un dipendente dell’azienda con id 1 di cui si dispone del codice fiscale

PublicApiProxy proxy = new PublicApiProxy(“address”);
proxy.Login(“username”, “password”);
CheckPresenceDto presenza = proxy.RicAutCheckPresence(1, "codiceFiscale", DateTime.Today, DateTime.Today.AddDays(1));
bool presente = presenza.IsPresent();

Ottenere una transazione di cui si dispone dell’id esterno

PublicApiProxy proxy = new PublicApiProxy(“address”);
proxy.Login(“username”, “password”);
PresTransazDto transazione = proxy.GetPresTransazByIdTransazExt("idEsterno");

Ottenere una transazione di cui si dispone di identificativo del badge e data (compresa l’ora)

PublicApiProxy proxy = new PublicApiProxy(“address”);
proxy.Login(“username”, “password”);
PresTransazDto transazione = proxy.GetPresTransazByBadge("idBadge", DateTime.Now);

Ottenere un elenco di transazioni di cui si dispone di identificativo del badge indicando il periodo desiderato

PublicApiProxy proxy = new PublicApiProxy(“address”);
proxy.Login(“username”, “password”);
List<PresTransazDto> transazioni = proxy.GetPresTransazByBadgePeriod("idBadge", DateTime.Today.AddDays(-1), DateTime.Today).ToList();

Inserire o aggiornare una transazione di cui si dispone dei relativi parametri

PublicApiProxy proxy = new PublicApiProxy(“address”);
proxy.Login(“username”, “password”);
proxy.AddOrUpdatePresTransaz("idBadge", "E", DateTime.Now, string.empty, string.empty, "idEsterno");

Ottenere l’elenco di tutti i settori dell’azienda con id 1

PublicApiProxy proxy = new PublicApiProxy(“address”);
proxy.Login(“username”, “password”);
List<SettoreDto> settori = proxy.GetAllSettori(1).ToList();

Ottenere l’elenco di tutti i costi orari per Dipendente dell’azienda con id 1 relativi all’anno scorso

PublicApiProxy proxy = new PublicApiProxy(“address”);
proxy.Login(“username”, “password”);
List<DipCostoOrarioDto> costiOrari = proxy.GetDipCostoOrarioByAzi(1, DateTime.Today.Year - 1, 1, 12).ToList();

Ottenere l’elenco dei tempi totali per Tipo Attività del Dipendente con id 1 relativi all’anno scorso

PublicApiProxy proxy = new PublicApiProxy(“address”);
proxy.Login(“username”, “password”);
List<TaskGGDipTotDto> tempi = proxy.GetTaskGGDipTotByDip(1, new Date(DateTime.Today.Year, 1, 1), DateTime.Today).ToList();

Verificare se il Dipendente con id Paghe 1 dell’Azienda con id Paghe 1 è in forza alla data odierna

PublicApiProxy proxy = new PublicApiProxy(“address”);
proxy.Login(“username”, “password”);
bool inForza = proxy.IsDipInForzaByIdPaghe(1, 1, DateTime.Today);

Documentazione chiamate Web Api

La documentazione relativa alle chiamate rest delle Web Api è disponibile aggiungendo “/swagger” all’indirizzo di ufficio web.
Ad esempio: http://ufficioweb.hunext.com/swagger

Related Articles