Ejemplo n.º 1
0
        private async Task RetrieveLocation()
        {
            try
            {
                if (Titulo_entry.Text.Equals(""))
                {
                    await DisplayAlert("Atenção!",
                                       "Título deve ser preenchido!", "Ok");
                }
                else if (Descricao_entry.Text.Equals(""))
                {
                    await DisplayAlert("Atenção!",
                                       "Descrição deve ser preenchida!", "Ok");
                }
                else if (file == null)
                {
                    await DisplayAlert("Atenção!",
                                       "Foto é obrigatória!", "Ok");
                }
                else
                {
                    var location = await Geolocation.GetLocationAsync();

                    Publicacao publicacao = new Publicacao();
                    publicacao.Origem    = "APP";
                    publicacao.Login     = "******";
                    publicacao.Titulo    = Titulo_entry.Text;
                    publicacao.Descricao = Descricao_entry.Text;
                    publicacao.Longitude = location.Longitude.ToString();
                    publicacao.Altitude  = location.Altitude.ToString();
                    publicacao.Latitude  = location.Latitude.ToString();
                    publicacao.Imagem    = await ConvertToBase64(file.GetStream());

                    PublicacaoService publicacaoService = new PublicacaoService();
                    Retorno           retorno           = publicacaoService.NovaPublicacao(publicacao);

                    if (retorno != null)
                    {
                        await DisplayAlert("",
                                           "Publicação criada com sucesso!", "Ok");

                        await Navigation.PushAsync(new Publicacoes());
                    }
                    else
                    {
                        await DisplayAlert("Atenção!",
                                           "Problemas ao gravar publicação!", "Ok");
                    }
                }
            }
            catch (FeatureNotSupportedException fnsEx)
            {
                await DisplayAlert("Handle not supported on device exception",
                                   fnsEx.Message, "Ok");
            }
            catch (PermissionException pEx)
            {
                await DisplayAlert("Handle permission exception",
                                   pEx.Message, "Ok");
            }
            catch (Exception ex)
            {
                await DisplayAlert("Unable to get location",
                                   ex.Message, "Ok");
            }
        }