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"); } } }