public HttpResponseMessage GetBTCValue() { try { var priece = BinanceHelper.getBTCMarketValue().price; return(Request.CreateResponse(HttpStatusCode.OK, decimal.Round(priece, 2, MidpointRounding.AwayFromZero))); } catch (Exception ex) { return(Request.CreateResponse(HttpStatusCode.InternalServerError, ex.Message)); } }
public HttpResponseMessage GetMarketPriece(string symbol) { try { var priece = BinanceHelper.getMarketValue(symbol.ToUpper()).price; return(Request.CreateResponse(HttpStatusCode.OK, priece)); } catch (Exception ex) { return(Request.CreateResponse(HttpStatusCode.InternalServerError, ex.Message)); } }
public HttpResponseMessage GetDollarValue() { try { var currencies = BinanceHelper.getDollarValue(); var BRL = currencies.data.Where(x => x.pair == "BRL_USD").FirstOrDefault(); return(Request.CreateResponse(HttpStatusCode.OK, decimal.Round(BRL.rate, 2, MidpointRounding.AwayFromZero))); } catch (Exception ex) { return(Request.CreateResponse(HttpStatusCode.InternalServerError, ex.Message)); } }
public MyJsonResult validateLotSize(int id, decimal qtd) { var chamada = _ChamadasRepo.GetWith_Symbol_and_Filter(id); var obj = new FilterLotSize() { isValid = true, msg = "" }; string FilterError; if (!BinanceHelper.IsValidateLotSizeFIlter(out FilterError, chamada, qtd)) { obj.isValid = false; obj.msg = FilterError; return(new MyJsonResult(obj, JsonRequestBehavior.AllowGet)); } return(new MyJsonResult(obj, JsonRequestBehavior.AllowGet)); }
public MyJsonResult getPriece(string symbol) { var price = BinanceHelper.getMarketValue(symbol.ToUpper()).price; return(new MyJsonResult(price, JsonRequestBehavior.AllowGet)); }
public HttpResponseMessage Post([FromBody] CreateChamadaViewModel ViewModel) { try { if (ViewModel == null) { return(Request.CreateResponse(HttpStatusCode.NotAcceptable, "Campos Inválidos", "text/plain")); } if (ModelState.IsValid) { #region Binance var userId = int.Parse(Helper.GetJWTPayloadValue(Request, "id")); var user = _UserRepo.GetById(userId); var chamada = _ChamadasRepo.GetWith_Symbol_and_Filter(ViewModel.id); var ordemType = BinanceHelper.getEntradaOrderType(chamada); string BinanceOrderID = ""; if (!BinanceHelper.ValidateFilterPrice(chamada.Symbol.filters.Where(x => x.filterType == "PRICE_FILTER").FirstOrDefault(), ViewModel.qtd)) { return(Request.CreateResponse(HttpStatusCode.BadRequest, new BinanceErrors { code = 0, motivo = "Quantidade Inválida" })); } do { BinanceOrderID = Helper.GenerateRandomOcoOrderID(10); } while (_OrdemRepo.IsValidOrderID(BinanceOrderID)); HttpResponseMessage BinanceResult = BinanceRestApi.SendOrdemEntrada(user.BinanceAPIKey, user.BinanceAPISecret, ordemType, chamada.Symbol.symbol, ViewModel.qtd, chamada.PrecoEntrada, chamada.RangeEntrada, BinanceOrderID); #endregion if (BinanceResult.IsSuccessStatusCode) { var ordem = new Ordem() { DataCadastro = DateTime.UtcNow, DataExecucao = null, Quantidade = (decimal)ViewModel.qtd, Chamada_Id = ViewModel.id, Usuario_Id = user.Id, OrdemStatus_Id = 1, TipoOrdem_Id = 1, BinanceStatus_Id = 1, OrderID = BinanceOrderID }; Logs.LogOrdem(user.Id + " (" + user.Email + ") => " + DateTime.UtcNow + " => Type (Aceitar Chamada Sucesso) ChamadaID => " + chamada.Id); _OrdemRepo.Add(ordem); var objanonimo = new { Id = ordem.Id, TipoOrdem = 1, Status_id = ordem.OrdemStatus_Id, DataCadastro = ordem.DataCadastro, Quantidade = ordem.Quantidade.ToString("N8"), Chamada_Id = ordem.Chamada_Id, Symbol = chamada.Symbol.symbol, Descricao = "Aguardando Entrada", PrecoEntrada = chamada.PrecoEntrada.ToString("N8"), PrecoGain = chamada.PrecoGain.ToString("N8"), PrecoLoss = chamada.PrecoLoss.ToString("N8"), RangeEntrada = chamada.RangeEntrada.ToString("N8"), observacao = chamada.Observacao }; //necessario porque o kra pode estar logado no app e na web ao mesmo tempo e tentar enviar nos dois _signalContext.Clients.User(userId.ToString()).RemoverChamada(chamada.Id); _signalContext.Clients.User("admin").AddPosicionado(chamada.Id); return(Request.CreateResponse(HttpStatusCode.OK, objanonimo)); } else { var BinanceerrorObj = Helper.GetBinanceErrorObj(BinanceResult); Logs.LogOrdem(user.Id + " (" + user.Email + ") => Type (Aceitar Chamada Erro) ChamadaID => " + chamada.Id + " code => " + BinanceerrorObj.code + " motivo => " + BinanceerrorObj.msg); return(Request.CreateResponse(HttpStatusCode.BadRequest, BinanceerrorObj)); } } var modelstateError = ModelStateErrors.DisplayModelStateError(ModelState); return(Request.CreateResponse(HttpStatusCode.NotAcceptable, modelstateError, "text/plain")); } catch (Exception ex) { return(Request.CreateResponse(HttpStatusCode.InternalServerError, ex.Message)); } }