static void Main(string[] args)
        {
            var pmp = new PoliticasManipulacaoPolly();

            // pmp.Verificar_Funcionamento_Circuit_Break();

            //RetryPolicy WaitRetry = PoliticasManipulacaoPolly.getPolicyRetry();
            //produtos = WaitRetry.Execute(() => RepositorioProdutos.GetProdutos(), new Context("Teste"));
            //Console.WriteLine("");
            //foreach (var p in produtos)
            //{
            //    Console.WriteLine("Id {0} - Nome{1} - Descrição{2}", p.ProdutoId, p.Nome, p.Decricao);
            //}

            //RetryPolicy WaitAndRetryAlterNumaro = PoliticasManipulacaoPolly.getPolicyWaitAndRetryAlterNumaro();
            //int result = WaitAndRetryAlterNumaro.Execute(() => Divisao(n1, n2));
            //Console.WriteLine(result.ToString());
            //Console.WriteLine("");

            //n2 = 0;

            // RetryPolicy WaitAndRetryCallMethod = PoliticasManipulacaoPolly.getPolicyWaitAndRetryCallMethod();
            //var result = WaitAndRetryCallMethod.Execute(() => Divisao(n1, n2));
            // Console.WriteLine(result.ToString());

            n2 = 0;

            //Int32 result = pmp.Execute(() => Divisao(n1, n2));
            //Console.WriteLine(result.ToString());
            //Console.WriteLine("");

            //  var result = pmp.Execute(() => Divisao(n1, n2), () => CallTask());

            //Task result = pmp.ExecuteCircuitBreaker(() => CallTask());

            //Task result = pmp.ExecuteFallback(() => CallTask(), () => CallTask2());
            Task result = pmp.ExecuteFallbackWrap(() => CallTask(), () => CallTask2());

            //Console.WriteLine(result.ToString());
            Console.ReadKey();
        }
 internal static void AtualizarNumero(Exception e, int n)
 {
     n2 = n;
     PoliticasManipulacaoPolly.Log(e);
 }