//Cria ou atualiza a conta
        void CriarConta(object sender, EventArgs e)
        {
            TipoConta tipo = new TipoConta();

            if (FindViewById <RadioButton>(Resource.Id.radioButton1).Checked)
            {
                tipo = TipoConta.Moeda_Em_Espécie;
            }
            else if (FindViewById <RadioButton>(Resource.Id.radioButton2).Checked)
            {
                tipo = TipoConta.Cartão_De_Crédito;
            }
            else if (FindViewById <RadioButton>(Resource.Id.radioButton3).Checked)
            {
                tipo = TipoConta.Cartão_De_Débito;
            }
            else if (FindViewById <RadioButton>(Resource.Id.radioButton4).Checked)
            {
                tipo = TipoConta.Poupança;
            }

            decimal saldo;

            if (!decimal.TryParse(FindViewById <EditText>(Resource.Id.editText2).Text.Replace(",", "."), out saldo))
            {
                saldo = 0;
            }

            try {
                if (contaID == -1)
                {
                    GerenciadorBanco.adicionarConta(FindViewById <EditText>(Resource.Id.editText1).Text, saldo, tipo);

                    Toast.MakeText(this, "Conta criada com sucesso.", ToastLength.Short).Show();
                }
                else
                {
                    Contas contaAtualizada = new Contas(saldo, tipo, FindViewById <EditText>(Resource.Id.editText1).Text, contaID);
                    GerenciadorBanco.updateConta(contaAtualizada);

                    Toast.MakeText(this, "Conta atualizada com sucesso.", ToastLength.Short).Show();
                }

                Finish();
            } catch {
                if (contaID == -1)
                {
                    Toast.MakeText(this, "Erro ao criar nova conta.", ToastLength.Short).Show();
                }
                else
                {
                    Toast.MakeText(this, "Erro ao atualizar a conta.", ToastLength.Short).Show();
                }
            }
        }
        public static void deleteTransferencia(Transferencias transferencia)
        {
            Contas contaOrigem  = acessarConta(transferencia.ID_ContaOrigem);
            Contas contaDestino = acessarConta(transferencia.ID_ContaDestino);

            if (contaDestino.Saldo - transferencia.Valor < 0)
            {
                return;
            }
            contaDestino.Saldo -= transferencia.Valor;
            contaOrigem.Saldo  += transferencia.Valor;
            updateConta(contaOrigem);
            updateConta(contaDestino);
            conn.Delete(transferencia);
        }
        public static void deleteTransferencia(object transferencia_ID)
        {
            Transferencias transferencia = conn.Find <Transferencias>(transferencia_ID);
            Contas         contaOrigem   = acessarConta(transferencia.ID_ContaOrigem);
            Contas         contaDestino  = acessarConta(transferencia.ID_ContaDestino);

            if (contaDestino.Saldo - transferencia.Valor < 0)
            {
                return;
            }
            contaDestino.Saldo -= transferencia.Valor;
            contaOrigem.Saldo  += transferencia.Valor;
            updateConta(contaOrigem);
            updateConta(contaDestino);
            conn.Delete <Transferencias>(transferencia_ID);
        }
        //Transferências
        public static int adicionarTransferencia(int idContaOrigem, int idContaDestino, decimal valor, DateTime dataHora, string comentario)
        {
            Contas contaOrigem  = acessarConta(idContaOrigem);
            Contas contaDestino = acessarConta(idContaDestino);

            if (contaOrigem.ID == -1 || contaDestino.ID == -1 || contaOrigem.Saldo < valor)
            {
                return(-1);
            }
            Transferencias transferencia = new Transferencias(idContaOrigem, idContaDestino, valor, dataHora, comentario);

            contaOrigem.Saldo  -= valor;
            contaDestino.Saldo += valor;
            updateConta(contaOrigem);
            updateConta(contaDestino);
            return(conn.Insert(transferencia));
        }
        public static void updateTransferencia(Transferencias transferencia)
        {
            Transferencias antiga = acessarTransferencia(transferencia.ID);

            if (antiga.Valor == transferencia.Valor || antiga.ID_ContaDestino != transferencia.ID_ContaDestino || antiga.ID_ContaOrigem != transferencia.ID_ContaDestino)
            {
                conn.Update(transferencia);
                return;
            }
            Contas contaOrigem  = acessarConta(antiga.ID_ContaOrigem);
            Contas contaDestino = acessarConta(antiga.ID_ContaDestino);

            if (antiga.Valor < transferencia.Valor)
            {
                if (contaDestino.Saldo - (transferencia.Valor - antiga.Valor) < 0)
                {
                    return;
                }
                else
                {
                    contaOrigem.Saldo  += transferencia.Valor - antiga.Valor;
                    contaDestino.Saldo -= transferencia.Valor - antiga.Valor;
                }
            }
            else
            {
                if (contaOrigem.Saldo - (transferencia.Valor - antiga.Valor) < 0)
                {
                    return;
                }
                contaOrigem.Saldo  += antiga.Valor - transferencia.Valor;
                contaDestino.Saldo -= antiga.Valor - transferencia.Valor;
            }
            updateConta(contaOrigem);
            updateConta(contaDestino);
            conn.Update(transferencia);
        }
        //Lançamento
        public static int adicionarLancamento(int idConta, int idFornecedor, int idCategoria, decimal valor, TipoLancamento Tipo, DateTime dataHora, string comentario)
        {
            Lancamentos lancamento = new Lancamentos(idConta, idFornecedor, idCategoria, valor, Tipo, dataHora, comentario);
            Contas      conta      = acessarConta(idConta);

            valor = Math.Abs(valor);

            if (conta.ID == -1)
            {
                return(-1);
            }
            if (Tipo == TipoLancamento.Creditar)
            {
                conta.Saldo += valor;
            }
            else
            {
                conta.Saldo -= valor;
            }

            updateConta(conta);

            return(conn.Insert(lancamento));
        }
 public static void deleteConta(Contas conta)
 {
     conn.Delete(conta);
 }
 public static void updateConta(Contas conta)
 {
     conn.Update(conta);
 }
        //Contas
        public static int adicionarConta(String nome, decimal saldo, TipoConta tipo)
        {
            Contas conta = new Contas(saldo, tipo, nome);

            return(conn.Insert(conta));
        }