public async Task <IActionResult> GetAvailableAssets() { var assetsIds = await _assetsService.ClientGetAssetIdsAsync(_requestContext.ClientId, true); if (assetsIds == null) { return(NotFound()); } return(Ok(AssetIdsResponse.Create(assetsIds))); }
public async Task <IEnumerable <Asset> > GetAssetsAvailableToClientAsync( string clientId, string partnerId, bool?tradable = default(bool?)) { var allAssets = await GetAllAssetsAsync(); var relevantAssets = allAssets.Where(x => !x.IsDisabled && (!tradable.HasValue || x.IsTradable == tradable)); var assetsAvailableToUser = new HashSet <string>(await _assetsService.ClientGetAssetIdsAsync(clientId, true)); return(relevantAssets.Where(x => assetsAvailableToUser.Contains(x.Id) && (x.NotLykkeAsset ? partnerId != null && x.PartnerIds.Contains(partnerId) : partnerId == null || x.PartnerIds.Contains(partnerId)))); }
public async Task <Asset[]> GetAssetsForClient(string clientId, bool isIosDevice, string partnerId = null) { var result = await _cachedAssetsDictionary.Values(); result = result.Where(x => !x.IsDisabled); if (partnerId != null) { return(result.Where(x => x.PartnerIds != null && x.PartnerIds.Contains(partnerId)).ToArray()); } var assetIdsForClient = await _assetsService.ClientGetAssetIdsAsync(clientId, isIosDevice); if (assetIdsForClient.Any()) { result = result.Where(x => assetIdsForClient.Contains(x.Id)); } return(result.Where(x => !x.NotLykkeAsset).ToArray()); }