public async Task <AccountBalanceResponse> GetAccountBalance(IBtcMarketsApi api = null) { var responseObj = new AccountBalanceResponse { Success = true }; try { if (api == null) { api = Api; } HttpResponseMessage response = await api.GetAccountBalanceRaw(); if (response.IsSuccessStatusCode) { var content = await response.Content.ReadAsStringAsync(); try { var balances = JsonConvert.DeserializeObject <List <AccountBalance> >(content); responseObj.Balances = balances; } catch (Exception) { var baseResponse = JsonConvert.DeserializeObject <BaseResponse>(content); if (baseResponse != null) { responseObj.Success = baseResponse.Success; responseObj.ErrorCode = baseResponse.ErrorCode; responseObj.ErrorMessage = baseResponse.ErrorMessage; } } } else { responseObj.Success = false; responseObj.ErrorCode = 101; responseObj.ErrorMessage = "Remote api returned invalid status code while retrieving balances"; } } catch (Exception ex) { responseObj.Success = false; responseObj.ErrorCode = 100; responseObj.ErrorMessage = ex.ToString(); } return(responseObj); }
public AccountBalanceDataPackage Query(int beginYear, int beginPeriod, int endYear, int endPeriod) { var request = new AccountBalanceRequest { BeginPeriod = beginPeriod, BeginYear = beginYear, EndPeriod = endPeriod, EndYear = endYear }; AccountBalanceResponse rsp = Execute(request); AccountBalanceDataPackage package = new AccountBalanceDataPackage(); package.ListBeginBalnace = rsp.ListBeginBalnace; package.ListCurrentOccurs = rsp.ListCurrentOccurs; return(package); }
/// <summary> /// 获取提现账户余额 /// </summary> /// <param name="userContext"></param> /// <returns></returns> public ResponseModel GetWithdrawingBalance(UserContext userContext) { var result = _accountbookProxyService.GetWithdrawingBalance(userContext); var responseModel = new ResponseModel(); var accountBalanceResponse = new AccountBalanceResponse(); if (result.Code == Convert.ToInt32(ResponseErrorcode.C200)) { if (result.Data != null) { var model = result.Data; accountBalanceResponse.TotalBalance = model.Money + model.TotalFrozenPayMoney; accountBalanceResponse.AvailableBalance = model.Money; accountBalanceResponse.TotalAmount = model.BillingBusinessList.Sum(b => b.TotalMoney); if (model.BillingBusinessList != null && model.BillingBusinessList.Any(b => b.Id == (int)BillingBusinessTypeEnum.WechatGathering)) { accountBalanceResponse.WechatGatheringAmount = model.BillingBusinessList.First(b => b.Id == (int)BillingBusinessTypeEnum.WechatGathering) .TotalMoney; accountBalanceResponse.WechatTotalBillingJournalsNum = model.BillingBusinessList.First(b => b.Id == (int)BillingBusinessTypeEnum.WechatGathering) .TotalBillingJournalsNum; } if (model.BillingBusinessList != null && model.BillingBusinessList.Any(b => b.Id == (int)BillingBusinessTypeEnum.MobileShop)) { accountBalanceResponse.MobileShopGatheringAmount = model.BillingBusinessList.First(b => b.Id == (int)BillingBusinessTypeEnum.MobileShop) .TotalMoney; accountBalanceResponse.MobileShopTotalBillingJournalsNum = model.BillingBusinessList.First(b => b.Id == (int)BillingBusinessTypeEnum.MobileShop) .TotalBillingJournalsNum; } } } responseModel.Data = accountBalanceResponse; responseModel.Code = result.Code; responseModel.Message = result.Message; return(responseModel); }
public async Task <IActionResult> Balance(string id) { _logger.LogInformation($"{nameof(AccountController)}.{nameof(Balance)} - {id}"); if (string.IsNullOrWhiteSpace(id)) { return(BadRequest($"Account id cannot be null")); } BalanceResult balanceResult = await _accountService.GetBalance(new AccountInfo(id, Amount.None)); if (balanceResult.Status == AccountStatus.Error) { return(BadRequest($"{balanceResult.Message}")); } AccountBalanceResponse response = new AccountBalanceResponse(balanceResult.AccountId, balanceResult.Amount.Value, balanceResult.Name); return(Ok(response)); }
static async Task <AccountBalanceResponse> AccountBalanceAsync() { AccountBalanceRequest _accountBalanceRequest = new AccountBalanceRequest() .AsSecurityCredential("Safaricom474!") .AsEntity("testapi474", "600474") .AsCommandID("AccountBalance") .AsEndpoints("https://safaricom.api", "https://safaricom.api") .AsComments("Test") .AsIdentifierType(4); AccountBalanceResponse _response = await _safaricomApiClient.PostPaymentRequestAsync(_accountBalanceRequest); if (_response.ErrorCode == null) { Console.WriteLine("==========================================="); Console.WriteLine("=====Account Balance Success Response======"); Console.WriteLine("==========================================="); Console.WriteLine(Environment.NewLine); Console.WriteLine(_response.OriginatorConversationID + Environment.NewLine + _response.ConversationID + Environment.NewLine + _response.ResponseDescription); Console.WriteLine(Environment.NewLine); } else { Console.WriteLine("==========================================="); Console.WriteLine("======Account Balance Error Response======="); Console.WriteLine("==========================================="); Console.WriteLine(Environment.NewLine); Console.WriteLine(_response.ErrorCode + Environment.NewLine + _response.ErrorMessage + Environment.NewLine + _response.ErrorRequestId); Console.WriteLine(Environment.NewLine); } return(_response); }
static void Main(string[] args) { TradeioApi api = new TradeioApi("aaaaaaaa-bbbb-cccc-dddd-eeeeeeee", "aaaaaaaa-bbbb-cccc-dddd-eeeeeeee"); string symbol = "btc_usdt"; Console.WriteLine("******PAIRS******"); PairsResponse pairsResponse = api.GetPairs().Result; Console.WriteLine(string.Join(',', pairsResponse.Pairs)); Console.WriteLine("******CANDLES******"); CandlesResponse candles = api.GetCandles("btc_usdt", CandleInterval.OneDay, DateTime.UtcNow.AddMonths(-1), DateTime.UtcNow, 20).Result; foreach (CandleInfo candle in candles.Candles) { Console.WriteLine($"open: {candle.Open}; close: {candle.Close}; low: {candle.Low}; high: {candle.High}"); } Console.WriteLine("******ORDER BOOK******"); OrderBookResponse orderBookResponse = api.GetOrderBook(symbol, 2).Result; Console.WriteLine("***ASK***"); foreach (var askArray in orderBookResponse.Book.Asks) { Console.WriteLine($"Price: {askArray[0]}; Count: {askArray[1]}"); } Console.WriteLine("***BID***"); foreach (var bidArray in orderBookResponse.Book.Bids) { Console.WriteLine($"Price: {bidArray[0]}; Count: {bidArray[1]}"); } Console.WriteLine("******TICKER******"); TickerResponse tickerResponse = api.GetTicker(symbol).Result; Console.WriteLine($"ASK price: {tickerResponse.Ticker.AskPrice}, qty: {tickerResponse.Ticker.AskQty}; BID price: {tickerResponse.Ticker.BidPrice}, qty: {tickerResponse.Ticker.BidQty}"); //tickers for all pairs //var tickers = api.GetTickers().Result; Console.WriteLine("******RECENT TRADES******"); TradesResponse tradesResponse = api.GetRecentTrades("btc_usdt", 2).Result; foreach (TradeInfo trade in tradesResponse.Trades) { Console.WriteLine($"{trade.Symbol} price: {trade.Price}, qty: {trade.Quantity}, side: {trade.Type}, date: {UnixTime.GetDateTime(trade.Time)} UTC"); } //PRIVATE METHODS. NOT WORKING WITHOUT PUBLIC AND PRIVATE KEY Console.WriteLine("******CURRENT BALANCES******"); AccountBalanceResponse accountBalance = api.GetAccount().Result; foreach (BalanceInfo balanceInfo in accountBalance.Balances) { Console.WriteLine($"{balanceInfo.Asset}:{balanceInfo.Available} (locked: {balanceInfo.Locked})"); } Console.WriteLine("******OPEN ORDERS******"); OrdersResponse ordersResponse = api.GetOpenOrders(symbol).Result; foreach (OrderInfoResponse order in ordersResponse.Orders) { Console.WriteLine($"{order.Side} {order.Instrument} for {order.Price}. Filled: {order.UnitsFilled}"); } Console.WriteLine("******CLOSED ORDERS******"); FilteredResponse <OrderInfoResponse> closeOrdersResponse = api.GetClosedOrders(symbol, UnixTime.Get(DateTime.UtcNow.AddDays(-1)), UnixTime.Get(DateTime.UtcNow)).Result; foreach (OrderInfoResponse order in closeOrdersResponse.Data) { Console.WriteLine($"{order.Side} {order.Instrument} for {order.Price}. Filled: {order.UnitsFilled}. Status: {order.Status}"); } Console.WriteLine("******PLACE ORDER******"); var orderResponse = api.PlaceOrder(new Models.OrderRequest() { Price = 4000, Quantity = 10, Side = Models.OrderSide.Buy, Symbol = symbol, Type = Models.OrderType.Limit }).Result; Console.WriteLine("******CANCEL ORDER******"); Response response = api.CancelOrder(orderResponse.Order.OrderId).Result; if (response.Code == 200) { Console.WriteLine("Order canceled"); } Console.ReadLine(); }