public EntResumoDiario Inserir(EntResumoDiario objResumoDiario, DbTransaction transaction, Database db) { DbCommand dbCommand = db.GetStoredProcCommand("STP_ResumoDiarioInserir"); dbCommand.CommandTimeout = BdConfig.CommmandTimeout; db.AddOutParameter(dbCommand, "@CDA_RESUMO_DIARIO", DbType.Int32, objResumoDiario.IdResumoDiario); db.AddInParameter(dbCommand, "@TX_RESUMO_DIARIO", DbType.String, objResumoDiario.ResumoDiario); db.AddInParameter(dbCommand, "@QUANTIDADE", DbType.Decimal, objResumoDiario.Quantidade); db.AddInParameter(dbCommand, "@MELHOR_COMPRA", DbType.Decimal, objResumoDiario.MelhorCompra); db.AddInParameter(dbCommand, "@MELHOR_VENDA", DbType.Decimal, objResumoDiario.MelhorVenda); db.AddInParameter(dbCommand, "@VOLUME", DbType.Decimal, objResumoDiario.Volume); db.AddInParameter(dbCommand, "@PRECO_ULTIMA_TRANSACAO", DbType.Decimal, objResumoDiario.PrecoUltimaTransacao); db.AddInParameter(dbCommand, "@VALOR_MAXIMO", DbType.Decimal, objResumoDiario.ValorMaximo); db.AddInParameter(dbCommand, "@VALOR_MINIMO", DbType.Decimal, objResumoDiario.ValorMinimo); db.AddInParameter(dbCommand, "@DT_DATA", DbType.DateTime, objResumoDiario.Data); db.AddInParameter(dbCommand, "@CEA_MOEDA", DbType.Int32, IntUtils.ToIntNullProc(objResumoDiario.Moeda.IdMoeda)); db.AddInParameter(dbCommand, "@FL_ATIVO", DbType.Boolean, objResumoDiario.Ativo); db.ExecuteNonQuery(dbCommand, transaction); objResumoDiario.IdResumoDiario = ObjectUtils.ToInt(db.GetParameterValue(dbCommand, "@CDA_RESUMO_DIARIO")); return(objResumoDiario); }
private void AtualizaInformacoesResumoMoeda(EntMoeda objMoeda) { try { // Spot.Market | Spot market info endpoints var resumo = client.Spot.Market.Get24HPrice(objMoeda.Codigo + EntMoeda.USDT); /*// Spot.Order | Spot order info endpoints * client.Spot.Order.GetAllOrders("BTCUSDT"); * // Spot.System | Spot system endpoints * client.Spot.System.GetExchangeInfo(); * // Spot.UserStream | Spot user stream endpoints. Should be used to subscribe to a user stream with the socket client * client.Spot.UserStream.StartUserStream();*/ //var result = client.Spot.Order.PlaceTestOrder("BNBBTC", OrderSide.Buy, OrderType.Limit, timeInForce: TimeInForce.GoodTillCancel, quantity: 1, price: 2); EntResumoDiario objResumo = new EntResumoDiario(); objResumo.ResumoDiario = "Resumo " + objMoeda.Moeda; objResumo.Ativo = true; objResumo.Data = DateTime.Now; objResumo.Moeda.IdMoeda = objMoeda.IdMoeda; objResumo.PrecoUltimaTransacao = resumo.Data.LastPrice; objResumo.ValorMaximo = resumo.Data.HighPrice; objResumo.ValorMinimo = resumo.Data.LowPrice; objResumo.Volume = resumo.Data.BaseVolume; objResumo.Quantidade = resumo.Data.TotalTrades; objResumo.MelhorCompra = resumo.Data.AskPrice; objResumo.MelhorVenda = resumo.Data.BidPrice; new BllResumoDiario().Inserir(objResumo, EntUsuario.USUARIO_PADRAO); } catch (Exception ex) { Aviso(objMoeda.Codigo, "BITCOINER - ERRO ATUALIZAÇÃO RESUMO", "Houve um erro na atualização do resumo para " + objMoeda.Codigo + " em " + DateUtils.ToStringCompleto(DateTime.Now) + "\n\n" + ex.Message + "\n\n" + ex.StackTrace); } }
public EntResumoDiario Remover(EntResumoDiario objResumoDiario, Int32 IdUsuario) { using (DbConnection connection = db.CreateConnection()) { connection.Open(); DbTransaction transaction = connection.BeginTransaction(); try { objResumoDiario.Ativo = !objResumoDiario.Ativo; dalResumoDiario.Remover(objResumoDiario, transaction, db); SaveLog(IdUsuario, EntLog.LOG_REMOVER, "Resumo Diário", objResumoDiario.IdResumoDiario, objResumoDiario, transaction, db); transaction.Commit(); } catch (Exception ex) { transaction.Rollback(); SaveLog(IdUsuario, EntLog.LOG_ERRO, "Resumo Diário", objResumoDiario.IdResumoDiario, objResumoDiario, ex.Message, db, connection); throw; } finally { connection.Close(); } } return(objResumoDiario); }
public EntResumoDiario ObterPorId(Int32 IdResumoDiario) { EntResumoDiario objResumoDiario = new EntResumoDiario(); using (DbConnection connection = db.CreateConnection()) { connection.Open(); DbTransaction transaction = connection.BeginTransaction(); try { objResumoDiario = dalResumoDiario.ObterPorId(IdResumoDiario, transaction, db); transaction.Commit(); } catch { transaction.Rollback(); throw; } finally { connection.Close(); } } return(objResumoDiario); }
public void Remover(EntResumoDiario objResumoDiario, DbTransaction transaction, Database db) { DbCommand dbCommand = db.GetStoredProcCommand("STP_ResumoDiarioRemover"); dbCommand.CommandTimeout = BdConfig.CommmandTimeout; db.AddInParameter(dbCommand, "@CDA_RESUMO_DIARIO", DbType.Int32, objResumoDiario.IdResumoDiario); db.AddInParameter(dbCommand, "@FL_ATIVO", DbType.Boolean, objResumoDiario.Ativo); db.ExecuteNonQuery(dbCommand, transaction); }
private List <EntResumoDiario> Popular(DbDataReader dtrDados) { List <EntResumoDiario> listEntReturn = new List <EntResumoDiario>(); EntResumoDiario entReturn; try { while (dtrDados.Read()) { entReturn = new EntResumoDiario(); entReturn.IdResumoDiario = ObjectUtils.ToInt(dtrDados["CDA_RESUMO_DIARIO"]); entReturn.ResumoDiario = ObjectUtils.ToString(dtrDados["TX_RESUMO_DIARIO"]); entReturn.Quantidade = ObjectUtils.ToDecimal(dtrDados["QUANTIDADE"]); entReturn.MelhorCompra = ObjectUtils.ToDecimal(dtrDados["MELHOR_COMPRA"]); entReturn.MelhorVenda = ObjectUtils.ToDecimal(dtrDados["MELHOR_VENDA"]); entReturn.Volume = ObjectUtils.ToDecimal(dtrDados["VOLUME"]); entReturn.PrecoUltimaTransacao = ObjectUtils.ToDecimal(dtrDados["PRECO_ULTIMA_TRANSACAO"]); entReturn.ValorMaximo = ObjectUtils.ToDecimal(dtrDados["VALOR_MAXIMO"]); entReturn.ValorMinimo = ObjectUtils.ToDecimal(dtrDados["VALOR_MINIMO"]); entReturn.Data = ObjectUtils.ToDate(dtrDados["DT_DATA"]); entReturn.Moeda.IdMoeda = ObjectUtils.ToInt(dtrDados["CEA_MOEDA"]); entReturn.Moeda.Moeda = ObjectUtils.ToString(dtrDados["TX_MOEDA"]); entReturn.Ativo = ObjectUtils.ToBoolean(dtrDados["FL_ATIVO"]); listEntReturn.Add(entReturn); } dtrDados.Close(); } catch (Exception ex) { throw ex; } return(listEntReturn); }
public void Alterar(EntResumoDiario objResumoDiario, Int32 IdUsuario) { using (DbConnection connection = db.CreateConnection()) { connection.Open(); DbTransaction transaction = connection.BeginTransaction(); try { dalResumoDiario.Alterar(objResumoDiario, transaction, db); SaveLog(IdUsuario, EntLog.LOG_EDITAR, "Resumo Diário", objResumoDiario.IdResumoDiario, objResumoDiario, transaction, db); transaction.Commit(); } catch (Exception ex) { transaction.Rollback(); SaveLog(IdUsuario, EntLog.LOG_ERRO, "Resumo Diário", objResumoDiario.IdResumoDiario, objResumoDiario, ex.Message, db, connection); throw; } finally { connection.Close(); } } }
private void CriaOrdemVenda(EntMoeda objMoeda, EntCarteira objCarteira, EntResumoDiario ultimoStatus) { try { Decimal valor = ultimoStatus.MelhorCompra; if (valor < ultimoStatus.MelhorVenda) { valor = ultimoStatus.MelhorVenda; } if (valor < ultimoStatus.PrecoUltimaTransacao) { valor = ultimoStatus.PrecoUltimaTransacao; } if (valor < (objMoeda.OperacaoCompraAberta.ValorBitcoin * StringUtils.ToDecimal("1,005"))) { Aviso(objMoeda.Codigo, "BITCOINER - ORDEM DE VENDA NÃO CRIADA - VALOR MENOR QUE COMPRA", "Não criada ordem de venda em " + DateUtils.ToStringCompleto(DateTime.Now) + "\n" + objMoeda.Codigo + "\nValor: US$ " + DecimalUtils.ToString_8(valor), false); return; } Decimal quantidade = objCarteira.SaldoBitcoin; quantidade = DecimalUtils.ToDecimalRound(quantidade, objMoeda.CasasDepoisDaVirgula); if (StringUtils.ToBoolean(ConfigurationManager.AppSettings["teste"])) { EntOperacao objOperacao = new EntOperacao(); objOperacao.Ativo = true; objOperacao.Carteira = objCarteira; objOperacao.DataCriacao = DateTime.Now; objOperacao.DataInicioExecucao = DateTime.Now; objOperacao.IsVenda = true; objOperacao.Operacao = new Random().Next(10000, 99999).ToString(); objOperacao.ValorBitcoin = valor; objOperacao.ValorDolar = quantidade * valor; objOperacao.ValorReais = quantidade; objOperacao = new BllOperacao().Inserir(objOperacao, EntUsuario.USUARIO_PADRAO); objMoeda.OperacaoVendaAberta = objOperacao; new BllMoeda().Alterar(objMoeda, EntUsuario.USUARIO_PADRAO); Aviso(objMoeda.Codigo, "BITCOINER - ORDEM DE VENDA", "Criada ordem de venda em " + DateUtils.ToStringCompleto(DateTime.Now) + "\n" + objMoeda.Codigo + "\nValor: US$ " + DecimalUtils.ToString_8(valor) + " | Quantidade: " + DecimalUtils.ToString_8(quantidade)); } else { var result = client.Spot.Order.PlaceOrder(objMoeda.Codigo + EntMoeda.USDT, OrderSide.Sell, OrderType.Market, quantity: quantidade); if (result.Success) { EntOperacao objOperacao = new EntOperacao(); objOperacao.Ativo = true; objOperacao.Carteira = objCarteira; objOperacao.DataCriacao = DateTime.Now; objOperacao.DataInicioExecucao = DateTime.Now; objOperacao.IsVenda = true; objOperacao.Operacao = result.Data.OrderId.ToString(); objOperacao.ValorBitcoin = valor; objOperacao.ValorDolar = quantidade * valor; objOperacao.ValorReais = quantidade; objOperacao = new BllOperacao().Inserir(objOperacao, EntUsuario.USUARIO_PADRAO); objMoeda.OperacaoVendaAberta = objOperacao; new BllMoeda().Alterar(objMoeda, EntUsuario.USUARIO_PADRAO); Aviso(objMoeda.Codigo, "BITCOINER - ORDEM DE VENDA", "Criada ordem de venda em " + DateUtils.ToStringCompleto(DateTime.Now) + "\n" + objMoeda.Codigo + "\nValor: US$ " + DecimalUtils.ToString_8(valor) + " | Quantidade: " + DecimalUtils.ToString_8(quantidade)); } else { Aviso(objMoeda.Codigo, "BITCOINER - ORDEM DE VENDA", "ERRO Criada ordem de venda em " + DateUtils.ToStringCompleto(DateTime.Now) + "\n" + objMoeda.Codigo + "\nValor: US$ " + DecimalUtils.ToString_8(valor) + " | Quantidade: " + DecimalUtils.ToString_8(quantidade) + "\n\n" + result.Error.Message); } } } catch (Exception ex) { Aviso(objMoeda.Codigo, "BITCOINER - ERRO CRIAÇÃO ORDEM DE VENDA", "Houve um erro na criação de ordem de venda " + objMoeda.Codigo + " em " + DateUtils.ToStringCompleto(DateTime.Now) + "\n\n" + ex.Message + "\n\n" + ex.StackTrace); } }