コード例 #1
0
        private async void Salvar_Clicked(object sender, EventArgs e)
        {
            if (String.IsNullOrWhiteSpace(lbTitulo.Text) || String.IsNullOrWhiteSpace(lbValor.Text))
            {
                await DisplayAlert("Preencha os dados", "É necessário preencher o título e o valor da conta para salvar", "Ok");

                return;
            }
            if (dfData.Date.Subtract(DateTime.Now).Days < 0)
            {
                Bill bill = new Bill {
                    Id = _id, Titulo = lbTitulo.Text, DataVencimento = dfData.Date, Descricao = taObservacao.Text, IsMensal = swIsMensal.On, Valor = Math.Round(double.Parse(lbValor.Text), 2)
                };
                if (_id == -1)
                {
                    await _conn.InsertAsync(bill);

                    var temp1 = await _conn.Table <Bill>().OrderByDescending(x => x.Id).FirstAsync();

                    bill.Id = temp1.Id;
                    OverdueBills.InsertBill(bill);
                    CrossLocalNotifications.Current.Show("Você tem conta(s) atrasada(s)!", "Abra o App clicando aqui para ver mais detalhes", 0, DateTime.Today.AddDays(1).AddHours(12));
                }
                else
                {
                    // bill.Id = _id;
                    if (_originalBill.DataVencimento.Subtract(DateTime.Now).Days < 0)
                    {
                        OverdueBills.UpdateBill(bill);
                    }
                    else
                    {
                        Dividas.DeleteBill(bill);
                        OverdueBills.InsertBill(bill);
                        CrossLocalNotifications.Current.Cancel(_id);
                    }
                    CrossLocalNotifications.Current.Show("Você tem conta(s) atrasada(s)!", "Abra o App clicando aqui para ver mais detalhes", 0, DateTime.Today.AddDays(1).AddHours(12));
                    await _conn.UpdateAsync(bill);
                }
            }
            else
            {
                Bill bill = new Bill {
                    Id = _id, Titulo = lbTitulo.Text, DataVencimento = dfData.Date, Descricao = taObservacao.Text, IsMensal = swIsMensal.On, Valor = Math.Round(double.Parse(lbValor.Text), 2)
                };
                if (_id == -1)
                {
                    await _conn.InsertAsync(bill);

                    var temp2 = await _conn.Table <Bill>().OrderByDescending(x => x.Id).FirstAsync();

                    bill.Id = temp2.Id;
                    Dividas.InsertBill(bill);
                    if (DateTime.Now.Subtract(bill.DataVencimento.AddHours(12)).Hours < 0)
                    {
                        CrossLocalNotifications.Current.Show($"A conta {bill.Titulo} vence hoje",
                                                             $"Valor: R${String.Format("{0:F2}", bill.Valor)} - Clique aqui para abrir o App",
                                                             bill.Id, bill.DataVencimento.AddHours(12));
                    }
                }
                else
                {
                    //    bill.Id = _id;
                    if (_originalBill.DataVencimento.Subtract(DateTime.Now).Days >= 0)
                    {
                        Dividas.UpdateBill(bill);
                    }
                    else
                    {
                        OverdueBills.DeleteBill(bill);
                        Dividas.InsertBill(bill);
                    }
                    if (DateTime.Now.Subtract(bill.DataVencimento.AddHours(12)).Hours < 0)
                    {
                        CrossLocalNotifications.Current.Show($"A conta {bill.Titulo} vence hoje",
                                                             $"Valor: R${String.Format("{0:F2}", bill.Valor)} - Clique aqui para abrir o App",
                                                             bill.Id, bill.DataVencimento.AddHours(12));
                    }

                    await _conn.UpdateAsync(bill);
                }
            }
            await Navigation.PopAsync();
        }