public IHttpActionResult Put(int idPessoa, [FromBody] HistoricoInvestido value) { try { Carteira carteira = new Carteira(); double valorCripto = new Negocio().ConverterRealParaCripto(value.ValorInvestido, value._carteira.TipoMoeda); carteira._pessoa = new Pessoa(); carteira._pessoa.IdPessoa = idPessoa; carteira.IdCarteira = value._carteira.IdCarteira; carteira.TipoMoeda = value._carteira.TipoMoeda; CarteiraCrud carteiraCrud = new CarteiraCrud(); var carteiraAntiga = carteiraCrud.ConsultarPorIdPessoaANDTMoeda(carteira); carteira.Saldo = carteiraAntiga.Saldo + valorCripto; HistoricoCarteira historicoCarteira = new HistoricoCarteira(value._carteira, DateTime.Now, value.ValorInvestido, "Resgate Investimento"); HistoricoInvestido historicoInvestido = new HistoricoInvestido(value._carteira, DateTime.Now); carteiraCrud.Alterar(carteira); new HistoricoCarteiraCrud().InserirResgateInvestimento(historicoCarteira); new HistoricoInvestidoCrud().ResgatarInvestimento(historicoInvestido); return(Ok(idPessoa)); } catch (Exception ex) { return(BadRequest(ex.Message)); } }
public IHttpActionResult Post([FromBody] HistoricoInvestido value) { try { HistoricoCarteiraCrud historicoCarteiraCrud = new HistoricoCarteiraCrud(); HistoricoInvestidoCrud historicoInvestidoCrud = new HistoricoInvestidoCrud(); CarteiraCrud carteiraCrud = new CarteiraCrud(); value._carteira = carteiraCrud.ConsultarPorIdPessoaANDTMoeda(value._carteira); value.DtInicio = DateTime.Now; double valorEmReais = value.ValorInvestido; value.ValorInvestido = new Negocio().ConverterRealParaCripto(value.ValorInvestido, value._carteira.TipoMoeda); value._carteira.Saldo = value._carteira.Saldo - value.ValorInvestido; if (value._carteira.Saldo < 0) { value._carteira.Saldo = value._carteira.Saldo + value.ValorInvestido; value._carteira.Saldo = new Negocio().ConverterCriptoParaReal(value._carteira.Saldo, value._carteira.TipoMoeda); HttpResponseMessage response = this.Request.CreateErrorResponse(HttpStatusCode.BadRequest, "Saldo Insuficiente! Saldo atual desta moeda: R$" + value._carteira.Saldo.ToString("N2")); throw new HttpResponseException(response); } HistoricoCarteira historicoCarteira = new HistoricoCarteira(value._carteira, value.DtInicio, valorEmReais, "Investimento"); carteiraCrud.Alterar(value._carteira); historicoCarteiraCrud.InserirInvestimento(historicoCarteira); String retorno = historicoInvestidoCrud.Inserir(value); return(Ok(retorno)); } catch (Exception) { throw; } }
public string ResgatarInvestimento(HistoricoInvestido historicoInvestido) { try { acessoDados.LimparParametros(); acessoDados.AdicionarParametros("@dtNow", historicoInvestido.DtFim); acessoDados.AdicionarParametros("@idCarteira", historicoInvestido._carteira.IdCarteira); string retornoHistorico = acessoDados.ExecutarManipulacao(CommandType.Text, "BEGIN " + "UPDATE HistoricoInvestido " + "SET DtFim=@dtNow " + "WHERE IdCarteira = @idCarteira " + "SELECT @idCarteira AS RETORNO END").ToString(); return(retornoHistorico); } catch (Exception exception) { return(exception.Message); } }
public List <HistoricoInvestido> ConsultarDisponivelOrRetido(Carteira carteiraEth, Carteira carteiraBtc, DateTime dtInicio, DateTime dtFim) { try { //Criar uma nova coleção de clientes List <HistoricoInvestido> ListInvestido = new List <HistoricoInvestido>(); acessoDados.LimparParametros(); acessoDados.AdicionarParametros("@IdCarteiraEth", carteiraEth.IdCarteira); acessoDados.AdicionarParametros("@IdCarteiraBtc", carteiraBtc.IdCarteira); acessoDados.AdicionarParametros("@dtInicio", dtInicio); acessoDados.AdicionarParametros("@dtFim", dtFim); //Retornará uma DataTable DataTable dataTable = acessoDados.ExecutarConsulta(CommandType.Text, "SELECT * " + "FROM HistoricoInvestido AS h INNER JOIN Carteira as c ON h.IdCarteira=c.IdCarteira " + "WHERE (h.IdCarteira IN (@IdCarteiraEth,@IdCarteiraBtc)) " + "AND (DtInicio BETWEEN @dtInicio AND @dtFim) AND (dtFim IS NULL) ORDER BY DtInicio DESC"); foreach (DataRow linha in dataTable.Rows) { HistoricoInvestido historicoInvestido = new HistoricoInvestido(); historicoInvestido.DtInicio = Convert.ToDateTime(linha["DtInicio"]); historicoInvestido.IdHistoricoInvestimento = Convert.ToInt32(linha["IdHistoricoInvestimento"]); historicoInvestido.ValorInvestido = Convert.ToDouble(linha["ValorInvestido"]); historicoInvestido._carteira = new Carteira(); historicoInvestido._carteira.IdCarteira = Convert.ToInt32(linha["IdCarteira"]); historicoInvestido._carteira.TipoMoeda = Convert.ToInt32(linha["TipoMoeda"]); historicoInvestido.ValorInvestido = new Negocio().ConverterCriptoParaReal(historicoInvestido.ValorInvestido, historicoInvestido._carteira.TipoMoeda); ListInvestido.Add(historicoInvestido); } return(ListInvestido); } catch (Exception exception) { throw new Exception("Erro no Banco. Detalhes: " + exception.Message); } }
public string Inserir(HistoricoInvestido historicoInvestido) { try { acessoDados.LimparParametros(); acessoDados.AdicionarParametros("@IdCarteira", historicoInvestido._carteira.IdCarteira); acessoDados.AdicionarParametros("@DtInicio", historicoInvestido.DtInicio); acessoDados.AdicionarParametros("@ValorInvestido", historicoInvestido.ValorInvestido); string retornoHistorico = acessoDados.ExecutarManipulacao(CommandType.Text, "BEGIN " + "INSERT INTO HistoricoInvestido " + "(IdCarteira,DtInicio,ValorInvestido) " + "VALUES (@IdCarteira,@DtInicio,@ValorInvestido) " + "SELECT @@IDENTITY as RETORNO " + "END").ToString(); return(retornoHistorico); } catch (Exception exception) { return(exception.Message); } }