public async Task <IActionResult> Get() { var response = await _serviceRates.Get(); if (response.ResponseH.Result != ResultTypeHelper.ResultMsg.OK) { var message = new HttpResponseMessage(HttpStatusCode.BadRequest) { Content = new StringContent(response.ResponseH.ErrText) }; return(BadRequest(message)); } else { return(Ok(response.DataH)); } }
public async Task <IActionResult> GetAssetPairRates(string assetPairId) { if (string.IsNullOrWhiteSpace(assetPairId)) { return(BadRequest(ErrorResponse.Create($"{nameof(assetPairId)} has invalid value"))); } try { AssetPairRate rate = await _ratesService.Get(assetPairId); return(Ok(Mapper.Map <AssetPairResponseModel>(rate))); } catch (Exception ex) { _log.Error(ex, null, $"request: {new {assetPairId}.ToJson()}"); if (ex is ApiRequestException apiException) { return(apiException.GenerateErrorResponse()); } throw; } }
public async Task <bool> LoadOnlineData(bool forceLoad = false) { async Task <bool> LoadRates() { var rates = await ratesService.Get(); if (rates == null) { online = false; return(false); } Rates = rates.Select(r => new Rate(r.AssetId, r.TargetCurrency, r.Amount, r.Fee)).ToArray(); // if rates changed await ratesData.SaveRates(Rates); return(true); } async Task <bool> LoadUserAssets() { var userAssets = await userAssetsService.Get(secureStorage.GetUserId().Value); if (userAssets == null) { online = false; return(false); } UserAssets = userAssets.Select(a => new UserAsset { AssetId = a.AssetId, Balance = a.Balance, CurrentReceiveAddress = a.CurrentReceiveAddress, Favorited = a.Favorited }).ToArray(); await userData.SaveUserAssets(UserAssets); return(true); } async Task <bool> LoadCards() { var cards = await userCardsService.Get(secureStorage.GetUserId().Value); if (cards == null) { online = false; return(false); } Cards = cards.Select(c => new Card(c.Id, c.Name, c.CardNumberHint, (CardState)(int)c.State, c.Balance, c.BalanceCurrency)).ToArray(); // if cards changed await cardData.SaveCards(Cards); return(true); } async Task <Boolean> LoadBucketAmount() { var bucketAmount = (await bucketService.GetBalance(secureStorage.GetUserId().Value)); if (bucketAmount == null) { online = false; return(false); } BucketAmount = bucketAmount.Amount; await bucketData.SaveBucketInfo(new BucketInfo { Amount = BucketAmount }); return(true); } lock (_lock) { if (online) { return(false); } online = true; } try { if (!await LoadRates()) { return(false); } if (!await LoadCards()) { return(false); } if (!await LoadBucketAmount()) { return(false); } if (!await LoadUserAssets()) { return(false); } return(true); } catch { online = false; throw; } }