示例#1
0
        /// <summary>
        /// Click do botão Login
        /// </summary>
        private async Task ObterRelacaoServicosAsync()
        {
            try
            {
                // Mostra a tela de aguarde
                MessagingCenterHelper.TelaAguardeMostrar(this);

                // Verifica se o token do usuário logado ainda é válido
                await LoginService.VerifyIdToken();

                // Obtém dados do DynamoDB
                AmazonDynamoDBClient client  = AwsHelper.AmazonDynamoDBClient;
                DynamoDBContext      context = AwsHelper.DynamoDBContext;

                QueryRequest request = new QueryRequest
                {
                    TableName = Servico.TabelaNome,
                    KeyConditionExpression    = "(PK = :v_PK) AND begins_with(SK, :v_SK)",
                    ExpressionAttributeValues = new Dictionary <string, AttributeValue>
                    {
                        { ":v_PK", new AttributeValue {
                              S = Servico.PkChave
                          } },
                        { ":v_SK", new AttributeValue {
                              S = Servico.SkChave
                          } }
                    }
                };

                // Retorno
                QueryResponse response = await client.QueryAsync(request);

                // Converte o retorno para lista de objetos
                List <Servico> listaRetorno = new List <Servico>();
                foreach (Dictionary <string, AttributeValue> item in response.Items)
                {
                    listaRetorno.Add(context.FromDocument <Servico>(Document.FromAttributeMap(item)));
                }

                // Atualiza a lista
                this.ListaServicos.AddRange(listaRetorno.OrderBy(x => x.Descricao));
            }
            catch (MobileErrorException e)
            {
                MessagingCenterHelper.ExibirMensagem(MobileErrorException.GetMessageFull(e), MessageBox.TipoMensagem.Atencao);
            }
            catch (Exception e)
            {
                MobileErrorException.EnviarErroAppCenter(e);
                MessagingCenterHelper.ExibirMensagem(MobileErrorException.GetMessageFull(e, true), MessageBox.TipoMensagem.Erro);
            }
            finally
            {
                MessagingCenterHelper.TelaAguardeFechar(this);
            }
        }
示例#2
0
 /// <summary>
 /// CallSettings
 /// </summary>
 /// <returns>Task</returns>
 private async Task GetUsername()
 {
     try
     {
         this.Username = await Task.Run(() => LoginService.GetActiveUsername());
     }
     catch (MobileErrorException e)
     {
         MessagingCenterHelper.ExibirMensagem(MobileErrorException.GetMessageFull(e), MessageBox.TipoMensagem.Atencao);
     }
     catch (Exception e)
     {
         MobileErrorException.EnviarErroAppCenter(e);
         MessagingCenterHelper.ExibirMensagem(MobileErrorException.GetMessageFull(e, true), MessageBox.TipoMensagem.Erro);
     }
 }
示例#3
0
 /// <summary>
 /// Método Ajuda
 /// </summary>
 /// <returns>Task</returns>
 private async Task Ajuda()
 {
     try
     {
         await Shell.Current.GoToAsync($"{nameof(DefaultPage)}");
     }
     catch (MobileErrorException e)
     {
         MessagingCenterHelper.ExibirMensagem(MobileErrorException.GetMessageFull(e), MessageBox.TipoMensagem.Atencao);
     }
     catch (Exception e)
     {
         MobileErrorException.EnviarErroAppCenter(e);
         MessagingCenterHelper.ExibirMensagem(MobileErrorException.GetMessageFull(e, true), MessageBox.TipoMensagem.Erro);
     }
 }
示例#4
0
 /// <summary>
 /// Método Logout
 /// </summary>
 /// <returns>Task</returns>
 private async Task Logout()
 {
     try
     {
         LoginService.UsuarioLogout();
         await Shell.Current.GoToAsync($"//{nameof(LoginPage)}");
     }
     catch (MobileErrorException e)
     {
         MessagingCenterHelper.ExibirMensagem(MobileErrorException.GetMessageFull(e), MessageBox.TipoMensagem.Atencao);
     }
     catch (Exception e)
     {
         MobileErrorException.EnviarErroAppCenter(e);
         MessagingCenterHelper.ExibirMensagem(MobileErrorException.GetMessageFull(e, true), MessageBox.TipoMensagem.Erro);
     }
 }
示例#5
0
        /// <summary>
        /// Enviar mensagem
        /// </summary>
        /// <param name="view">View a qual a mensagem será apresentada</param>
        /// <param name="tipo">Tipo da mensagem</param>
        /// <param name="mensagem">Mensagem a ser exibida</param>
        /// <param name="descricaoConfirmar">Botão confirmar - Descrição</param>
        /// <param name="descricaoCancelar">Botão cancelar - Descrição</param>
        /// <returns>True se foi confirmado</returns>
        public static async Task <bool> Show(Page view, TipoMensagem tipo, string mensagem, string descricaoConfirmar, string descricaoCancelar)
        {
            if (string.IsNullOrWhiteSpace(descricaoCancelar))
            {
                descricaoCancelar = "OK";
            }

            if (string.IsNullOrWhiteSpace(descricaoConfirmar))
            {
                MessagingCenterHelper.TelaAguardeFechar((BaseViewModel)view?.BindingContext);
                await view?.DisplayAlert(Enumerador.ObterDescricao(tipo), mensagem, descricaoCancelar);

                return(false);
            }

            // Tratar retorno
            MessagingCenterHelper.TelaAguardeFechar((BaseViewModel)view?.BindingContext);
            return(await view?.DisplayAlert(Enumerador.ObterDescricao(tipo), mensagem, descricaoConfirmar, descricaoCancelar));
        }
示例#6
0
 /// <summary>
 /// CallSettings
 /// </summary>
 /// <returns>Task</returns>
 private async Task CallSettings()
 {
     try
     {
         await Shell.Current.GoToAsync($"{nameof(SettingsPage)}");
     }
     catch (MobileErrorException e)
     {
         MessagingCenterHelper.ExibirMensagem(MobileErrorException.GetMessageFull(e), MessageBox.TipoMensagem.Atencao);
     }
     catch (Exception e)
     {
         MobileErrorException.EnviarErroAppCenter(e);
         MessagingCenterHelper.ExibirMensagem(MobileErrorException.GetMessageFull(e, true), MessageBox.TipoMensagem.Erro);
     }
     finally
     {
         MessagingCenterHelper.TelaAguardeFechar(this);
     }
 }
示例#7
0
 /// <summary>
 /// Método CallRelacaoServicos
 /// </summary>
 /// <returns>Task</returns>
 private async Task CallRelacaoServicos()
 {
     try
     {
         // Navega para a relação de serviços
         await Shell.Current.GoToAsync($"{nameof(RelacaoServicosPage)}");
     }
     catch (MobileErrorException e)
     {
         MessagingCenterHelper.ExibirMensagem(MobileErrorException.GetMessageFull(e), MessageBox.TipoMensagem.Atencao);
     }
     catch (Exception e)
     {
         MobileErrorException.EnviarErroAppCenter(e);
         MessagingCenterHelper.ExibirMensagem(MobileErrorException.GetMessageFull(e, true), MessageBox.TipoMensagem.Erro);
     }
     finally
     {
         MessagingCenterHelper.TelaAguardeFechar(this);
     }
 }
示例#8
0
        /// <summary>
        /// CallTelaAguarde
        /// </summary>
        /// <returns>Task</returns>
        private async Task CallTelaAguarde()
        {
            try
            {
                // Mostra a tela de aguarde
                MessagingCenterHelper.TelaAguardeMostrar(this);

                // Aguarda 2 segundos
                await Task.Delay(TimeSpan.FromSeconds(5));
            }
            catch (MobileErrorException e)
            {
                MessagingCenterHelper.ExibirMensagem(MobileErrorException.GetMessageFull(e), MessageBox.TipoMensagem.Atencao);
            }
            catch (Exception e)
            {
                MobileErrorException.EnviarErroAppCenter(e);
                MessagingCenterHelper.ExibirMensagem(MobileErrorException.GetMessageFull(e, true), MessageBox.TipoMensagem.Erro);
            }
            finally
            {
                MessagingCenterHelper.TelaAguardeFechar(this);
            }
        }