protected override async Task executar() { if (_verificando) { return; } _verificando = true; try { var dataAtual = DateTime.Now; if (dataAtual.Subtract(_ultimaExecucao).TotalMilliseconds > DuracaoExecucao) { var regraUsuario = UsuarioFactory.create(); var usuario = regraUsuario.pegarAtual(); if (usuario != null) { var regraMensagem = MensagemFactory.create(); var avisos = await regraMensagem.listarAviso(usuario.Id); foreach (var aviso in avisos) { var rootPage = (RootPage)App.Current.MainPage; //CrossLocalNotifications.Current.Show(rootPage.NomeApp, aviso.Assunto); CrossLocalNotifications.Current.Show(rootPage.NomeApp, aviso.Mensagem); } } _ultimaExecucao = dataAtual; System.Diagnostics.Debug.WriteLine("Verificando avisos: " + dataAtual.ToString("HH:mm:ss")); } } finally { _verificando = false; } return; }
static void Main(string[] args) { while (true) { Console.Clear(); Console.WriteLine("Selecione o tipo de factory a ser executada: "); Console.WriteLine("\n1 - Factory Simples"); Console.WriteLine("2 - Factory Complexa\n"); Console.Write("> "); int opcao = int.Parse(Console.ReadLine()); switch (opcao) { case 1: Console.WriteLine(MensagemFactory.GerarMensagem(Dia.Manha)); Console.WriteLine(MensagemFactory.GerarMensagem(Dia.Tarde)); Console.WriteLine(MensagemFactory.GerarMensagem(Dia.Noite)); break; case 2: var acidentes = new List <Acidente> { new Acidente("Gato preso", "Gato preso em cima da árvore!", TipoAcidente.Pequeno), new Acidente("Batida de carro", "Dois carros se colidiram na avenida XYZ as 2 horas da tarde.", TipoAcidente.Medio), new Acidente("Queda de avião", "Avião sofre pane e cai durante a noite de segunda feira.", TipoAcidente.Grande) }; foreach (var acidente in acidentes) { var socorro = SocorroFactory.GerarPedidoDeSocorro(acidente.TipoAcidente); socorro.Socorrer(acidente); } break; } Console.ReadKey(); } }