private static void CurrentDomainProcessExit(object sender, EventArgs e)
 {
     if (_offer != null)
     {
         try {
             _offer.remove();
         }
         catch (Exception exc) {
             Logger.Fatal(
                 "Erro ao remover a oferta antes de finalizar o processo: " + exc);
         }
     }
     _conn.Logout();
 }
Пример #2
0
 private static void RemoveOfferAndLogout()
 {
     if (_offer != null)
     {
         try {
             Console.WriteLine(Resources.RemovingOffer);
             _offer.remove();
             Console.WriteLine(Resources.RemovedOffer);
         }
         catch (UnauthorizedOperation) {
             Console.WriteLine(Resources.UnauthorizedRemoveOffer);
         }
         catch (ServiceFailure e) {
             Console.WriteLine(Resources.BusServiceFailureErrorMsg);
             Console.WriteLine(e);
         }
         catch (TRANSIENT) {
             Console.WriteLine(Resources.BusTransientErrorMsg);
         }
         catch (COMM_FAILURE) {
             Console.WriteLine(Resources.BusCommFailureErrorMsg);
         }
         catch (Exception e) {
             NO_PERMISSION npe = null;
             if (e is TargetInvocationException)
             {
                 // caso seja uma exceção lançada pelo SDK, será uma NO_PERMISSION
                 npe = e.InnerException as NO_PERMISSION;
             }
             if ((npe == null) && (!(e is NO_PERMISSION)))
             {
                 // caso não seja uma NO_PERMISSION não é uma exceção esperada então deixamos passar.
                 throw;
             }
             npe = npe ?? (NO_PERMISSION)e;
             if (npe.Minor == NoLoginCode.ConstVal)
             {
                 Console.WriteLine(Resources.NoLoginCodeErrorMsg);
             }
             else
             {
                 throw;
             }
         }
     }
     if (_conn.Login.HasValue)
     {
         try {
             _conn.Logout();
         }
         catch (ServiceFailure e) {
             Console.WriteLine(Resources.BusServiceFailureErrorMsg);
             Console.WriteLine(e);
         }
         catch (TRANSIENT) {
             Console.WriteLine(Resources.BusTransientErrorMsg);
         }
         catch (COMM_FAILURE) {
             Console.WriteLine(Resources.BusCommFailureErrorMsg);
         }
         catch (Exception e) {
             NO_PERMISSION npe = null;
             if (e is TargetInvocationException)
             {
                 // caso seja uma exceção lançada pelo SDK, será uma NO_PERMISSION
                 npe = e.InnerException as NO_PERMISSION;
             }
             if ((npe == null) && (!(e is NO_PERMISSION)))
             {
                 // caso não seja uma NO_PERMISSION não é uma exceção esperada então deixamos passar.
                 throw;
             }
             npe = npe ?? (NO_PERMISSION)e;
             if (npe.Minor == NoLoginCode.ConstVal)
             {
                 Console.WriteLine(Resources.NoLoginCodeErrorMsg);
             }
             else
             {
                 throw;
             }
         }
     }
 }