예제 #1
0
 public ContaService()
 {
     if (_repository == null)
     {
         _repository = new ContaRepository();
     }
 }
예제 #2
0
        private void AtualizarGrid()
        {
            Contas = ContaRepository.Obter();

            gridContas.DataSource = null;
            gridContas.DataSource = Contas.ToList();
        }
예제 #3
0
 public TransacaoController(TransacaoRepository transacaoRepository, ContaRepository contaRepository, SalvaTransacaoService salvaTransacaoService, MovimentoRepository movimentoRepository)
 {
     this.transacaoRepository   = transacaoRepository;
     this.contaRepository       = contaRepository;
     this.salvaTransacaoService = salvaTransacaoService;
     this.movimentoRepository   = movimentoRepository;
 }
예제 #4
0
        private void gridContas_CellClick(object sender, DataGridViewCellEventArgs e)
        {
            if (e.ColumnIndex > -1 && e.RowIndex > -1)
            {
                Conta itemSelecionado = (Conta)gridContas.Rows[e.RowIndex].DataBoundItem;

                if (gridContas.Columns[e.ColumnIndex].Name == "btnEditar") //Editar
                {
                    FrmManutencaoConta frm = new FrmManutencaoConta(itemSelecionado.Id);
                    frm.ShowDialog();

                    AtualizarGrid();
                }

                if (gridContas.Columns[e.ColumnIndex].Name == "btnApagar") //Apagar
                {
                    DialogResult resut = MessageBox.Show("Deseja apagar o item?", "Remover", MessageBoxButtons.YesNo, MessageBoxIcon.Question);

                    if (resut == DialogResult.Yes)
                    {
                        ContaRepository.Apagar(itemSelecionado.Id);

                        AtualizarGrid();
                    }
                }
            }
        }
예제 #5
0
 public void Initialize()
 {
     contaRepository = new ContaRepository();
     Contas          = new List <Conta>();
     dgContas.AutoGenerateColumns = false;
     AtualizaGrid();
 }
예제 #6
0
        private void Salvar()
        {
            if (CadastroEhValido())
            {
                Conta.Agencia       = txtAgencia.Text;
                Conta.ContaCorrente = txtContaCorrente.Text;
                Conta.Limite        = Convert.ToDecimal(txtLimite.Text);
                Conta.Saldo         = Convert.ToDecimal(txtSaldo.Text);

                // var idCliente =  cmbCliente.SelectedValue;
                //  var objetoCliente = (Cliente)cmbCliente.SelectedItem;
                var idCliente = ((Cliente)cmbCliente.SelectedItem).Id;

                var idBanco = ((Banco)cmbBanco.SelectedItem).Id;

                Conta.ClienteId = idCliente;
                Conta.BancoId   = idBanco;

                if (Conta.Id == 0)
                {
                    ContaRepository.Inserir(Conta);
                    MessageBox.Show("Cadastro Incluido com sucesso", "Informação", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
                else
                {
                    ContaRepository.Editar(Conta);
                    MessageBox.Show("Cadastro alterado com sucesso", "Informação", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }

                Close();
            }
        }
예제 #7
0
        public void AoCadastrarContaApiDeveRetornar201()
        {
            //arrange
            var options = new DbContextOptionsBuilder <SocialContext>()
                          .UseInMemoryDatabase("SocialContext")
                          .Options;

            var contexto = new SocialContext(options);

            var repoConta  = new ContaRepository(contexto);
            var repoTransf = new TransferenciaRepository(contexto);

            var contaService      = new ContaService(repoConta);
            var transacoesService = new TransacoesService(repoTransf, repoConta);

            var controlador = new ContasController(contaService, transacoesService);

            var model = new ContaApi
            {
                Name        = "Bruno",
                Description = "Daldegan",
                Status      = "ACTIVE",
                Idenfifier  = "65432"
            };

            //act
            var retorno = controlador.Incluir(model);

            Assert.IsType <CreatedResult>(retorno); //201
        }
예제 #8
0
 public TransacoesController()
 {
     contaRepository = new ContaRepository(new ContextFactory());
     categoriaRepository = new CategoriaRepository(new ContextFactory());
     journalRepository = new JournalRepository(new ContextFactory());
     transacaoRepository = new TransacaoRepository(new ContextFactory());
     extratoServices = new ExtratoServices();
 }
예제 #9
0
        static void Main(string[] args)
        {
            ContaRepository repository = new ContaRepository();

            #region Inserir Conta
            Conta conta = new Conta();
            conta.Limite        = 100;
            conta.Saldo         = 1000;
            conta.ContaCorrente = "654321";
            conta.Agencia       = "7890";
            conta.Banco         = "Santander";
            repository.Inserir(conta);
            #endregion

            #region Editar Conta
            Conta contaEditar = new Conta();
            conta.Id            = 1;
            conta.Limite        = 100;
            conta.Saldo         = 1000;
            conta.ContaCorrente = "654321";
            conta.Agencia       = "7890";
            conta.Banco         = "Santander";
            #endregion

            #region Apagar Conta
            repository.Apagar(1);
            #endregion

            #region Obter uma conta
            Conta conta_1 = repository.Obter(1);
            #endregion

            #region Obter todas Contas
            IEnumerable <Conta> contas = repository.Obter();

            foreach (var item in contas)
            {
                Console.WriteLine(item.Banco);
            }
            #endregion


            #region Saque
            Conta contaSaque = repository.Obter(1);
            #endregion

            #region Deposito
            Conta contaDeposito = repository.Obter(1);
            #endregion

            #region Transferencia
            Conta contaTransferencia = repository.Obter(1);
            #endregion

            Console.ReadKey();
        }
예제 #10
0
        private void Initialize()
        {
            ContaRepository = new ContaRepository();

            Contas = new List <Conta>();

            gridContas.AutoGenerateColumns = false;

            AtualizarGrid();
        }
        public bool Deposito(int idAgencia, int conta, decimal valor, out string mensagemErro)
        {
            mensagemErro = "";

            var agencia = AgenciaRepository.GetById(idAgencia);

            if (agencia == null)
            {
                mensagemErro = "Agência inválida!";
                return(false);
            }

            var contaCorrente = ContaRepository.GetById(idAgencia, conta);

            if (contaCorrente == null)
            {
                mensagemErro = "Conta inválida!";
                return(false);
            }

            if (valor <= 0)
            {
                mensagemErro = "Valor do depósito deve ser maior do que 0!";
                return(false);
            }

            contaCorrente.Saldo = contaCorrente.Saldo + valor;

            var extrato = new Extrato()
            {
                DataRegistro = DateTime.Today,
                AgenciaId    = idAgencia,
                ContaId      = conta,
                Valor        = valor,
                Saldo        = contaCorrente.Saldo,
                Descricao    = "Depósito"
            };

            try
            {
                using (var transaction = new TransactionScope())
                {
                    ContaRepository.Save(contaCorrente);
                    ExtratoRepository.Save(extrato);
                    transaction.Complete();
                }
            }
            catch (Exception)
            {
                // incluir isso em um log...
                mensagemErro = "Ocorreu um erro ao fazer o depósito!";
                return(false);
            }
            return(true);
        }
        public List <ContaListItem> Get()
        {
            var repositorio = new ContaRepository();
            ContaListViewModel viewModel = new ContaListViewModel();

            viewModel.Filtro.UsuarioId   = "cc21864d-41b2-44a1-917d-5fff5807edb6";
            viewModel.Filtro.DataInicial = new DateTime(DateTime.Now.Year, DateTime.Now.Month, 1);
            viewModel.Filtro.DataFinal   = DateTime.Now;
            viewModel.ContaList          = repositorio.ObterPorFiltro(viewModel.Filtro).ToList();
            return(viewModel.ContaList);
        }
예제 #13
0
        public bool Deposito(int agencia, int conta, decimal valor, out string mensagemErro)
        {
            mensagemErro = "";
            var ag = AgenciaRepository.GetById(agencia);

            if (ag == null)
            {
                mensagemErro = "Agência Invalida";
                return(false);
            }

            var cc = ContaRepository.GetById(agencia, conta);

            if (cc == null)
            {
                mensagemErro = "Conta Invalida";
                return(false);
            }

            if (valor <= 0)
            {
                mensagemErro = "O valor do deposito for maior que zero!";
                return(false);
            }

            cc.Saldo = cc.Saldo + valor;

            var extrato = new Extrato()
            {
                DataRegistro = DateTime.Now,
                AgenciaId    = agencia,
                ContaId      = conta,
                Valor        = valor,
                Saldo        = cc.Saldo,
                Descricao    = "Deposito"
            };

            try
            {
                using (var t = new TransactionScope())
                {
                    ContaRepository.Save(cc);
                    ExtratoRepository.Save(extrato);
                    t.Complete();
                }
            }
            catch (Exception ex)
            {
                mensagemErro = "Ocorreu um problema ao fazer o depósito!";
                return(false);
            }

            return(true);
        }
예제 #14
0
        // GET api/<controller>
        public List <ContaListItem> Get()
        {
            var repositorio = new ContaRepository();
            ContaListViewModel viewModel = new ContaListViewModel();

            viewModel.Filtro.UsuarioId   = "admin";
            viewModel.Filtro.DataInicial = new DateTime(DateTime.Now.Year, 6, 1);
            viewModel.Filtro.DataFinal   = DateTime.Now;

            viewModel.ContaList = repositorio.ObterPorFiltro(viewModel.Filtro).ToList();

            return(viewModel.ContaList);
        }
예제 #15
0
        public IList <Extrato> Extrato(int agencia, int conta, DateTime dataInicio, DateTime dataFim, out string mensagemErro)
        {
            mensagemErro = "";
            var ag = AgenciaRepository.GetById(agencia);

            if (ag == null)
            {
                mensagemErro = "Agencia Invalida";
                return(null);
            }

            var cc = ContaRepository.GetById(agencia, conta);

            if (cc == null)
            {
                mensagemErro = "Conta Invalida";
                return(null);
            }

            if (dataInicio > dataFim)
            {
                mensagemErro = "Data inicio deve ser menor que a data de fim!";
                return(null);
            }

            if ((dataFim - dataInicio).Days > 120)
            {
                mensagemErro = "O perido nao deve ser superior a 120 dias!";
                return(null);
            }

            try
            {
                var extrato = ExtratoRepository.GetByPeriodo(agencia, conta, dataInicio, dataFim);

                var linhaSaldo = new Extrato()
                {
                    Descricao = "Saldo anterior",
                    Saldo     = ExtratoRepository.GetSaldoAnterior(agencia, conta, dataInicio, dataFim)
                };

                extrato.Insert(0, linhaSaldo);

                return(extrato);
            }
            catch (Exception ex)
            {
                mensagemErro = "Ocorreu um problema ao obter o extrato!";
                return(null);
            }
        }
        public void AdicionarTransacaoManualTestFakery()
        {
            ///AAA - Arrange, Act, Assert
            ///Arrange
            var contaa   = Conta.CriarConta(Conta.TipoConta.Bronze);
            var fakeRepo = new ContaRepository(contaa); //esse repositório foi montado para servir de repositório falso, equanto o oficial não foi desenvolvido
            var sutt     = new ContaService(fakeRepo);

            //Act
            sutt.AdicionarTransacao("ContaComercial", 200m);

            //Assert
            Assert.AreEqual(200m, contaa.Saldo);
        }
예제 #17
0
        public FrmManutencaoConta(int id)
        {
            InitializeComponent();

            ContaRepository   = new ContaRepository();
            BancoRepository   = new BancoRepository();
            ClienteRepository = new ClienteRepository();

            PreencherComboCliente();

            PreencherComboBanco();

            Obter(id);
        }
예제 #18
0
        private void btnSalvar_Click(object sender, EventArgs e)
        {
            ContaRepository contaRepository = new ContaRepository();
            Conta           conta           = new Conta();

            conta.Limite        = Convert.ToDecimal(edLimite.Text);
            conta.Saldo         = Convert.ToDecimal(edSaldo.Text);
            conta.ContaCorrente = edNrConta.Text;
            conta.Agencia       = edAgencia.Text;
            conta.BancoId       = Convert.ToInt32(cbBanco.Text[0].ToString());
            conta.ClienteId     = Convert.ToInt32(cbCliente.Text[0].ToString());
            contaRepository.Inserir(conta);
            MessageBox.Show("Registro incluído com sucesso");
            Close();
        }
예제 #19
0
        public void Setup()
        {
            var connection = DbConnectionFactory.CreatePersistent(Guid.NewGuid().ToString());

            _context    = new FakeDbContext(connection);
            _repository = new ContaRepository(_context);

            _conta = ContaObjectMother.GetContaValida();
            //Seed
            _contaSeed = ContaObjectMother.GetContaValida();
            _context.Contas.Add(_contaSeed);
            _context.Clientes.Add(_contaSeed.Cliente);
            _context.Clientes.Add(_conta.Cliente);
            _context.SaveChanges();
        }
예제 #20
0
파일: Test.cs 프로젝트: NickeManarin/Contas
        public async Task ReturnsList()
        {
            var optionsBuilder = new DbContextOptionsBuilder <DataContext>();

            optionsBuilder.UseSqlServer("Server=(localdb)\\MSSQLLocalDB;Database=ContasExtensoDatabase;Trusted_Connection=True;MultipleActiveResultSets=true");
            var context   = new DataContext(optionsBuilder.Options);
            var contaRepo = new ContaRepository(context);
            var regraRepo = new RegraRepository(context);

            var service = new ContaService(contaRepo, regraRepo);
            var sut     = new ContasController(service, new NullLogger <ContasController>());
            var result  = await sut.GetAll() as ObjectResult;

            Assert.IsType <List <Conta> >(result.Value);
            Assert.Equal(200, result.StatusCode);
        }
        public IList <Extrato> Extrato(int idAgencia, int conta, DateTime dataInicio, DateTime dataFim, out string mensagemErro)
        {
            mensagemErro = "";

            var agencia = AgenciaRepository.GetById(idAgencia);

            if (agencia == null)
            {
                mensagemErro = "Agência inválida!";
                return(null);
            }

            var contaCorrente = ContaRepository.GetById(idAgencia, conta);

            if (contaCorrente == null)
            {
                mensagemErro = "Conta de origem é invalida!";
                return(null);
            }

            if (dataInicio > dataFim)
            {
                mensagemErro = "A data de inicio deve ser menor do que a data fim!";
                return(null);
            }

            if ((dataFim - dataInicio).Days > 120)
            {
                mensagemErro = "O período não deve ser superior a 120 dias!";
                return(null);
            }

            try
            {
                var extratoLista = ExtratoRepository.GetByPeriodo(agencia.Id, conta, dataInicio, dataFim);
                return(extratoLista);
            }
            catch (Exception)
            {
                mensagemErro = "Ocorreu um erro ao fazer obter o extrato!";
                return(null);
            }
        }
예제 #22
0
파일: Test.cs 프로젝트: NickeManarin/Contas
        public async Task CreatesEntry()
        {
            var optionsBuilder = new DbContextOptionsBuilder <DataContext>();

            optionsBuilder.UseInMemoryDatabase("InMemoryDatabaseName");
            var context   = new DataContext(optionsBuilder.Options);
            var contaRepo = new ContaRepository(context);
            var regraRepo = new RegraRepository(context);

            var service = new ContaService(contaRepo, regraRepo);
            var sut     = new ContasController(service, new NullLogger <ContasController>());
            var result  = await sut.Create(new ContaTransfer
            {
                Nome       = "Conta",
                Valor      = 20.8m,
                Vencimento = new DateTime(2020, 12, 10),
                Pagamento  = new DateTime(2020, 12, 20)
            }) as ObjectResult;

            Assert.Equal(200, result.StatusCode);
        }
예제 #23
0
        public decimal Saldo(int agencia, int conta, out string mensagemErro)
        {
            mensagemErro = "";
            var ag = AgenciaRepository.GetById(agencia);

            if (ag == null)
            {
                mensagemErro = "Agencia Invalida";
                return(0);
            }

            var cc = ContaRepository.GetById(agencia, conta);

            if (cc == null)
            {
                mensagemErro = "Conta Invalida";
                return(0);
            }

            return(cc.Saldo);
        }
        public decimal Saldo(int agencia, int conta, out string mensagemErro)
        {
            mensagemErro = "";

            var ag = AgenciaRepository.GetById(agencia);

            if (agencia == 0)
            {
                mensagemErro = "Agência inválida!";
                return(0);
            }

            var contaCorrente = ContaRepository.GetById(agencia, conta);

            if (contaCorrente == null)
            {
                mensagemErro = "Conta inválida!";
                return(0);
            }

            return(contaCorrente.Saldo);
        }
예제 #25
0
        private void Obter(int id)
        {
            Conta = ContaRepository.Obter(id);

            if (Conta == null) // Então é novo
            {
                Conta = new Conta();
            }
            else // Editar conta existente
            {
                combo_Banco.SelectedValue = Conta.BancoId;
                combo_Banco.Refresh();

                combo_Cliente.SelectedValue = Conta.ClientId;
                combo_Cliente.Refresh();

                txt_Agencia.Text       = Conta.Agencia;
                txt_ContaCorrente.Text = Conta.ContaCorrente;
                txt_Limite.Text        = Conta.Limite.ToString();
                txt_Saldo.Text         = Conta.Saldo.ToString();
            }
        }
예제 #26
0
        private void Obter(int id)
        {
            Conta = ContaRepository.Obter(id);

            if (Conta == null) //Novo
            {
                Conta = new Conta();
            }
            else //Editar
            {
                lblId.Text            = Conta.Id.ToString();
                txtAgencia.Text       = Conta.Agencia;
                txtContaCorrente.Text = Conta.ContaCorrente;
                txtLimite.Text        = Conta.Limite.ToString();
                txtSaldo.Text         = Conta.Saldo.ToString();

                cmbCliente.SelectedValue = Conta.ClienteId;
                cmbCliente.Refresh();

                cmbBanco.SelectedValue = Conta.BancoId;
                cmbBanco.Refresh();
            }
        }
예제 #27
0
        public void Setup()
        {
            this.unitOfWork           = Dependency.Resolve <IUnitOfWork>();
            this.contaRepository      = Dependency.Resolve <ContaRepository>();
            this.categoriaRepository  = Dependency.Resolve <CategoriaRepository>();
            this.fechaMovimento       = Dependency.Resolve <FechaMovimentoService>();
            this.transferenciaService = Dependency.Resolve <TransferenciaService>();
            this.gastoService         = Dependency.Resolve <GastoService>();
            this.recebimentoService   = Dependency.Resolve <RecebimentoService>();
            this.abreMovimentoService = Dependency.Resolve <AbreMovimentoService>();
            this.fluxoCaixaService    = Dependency.Resolve <FluxoCaixaService>();

            using (this.unitOfWork.Begin())
            {
                Dependency.Resolve <DatabaseCleaner>().Execute();
            }

            using (this.unitOfWork.Begin())
            {
                this.contaRepository.Seed();
                this.categoriaRepository.Seed();
            }

            using (this.unitOfWork.Begin())
            {
                this.caixa = this.contaRepository.ById(Conta.CaixaId);
                this.itau  = this.contaRepository.ById(Conta.ItauId);

                this.proLabore   = this.categoriaRepository.ByNome("Pró-Labore");
                this.aluguel     = this.categoriaRepository.ByNome("Aluguel");
                this.vendas      = this.categoriaRepository.ByNome("Vendas 206");
                this.compras     = this.categoriaRepository.ByNome("Compras");
                this.combustivel = this.categoriaRepository.ByNome("Combustível");
                this.energia     = this.categoriaRepository.ByNome("Energia");
            }
        }
예제 #28
0
 public ContaController()
 {
     contaRepository = new ContaRepository(new ContextFactory());
 }
        public bool Saque(int idAgencia, int conta, decimal valor, out string mensagemErro)
        {
            mensagemErro = "";

            var agencia = AgenciaRepository.GetById(idAgencia);

            if (agencia == null)
            {
                mensagemErro = "Agência inválida!";
                return(false);
            }

            var contaCorrente = ContaRepository.GetById(idAgencia, conta);

            if (contaCorrente == null)
            {
                mensagemErro = "Conta inválida!";
                return(false);
            }

            if (valor <= 0)
            {
                mensagemErro = "O valor do saque precisa ser maior que zero!";
                return(false);
            }

            if (valor > contaCorrente.Saldo)
            {
                mensagemErro = "O valor do saque precisa ser menor ou igual ao saldo da conta!";
                return(false);
            }

            contaCorrente.Saldo = contaCorrente.Saldo - valor;

            var extrato = new Extrato()
            {
                DataRegistro = DateTime.Now,
                AgenciaId    = idAgencia,
                ContaId      = conta,
                Valor        = valor * -1,
                Saldo        = contaCorrente.Saldo,
                Descricao    = "Saque"
            };

            try
            {
                using (var transaction = new TransactionScope())
                {
                    ContaRepository.Save(contaCorrente);
                    ExtratoRepository.Save(extrato);
                    transaction.Complete();
                }
            }
            catch (Exception)
            {
                // incluir isso em um log...
                mensagemErro = "Ocorreu um erro ao fazer o saque!";
                return(false);
            }
            return(true);
        }
예제 #30
0
 public ContaTests()
 {
     contaRepository = new ContaRepository(new ContextFactory());
     owner = "test";
 }
        public bool Transferencia(int agenciaOrigem, int contaOrigem, decimal valor, int agenciaDestino, int contaDestino, out string mensagemErro)
        {
            mensagemErro = "";

            var agOrigem = AgenciaRepository.GetById(agenciaOrigem);

            if (agOrigem == null)
            {
                mensagemErro = "Agência de origem inválida!";
                return(false);
            }

            var contaCorrenteOrigem = ContaRepository.GetById(agenciaOrigem, contaOrigem);

            if (contaCorrenteOrigem == null)
            {
                mensagemErro = "Conta de origem inválida!";
                return(false);
            }

            if (valor <= 0)
            {
                mensagemErro = "O valo deve ser maior do que zero!";
                return(false);
            }

            if (valor > contaCorrenteOrigem.Saldo)
            {
                mensagemErro = "O valor do saque precisa ser menor ou igual ao saldo da conta!";
                return(false);
            }

            var agDestino = AgenciaRepository.GetById(agenciaDestino);

            if (agDestino == null)
            {
                mensagemErro = "Agência de destino inválida!";
                return(false);
            }

            var contaCorrenteDestino = ContaRepository.GetById(agenciaDestino, contaDestino);

            if (contaCorrenteDestino == null)
            {
                mensagemErro = "Conta de destino inválida!";
                return(false);
            }

            contaCorrenteOrigem.Saldo = contaCorrenteOrigem.Saldo - valor;

            var extratoOrigem = new Extrato()
            {
                DataRegistro = DateTime.Now,
                AgenciaId    = agenciaOrigem,
                ContaId      = contaCorrenteOrigem.Id,
                Valor        = valor * -1,
                Saldo        = contaCorrenteDestino.Saldo,
                Descricao    = $"Transferência para Ag {agenciaDestino} Cc {contaCorrenteDestino} ",
            };

            contaCorrenteDestino.Saldo = contaCorrenteDestino.Saldo + valor;

            var extratoDestino = new Extrato()
            {
                DataRegistro = DateTime.Now,
                AgenciaId    = agenciaDestino,
                ContaId      = contaCorrenteDestino.Id,
                Valor        = valor,
                Saldo        = contaCorrenteDestino.Saldo,
                Descricao    = $"Transferência de Ag {agenciaOrigem} Cc {contaCorrenteOrigem} ",
            };

            try
            {
                using (var transaction = new TransactionScope())
                {
                    ContaRepository.Save(contaCorrenteOrigem);
                    ExtratoRepository.Save(extratoOrigem);
                    ExtratoRepository.Save(extratoDestino);
                    transaction.Complete();
                }
            }
            catch (Exception)
            {
                mensagemErro = "Ocorreu um problema ao fazer a tranferência!";
                return(false);
            }

            return(true);
        }
예제 #32
0
 /// <summary>
 /// Construtor padrão
 /// </summary>
 /// <param name="contaRepository">repositorio da conta</param>
 public TransacaoRepositoryMock(ContaRepository contaRepository)
 {
     this.contaRepository = contaRepository;
     listaTransacoes      = new List <TransacaoDTO>();
     popularLista();
 }
예제 #33
0
        static void Main(string[] args)
        {
            ClienteRepository ClienteRepositorio = new ClienteRepository();

            #region InserirCliente
            DateTime DtaNasc = Convert.ToDateTime("13/03/1983");
            Cliente  cliente = new Cliente();
            cliente.Nome           = "Bruno Linhari";
            cliente.DataNascimento = DtaNasc;

            //ClienteRepositorio.Inserir(cliente);
            #endregion

            #region InserirBanco
            BancoRepository BancoRepositorio = new BancoRepository();
            Banco           banco            = new Banco();
            banco.Codigo = 243;
            banco.Nome   = "Itaú";
            //BancoRepositorio.Inserir(banco);
            #endregion

            #region InserirConta
            ContaRepository repository = new ContaRepository();
            Conta           conta      = new Conta();
            conta.Limite        = 100;
            conta.Saldo         = 1000;
            conta.ContaCorrente = "123456";
            conta.Agencia       = "123";
            conta.BancoId       = 1;
            conta.ClienteId     = 1;

            //repository.Inserir(conta);

            #endregion        }

            #region Editar Conta
            Conta contaEditar = new Conta();
            contaEditar.Id            = 3;
            contaEditar.Limite        = 100;
            contaEditar.Saldo         = 1000;
            contaEditar.ContaCorrente = "123456";
            contaEditar.Agencia       = "123";
            //contaEditar.Banco = "Itaú";

            //repository.Editar(contaEditar);
            #endregion

            #region Apagar Conta
            //repository.Apagar(2);
            #endregion

            #region Ralizar Saque
            Conta contaSaque = repository.Obter(1);

            //repository.RealizarSaque(contaSaque, 10);
            #endregion

            #region Ralizar Deposito
            Conta contaDeposito = repository.Obter(2);

            //repository.RealizarSaque(contaDeposito, 20);
            #endregion

            #region Ralizar Transferencia
            Conta contaOrigem  = repository.Obter(3);
            Conta contaDestino = repository.Obter(4);

            //repository.RealizarTransferencia(contaOrigem, contaDestino, 10);
            #endregion

            #region Obter apenas uma Conta
            Conta conta_1 = repository.Obter(1);
            Console.WriteLine(conta_1);
            #endregion

            #region Obter Todas as Contas
            IEnumerable <Conta> contas = repository.Obter();

            foreach (var item in contas)
            {
                Console.Write(item.Saldo + " - ");
                Console.Write(item.Limite + " - ");
                Console.Write(item.Agencia + " - ");
                Console.WriteLine(item.ContaCorrente);
            }
            #endregion

            Console.ReadKey();
        }