Exemplo n.º 1
0
 private async void CarregaProdutos(object sender, EventArgs e)
 {
     listaProdutos = await produto_Service.ListarAsync();
 }
Exemplo n.º 2
0
        protected override async void OnAppearing()
        {
            base.OnAppearing();
            if (string.IsNullOrEmpty(CarrinhoView.pedido.FornecedorId))
            {
                PopuleBindings();
            }

            eh_Distribuidor = usuarioLogado.Tipo == "Distribuidor";

            if (eh_Distribuidor)
            {
                AdicionaBotaoNovoProduto();
            }

            lblTitulo.Text = eh_Distribuidor ? "Meus Produtos" : "Lista de Produtos";

            IEnumerable <Pessoa> pessoas = await pessoa_Service.ListarAsync();

            IEnumerable <Produto> produtos = await produto_Service.ListarAsync();

            if (eh_Distribuidor)
            {
                pessoas  = pessoas.Where(p => p.Id == usuarioLogado.Id).ToList();
                produtos = produtos.Where(p => p.FornecedorId == usuarioLogado.Id).ToList();
            }
            else
            {
                pessoas = pessoas.Where(p => p.Tipo == "Distribuidor").ToList();
            }

            var request   = new GeolocationRequest(GeolocationAccuracy.Best);
            var mPosition = await Geolocation.GetLocationAsync(request);

            foreach (Produto produto in produtos)
            {
                var forn = pessoas.Where(p => p.Id == produto.FornecedorId).FirstOrDefault();

                if (forn == null)
                {
                    continue;
                }

                produto.FornecedorNome = forn.RazaoSocial;
                produto.Latitude       = forn.Latitude;
                produto.Longitude      = forn.Longitude;

                Location locForn = new Location(forn.Latitude, forn.Longitude);
                forn.Distancia =
                    mPosition.CalculateDistance(locForn, DistanceUnits.Kilometers);

                produto.Distancia = $"{forn.Distancia.ToString("N4")} KMs";

                produto.FotoSource = produto.FotoByte.ToImageSource();
            }

            lvProdutos.ItemsSource = produtos;

            //lvProdutos.ItemsSource = new List<Produto>
            //{
            //    new Produto
            //    {
            //        Descricao ="Gás do bom",
            //        Distancia = "5km",
            //        FornecedorNome = "zé do gás",
            //        Preco = 10.00,
            //    },
            //    new Produto
            //    {
            //        Descricao ="Gás do bom",
            //        Distancia = "5km",
            //        FornecedorNome = "zé do gás",
            //        Preco = 10.00,
            //    },
            //    new Produto
            //    {
            //        Descricao ="Gás do bom",
            //        Distancia = "5km",
            //        FornecedorNome = "zé do gás",
            //        Preco = 10.00,
            //    },
            //};
        }