コード例 #1
0
        private async void tirarFoto()
        {
            if (CrossMedia.Current.IsCameraAvailable && CrossMedia.Current.IsTakePhotoSupported)
            {
                var nomeArquivo  = $"{DateTime.UtcNow}.jpg";
                var mediaOptions = new Plugin.Media.Abstractions.StoreCameraMediaOptions
                {
                    //Directory = "Cupons",
                    Name = nomeArquivo
                           //SaveToAlbum = true
                };

                // Take a photo of the business receipt.
                var file = await CrossMedia.Current.TakePhotoAsync(mediaOptions);

                if (file == null)
                {
                    return;
                }

                GastoInfo gasto = (GastoInfo)this.BindingContext;
                gasto.FotoPath = nomeArquivo;
                var    fs     = file.GetStream();
                byte[] buffer = new byte[fs.Length];
                fs.Read(buffer, 0, buffer.Length);
                fs.Dispose();
                fs = null;
                gasto.FotoBase64 = Convert.ToBase64String(buffer);


                //DisplayAlert("Salvar em", file.Path, "OK");
                var path = file.Path;
                _FotoImage.Source = ImageSource.FromStream(() =>
                {
                    var stream = file.GetStream();
                    file.Dispose();
                    return(stream);
                });

                _FotoImage.Source        = path;
                _FotoImage.WidthRequest  = TelaUtils.LarguraSemPixel * 0.5;
                _FotoImage.HeightRequest = TelaUtils.LarguraSemPixel * 0.5;

                //var gasto = (GastoInfo)BindingContext;
                //gasto.Foto = Path.GetFileName(path);
            }
            else
            {
                await DisplayAlert("Dispositivo não possiu camera ou camera desativada", null, "OK");
            }
        }
コード例 #2
0
 public int gravar(GastoInfo gasto)
 {
     lock (locker)
     {
         if (gasto.Id != 0)
         {
             return(database.Update(gasto));
         }
         else
         {
             gasto.DataInclusao = DateTime.Now;
             return(database.Insert(gasto));
         }
     }
 }
コード例 #3
0
        public int gravar(GastoInfo gasto)
        {
            var percurso = PercursoUtils.PercursoAtual;
            var local    = GPSUtils.UltimaLocalizacao;

            if (percurso == null)
            {
                throw new Exception("Nenhum percurso sendo gravado no momento.");
            }
            if (local == null)
            {
                throw new Exception("Nenhuma posição gravada.");
            }
            gasto.IdPercurso   = percurso.Id;
            gasto.DataInclusao = local.Tempo;
            return(_db.gravar(gasto));
        }
コード例 #4
0
        public GastoNovoPage()
        {
            Title = "Novo Custo";
            var gasto = new GastoInfo {
                DataInclusao = DateTime.Now
            };
            var local = GPSUtils.UltimaLocalizacao;

            if (local != null)
            {
                gasto.Latitude  = (float)local.Latitude;
                gasto.Longitude = (float)local.Longitude;
            }
            BindingContext = gasto;

            var gravarButton = new ToolbarItem {
                Text = "Inserir"
            };

            gravarButton.Clicked += (sender, e) => {
                var novoGasto  = (GastoInfo)BindingContext;
                var regraGasto = GastoFactory.create();
                regraGasto.gravar(novoGasto);

                MensagemUtils.avisar("Gasto incluído com sucesso!");
                ((MasterDetailPage)Application.Current.MainPage).Detail = new NavigationPage(new VelocimetroPage());
                //NavigationX.create(this).PopAsync();
            };
            ToolbarItems.Add(gravarButton);

            if (TelaUtils.Orientacao == "Landscape")
            {
                _width = (int)TelaUtils.LarguraSemPixel * 0.5;
            }
            else
            {
                _width = (int)TelaUtils.LarguraSemPixel * 0.8;
            }

            inicializarComponente();

            Content = new ScrollView
            {
                Orientation     = ScrollOrientation.Vertical,
                VerticalOptions = LayoutOptions.FillAndExpand,
                Content         = new StackLayout
                {
                    BackgroundColor   = Color.Transparent,
                    Orientation       = StackOrientation.Vertical,
                    VerticalOptions   = LayoutOptions.StartAndExpand,
                    HorizontalOptions = LayoutOptions.CenterAndExpand,
                    Children          =
                    {
                        new StackLayout                 {
                            Orientation = StackOrientation.Horizontal,
                            Children    =
                            {
                                new Image               {
                                    Source            = "ic_monetization_on_black_24dp.png",
                                    VerticalOptions   = LayoutOptions.Center,
                                    HorizontalOptions = LayoutOptions.Center,
                                },
                                _ValorEntry
                            }
                        },
                        new StackLayout()
                        {
                            Orientation = StackOrientation.Horizontal,
                            Children    =
                            {
                                new Image()
                                {
                                    Source            = "ic_event_black_24dp.png",
                                    VerticalOptions   = LayoutOptions.Center,
                                    HorizontalOptions = LayoutOptions.Center,
                                },
                                new DatePicker
                                {
                                    IsVisible    = true,
                                    IsEnabled    = true,
                                    WidthRequest = _width,
                                }
                            }
                        },
                        new StackLayout()
                        {
                            Orientation = StackOrientation.Horizontal,
                            Children    =
                            {
                                new Image               {
                                    Source            = "ic_map_black_24dp.png",
                                    VerticalOptions   = LayoutOptions.Start,
                                    HorizontalOptions = LayoutOptions.Center
                                },
                                new StackLayout         {
                                    Orientation       = StackOrientation.Vertical,
                                    VerticalOptions   = LayoutOptions.Start,
                                    HorizontalOptions = LayoutOptions.Start,
                                    Children          =
                                    {
                                        _LocalEntry,
                                        new StackLayout {
                                            Margin            = new Thickness(5,            0),
                                            Orientation       = StackOrientation.Horizontal,
                                            VerticalOptions   = LayoutOptions.Start,
                                            HorizontalOptions = LayoutOptions.Start,
                                            Spacing           = 2,
                                            Children          =
                                            {
                                                _LatitudeLabel,
                                                _LongitudeLabel
                                            }
                                        }
                                    }
                                }
                            }
                        },
                        new StackLayout()
                        {
                            Orientation = StackOrientation.Horizontal,
                            Children    =
                            {
                                new Image               {
                                    Source            = "ic_shopping_cart_black_24dp.png",
                                    VerticalOptions   = LayoutOptions.Center,
                                    HorizontalOptions = LayoutOptions.Center,
                                },
                                _TipoGastoPicker
                            }
                        },
                        new StackLayout                 {
                            Orientation = StackOrientation.Horizontal,
                            Children    =
                            {
                                new Image               {
                                    Source            = "ic_edit_black_24dp.png",
                                    VerticalOptions   = LayoutOptions.Center,
                                    HorizontalOptions = LayoutOptions.Center,
                                },
                                _ObservacaoEntry
                            }
                        },
                        new StackLayout
                        {
                            Orientation = StackOrientation.Horizontal,
                            Children    =
                            {
                                _FotoImage
                            }
                        }
                    }
                }
            };
        }