Esempio n. 1
0
 public static ObterCotacaoMoedaResponse ToResponse(this OperacaoCambio operacao, decimal quantidadeMoedaEstrangeira)
 {
     return(new ObterCotacaoMoedaResponse
     {
         Moeda = operacao.Moeda,
         Quantidade = quantidadeMoedaEstrangeira,
         ValorMoeda = operacao.ValorMoeda,
         ValorTotal = operacao.ValorOperacao
     });
 }
Esempio n. 2
0
        public void OperacaoCambio_ObterValorCotacao()
        {
            //arrange
            var operacaoCambio = new OperacaoCambio(new Cliente(1, "Teste", "012345678901", Domain.Enums.Segmento.Varejo), new TaxaCambio(Domain.Enums.Segmento.Varejo, 0.1M));

            //act
            operacaoCambio.DefinirMoedaOperacao("USD", 2m);
            operacaoCambio.CalcularValorOperacao(100);

            //assert
            Assert.Equal(220, operacaoCambio.ValorOperacao);
        }
Esempio n. 3
0
        public async Task <ObterCotacaoMoedaResponse> ObterCotacaoMoeda(ObterCotacaoMoedaRequest request)
        {
            if (new ObterCotacaoMoedaValidation(_clienteRepository, _notificacoes).Validar(request))
            {
                var cliente    = _clienteRepository.ObterClientePorId(request.IdCliente);
                var taxa       = _taxaRepository.ObterTaxaCambioPorSegmento(cliente.Segmento);
                var valorMoeda = await _exchangeRatesApiProxy.ObterUltimaCotacaoMoeda(request.Moeda);

                var operacao = new OperacaoCambio(cliente, taxa);

                operacao.DefinirMoedaOperacao(request.Moeda, valorMoeda);

                operacao.CalcularValorOperacao(request.QuantidadeMoeda);

                return(operacao.ToResponse(request.QuantidadeMoeda));
            }
            return(null);
        }
        public OperacaoCambio ObterPorId(int id)
        {
            OperacaoCambio resultado = new OperacaoCambio();

            try
            {
                using (var connection = new SQLiteConnection(ConexaoBanco.ObterStringConexao()))
                {
                    var lstResultado = connection.Query <OperacaoCambio>($"SELECT * FROM OPERACAO WHERE Id = {id} ;").AsList();
                    if (lstResultado.Count > 0)
                    {
                        resultado = lstResultado.First();
                    }
                }
            }
            catch (Exception ex)
            {
                throw;
            }

            return(resultado);
        }
        public int Incluir(OperacaoCambio operacaoCambio)
        {
            try
            {
                using (var connection = new SQLiteConnection(ConexaoBanco.ObterStringConexao()))
                {
                    string sql = $"INSERT INTO OPERACAO (IdPessoa, Data, IdMoedaOrigem, IdMoedaDestino, ValorOriginal, ValorConvertido, TaxaCobrada) ";
                    sql = sql + $" VALUES ({operacaoCambio.IdPessoa} " +
                          $" , '{operacaoCambio.Data.ToString("yyyy-MM-dd")}' " +
                          $" ,  {operacaoCambio.IdMoedaOrigem} " +
                          $" ,  {operacaoCambio.IdMoedaDestino} " +
                          $" ,  {operacaoCambio.ValorOriginal.ToSql()} " +
                          $" , {operacaoCambio.ValorConvertido.ToSql()} " +
                          $" ,  {operacaoCambio.TaxaCobrada.ToSql()} ) ";

                    var registrosAfetados = connection.Execute(sql);
                    return(registrosAfetados);
                }
            }
            catch (Exception ex)
            {
                throw;
            }
        }
        public int Alterar(OperacaoCambio operacaoCambio)
        {
            try
            {
                using (var connection = new SQLiteConnection(ConexaoBanco.ObterStringConexao()))
                {
                    string sql = $"UPDATE OPERACAO SET " +
                                 $"   IdPessoa = {operacaoCambio.IdPessoa} " +
                                 $" , Data = {operacaoCambio.Data.ToString("yyyy-MM-dd")} " +
                                 $" , IdMoedaOrigem = {operacaoCambio.IdMoedaOrigem} " +
                                 $" , IdMoedaDestino = {operacaoCambio.IdMoedaDestino} " +
                                 $" , ValorOriginal = {operacaoCambio.ValorOriginal.ToSql()} " +
                                 $" , ValorConvertido = {operacaoCambio.ValorConvertido.ToSql()} " +
                                 $" , TaxaCobrada = {operacaoCambio.TaxaCobrada.ToSql()} ";

                    var registrosAfetados = connection.Execute(sql);
                    return(registrosAfetados);
                }
            }
            catch (Exception ex)
            {
                throw;
            }
        }
Esempio n. 7
0
        private void btnSalvar_Click(object sender, EventArgs e)
        {
            // Salvar a Operação
            if (Id > 0)
            {
                // Editar
                var op = DBOperacoes.ObterPorId(Id);
                op.IdPessoa        = int.Parse(txtIdPessoa.Text);
                op.Data            = DateTime.Now;
                op.IdMoedaOrigem   = int.Parse(txtIdMoedaOrigem.Text);
                op.IdMoedaDestino  = int.Parse(txtIdMoedaDestino.Text);
                op.ValorOriginal   = Decimal.Parse(txtValorOriginal.Tag.ToString());
                op.ValorConvertido = Decimal.Parse(txtValorAposConversao.Tag.ToString());
                op.TaxaCobrada     = Decimal.Parse(txtTaxaCobrada.Tag.ToString());

                DBOperacoes.Alterar(op);
                this.Close();
            }
            else
            {
                if (PessoaSelecionada == null)
                {
                    MessageBox.Show("Selecione um cliente antes de fazer a conversão.");
                    btnPesquisarPessoa.Focus();
                    return;
                }

                if (MoedaOrigemSelecionada == null)
                {
                    MessageBox.Show("Selecione uma moeda de ORIGEM antes de fazer a conversão.");
                    btnPesquisarMoedaOrigem.Focus();
                    return;
                }

                if (MoedaDestinoSelecionada == null)
                {
                    MessageBox.Show("Selecione uma moeda de DESTINO antes de fazer a conversão.");
                    btnPesquisaMoedaDestino.Focus();
                    return;
                }

                if (String.IsNullOrWhiteSpace(txtValorOriginal.Text))
                {
                    MessageBox.Show("informe o valor a ser convertido.");
                    txtValorOriginal.Focus();
                    return;
                }

                decimal vlrASerConvertido = Convert.ToDecimal(txtValorOriginal.Tag);
                if (vlrASerConvertido <= 0)
                {
                    MessageBox.Show("O Valor a ser convertido não pode ser negativo ou inferior a zero.");
                    txtValorOriginal.Focus();
                    return;
                }

                decimal vlrJaConvertido = Convert.ToDecimal(txtValorAposConversao.Tag);
                if (vlrJaConvertido <= 0)
                {
                    MessageBox.Show("Efetue a conversão antes de Salvar o registro.");
                    btnConverter.Focus();
                    return;
                }


                // Inserir
                OperacaoCambio op = new OperacaoCambio();
                op.IdPessoa        = int.Parse(txtIdPessoa.Text);
                op.Data            = DateTime.Now;
                op.IdMoedaOrigem   = int.Parse(txtIdMoedaOrigem.Text);
                op.IdMoedaDestino  = int.Parse(txtIdMoedaDestino.Text);
                op.ValorOriginal   = Decimal.Parse(txtValorOriginal.Tag.ToString());
                op.ValorConvertido = Decimal.Parse(txtValorAposConversao.Tag.ToString());
                op.TaxaCobrada     = Decimal.Parse(txtTaxaCobrada.Tag.ToString());

                DBOperacoes.Incluir(op);
                this.Close();
            }
        }