public static ObterCotacaoMoedaResponse ToResponse(this OperacaoCambio operacao, decimal quantidadeMoedaEstrangeira) { return(new ObterCotacaoMoedaResponse { Moeda = operacao.Moeda, Quantidade = quantidadeMoedaEstrangeira, ValorMoeda = operacao.ValorMoeda, ValorTotal = operacao.ValorOperacao }); }
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); }
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; } }
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(); } }