public EntOperacao Inserir(EntOperacao objOperacao, DbTransaction transaction, Database db) { DbCommand dbCommand = db.GetStoredProcCommand("STP_OperacaoInserir"); dbCommand.CommandTimeout = BdConfig.CommmandTimeout; db.AddOutParameter(dbCommand, "@CDA_OPERACAO", DbType.Int32, objOperacao.IdOperacao); db.AddInParameter(dbCommand, "@TX_OPERACAO", DbType.String, objOperacao.Operacao); db.AddInParameter(dbCommand, "@DT_DATA_CRIACAO", DbType.DateTime, objOperacao.DataCriacao); db.AddInParameter(dbCommand, "@DT_DATA_INICIO_EXECUCAO", DbType.DateTime, DateUtils.ToDateObject(objOperacao.DataInicioExecucao)); db.AddInParameter(dbCommand, "@DT_DATA_FIM_EXECUCAO", DbType.DateTime, DateUtils.ToDateObject(objOperacao.DataFimExecucao)); db.AddInParameter(dbCommand, "@VALOR_REAIS", DbType.Decimal, objOperacao.ValorReais); db.AddInParameter(dbCommand, "@VALOR_DOLAR", DbType.Decimal, objOperacao.ValorDolar); db.AddInParameter(dbCommand, "@VALOR_BITCOIN", DbType.Decimal, objOperacao.ValorBitcoin); db.AddInParameter(dbCommand, "@CEA_CARTEIRA", DbType.Int32, IntUtils.ToIntNullProc(objOperacao.Carteira.IdCarteira)); db.AddInParameter(dbCommand, "@FL_IS_VENDA", DbType.Boolean, objOperacao.IsVenda); db.AddInParameter(dbCommand, "@TAXA", DbType.Decimal, objOperacao.Taxa); db.AddInParameter(dbCommand, "@FL_ATIVO", DbType.Boolean, objOperacao.Ativo); db.ExecuteNonQuery(dbCommand, transaction); objOperacao.IdOperacao = ObjectUtils.ToInt(db.GetParameterValue(dbCommand, "@CDA_OPERACAO")); return(objOperacao); }
public EntOperacao Remover(EntOperacao objOperacao, Int32 IdUsuario) { using (DbConnection connection = db.CreateConnection()) { connection.Open(); DbTransaction transaction = connection.BeginTransaction(); try { objOperacao.Ativo = !objOperacao.Ativo; dalOperacao.Remover(objOperacao, transaction, db); SaveLog(IdUsuario, EntLog.LOG_REMOVER, "Operação", objOperacao.IdOperacao, objOperacao, transaction, db); transaction.Commit(); } catch (Exception ex) { transaction.Rollback(); SaveLog(IdUsuario, EntLog.LOG_ERRO, "Operação", objOperacao.IdOperacao, objOperacao, ex.Message, db, connection); throw; } finally { connection.Close(); } } return(objOperacao); }
public EntOperacao ObterPorId(Int32 IdOperacao) { EntOperacao objOperacao = new EntOperacao(); using (DbConnection connection = db.CreateConnection()) { connection.Open(); DbTransaction transaction = connection.BeginTransaction(); try { objOperacao = dalOperacao.ObterPorId(IdOperacao, transaction, db); transaction.Commit(); } catch { transaction.Rollback(); throw; } finally { connection.Close(); } } return(objOperacao); }
public void Remover(EntOperacao objOperacao, DbTransaction transaction, Database db) { DbCommand dbCommand = db.GetStoredProcCommand("STP_OperacaoRemover"); dbCommand.CommandTimeout = BdConfig.CommmandTimeout; db.AddInParameter(dbCommand, "@CDA_OPERACAO", DbType.Int32, objOperacao.IdOperacao); db.AddInParameter(dbCommand, "@FL_ATIVO", DbType.Boolean, objOperacao.Ativo); db.ExecuteNonQuery(dbCommand, transaction); }
private List <EntOperacao> Popular(DbDataReader dtrDados) { List <EntOperacao> listEntReturn = new List <EntOperacao>(); EntOperacao entReturn; try { while (dtrDados.Read()) { entReturn = new EntOperacao(); entReturn.IdOperacao = ObjectUtils.ToInt(dtrDados["CDA_OPERACAO"]); entReturn.Operacao = ObjectUtils.ToString(dtrDados["TX_OPERACAO"]); entReturn.DataCriacao = ObjectUtils.ToDate(dtrDados["DT_DATA_CRIACAO"]); entReturn.DataInicioExecucao = ObjectUtils.ToDate(dtrDados["DT_DATA_INICIO_EXECUCAO"]); entReturn.DataFimExecucao = ObjectUtils.ToDate(dtrDados["DT_DATA_FIM_EXECUCAO"]); entReturn.ValorReais = ObjectUtils.ToDecimal(dtrDados["VALOR_REAIS"]); entReturn.ValorDolar = ObjectUtils.ToDecimal(dtrDados["VALOR_DOLAR"]); entReturn.ValorBitcoin = ObjectUtils.ToDecimal(dtrDados["VALOR_BITCOIN"]); entReturn.Carteira.IdCarteira = ObjectUtils.ToInt(dtrDados["CEA_CARTEIRA"]); entReturn.Carteira.Carteira = ObjectUtils.ToString(dtrDados["TX_CARTEIRA"]); entReturn.Carteira.Usuario.IdUsuario = ObjectUtils.ToInt(dtrDados["CEA_USUARIO"]); entReturn.Carteira.Usuario.Usuario = ObjectUtils.ToString(dtrDados["TX_USUARIO"]); entReturn.Carteira.Moeda.IdMoeda = ObjectUtils.ToInt(dtrDados["CEA_MOEDA"]); entReturn.Carteira.Moeda.Moeda = ObjectUtils.ToString(dtrDados["TX_MOEDA"]); entReturn.Carteira.Moeda.Codigo = ObjectUtils.ToString(dtrDados["TX_MOEDA_CODIGO"]); entReturn.Carteira.Moeda.CasasDepoisDaVirgula = ObjectUtils.ToInt(dtrDados["NU_CASAS_APOS_VIRGULA"]); entReturn.IsVenda = ObjectUtils.ToBoolean(dtrDados["FL_IS_VENDA"]); entReturn.Taxa = ObjectUtils.ToDecimal(dtrDados["TAXA"]); entReturn.Ativo = ObjectUtils.ToBoolean(dtrDados["FL_ATIVO"]); listEntReturn.Add(entReturn); } dtrDados.Close(); } catch (Exception ex) { throw ex; } return(listEntReturn); }
public void Alterar(EntOperacao objOperacao, Int32 IdUsuario) { using (DbConnection connection = db.CreateConnection()) { connection.Open(); DbTransaction transaction = connection.BeginTransaction(); try { dalOperacao.Alterar(objOperacao, transaction, db); SaveLog(IdUsuario, EntLog.LOG_EDITAR, "Operação", objOperacao.IdOperacao, objOperacao, transaction, db); transaction.Commit(); } catch (Exception ex) { transaction.Rollback(); SaveLog(IdUsuario, EntLog.LOG_ERRO, "Operação", objOperacao.IdOperacao, objOperacao, 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); } }