/// <summary>
 /// verifica che presentdatacontext sia attivo
 /// </summary>
 /// <returns></returns>
 private bool PresentDataContextIsAlive()
 {
     try
     {
         // verifica se è ancora vivo...
         if (context.RawData.QueryDatabase("select DipID from Dipendenti where dipid=-44").Rows.Count == 0)
         {
             return(true);
         }
         else
         {
             // C'è l'ID -44? Strano... :) ma comunque ha risposto...
             return(true);
         }
     }
     catch (Exception)
     {
         context = null;
         return(false);
     }
 }
 /// <summary>
 /// se necessario effettua il refresh del login
 /// </summary>
 /// <param name="First"></param>
 private void CheckLoggedTime(bool First = false)
 {
     try
     {
         if (DateTime.Now.Subtract(LoggedTime).TotalHours >= param.MaxLoggedHours || !PresentDataContextIsAlive())
         {
             context    = null;
             context    = new PresentDataContext(param.UserName, param.Password, Environment.MachineName, true);
             LoggedTime = DateTime.Now;
             if (First)
             {
                 logger.Info("PresentDataContext avviato");
             }
             else
             {
                 logger.Info("PresentDataContext resettato e riavviato");
             }
         }
     }
     catch (Exception ex)
     {
         logger.Error(ex, "Errore durante l'avvio di PresentDataContext");
     }
 }