コード例 #1
0
        private async void OpenSalvar()
        {
            if (await PageDialog.DisplayAlertAsync("Deseja salvar a compra?", NomeMercado + Environment.NewLine + Environment.NewLine + DataEmissao, "Salvar", "Cancelar"))
            {
                try
                {
                    var all = await App.LocalDatabase.Get();

                    var x = all.Find(n => n.Nome == NotaFiscal.GetNomeLocal() && n.Endereco == NotaFiscal.GetEndereco());

                    if (x != null)
                    {
                        NotaFiscal.Nota.IdLocal = x.Id;
                    }
                    else
                    {
                        NotaFiscal.Nota.IdLocal = NotaFiscal.Local.Id;
                        await App.LocalDatabase.Insert(NotaFiscal.Local);
                    }

                    await App.NotaDatabase.Insert(NotaFiscal.Nota);

                    foreach (ProdutoModel p in NotaFiscal.Produtos)
                    {
                        p.Produto.IdLocal = NotaFiscal.Local.Id;
                        p.Produto.IdNota  = NotaFiscal.Nota.Id;

                        var prodRepetido = await App.ProdutoDatabase.Get();

                        var prodfind = prodRepetido.Find(n => n.Descricao == p.Produto.Descricao);

                        if (prodfind != null)
                        {
                            await App.ProdutoDatabase.Insert(p.Produto);

                            p.Preco.IdProduto = prodfind.Id;
                        }

                        await App.PrecoDatabase.Insert(p.Preco);
                    }

                    await PageDialog.DisplayAlertAsync("Salvo!", "Nota salva com sucesso.", "Ok");
                }
                catch (Exception e)
                {
                    await PageDialog.DisplayAlertAsync("Erro!", e.Message, "Ok");
                }
            }
        }