Esempio n. 1
0
        public async Task <IActionResult> GetAvailableMethods()
        {
            var assets = (await _assetsHelper.GetAssetsAvailableToClientAsync(_requestContext.ClientId, _requestContext.PartnerId)).ToList();

            var cryptos = new WithdrawalMethod
            {
                Name   = "Cryptos",
                Assets = assets
                         .Where(x => x.BlockchainWithdrawal)
                         .Select(x => x.Id)
                         .ToList()
            };

            var swift = new WithdrawalMethod
            {
                Name   = "Swift",
                Assets = assets
                         .Where(x => x.SwiftWithdrawal)
                         .Select(x => x.Id)
                         .ToList()
            };

            var model = new WithdrawalMethodsResponse
            {
                WithdrawalMethods = new List <WithdrawalMethod>
                {
                    cryptos,
                    swift
                }
            };

            return(Ok(model));
        }
Esempio n. 2
0
        public async Task <IActionResult> GetAvailableMethods()
        {
            var model = new WithdrawalMethodsResponse();

            try
            {
                var assetsTask =
                    _assetsHelper.GetAssetsAvailableToClientAsync(_requestContext.ClientId, _requestContext.PartnerId);
                var pdTask = _personalDataService.GetAsync(_requestContext.ClientId);

                await Task.WhenAll(assetsTask, pdTask);

                var assets = assetsTask.Result.ToList();
                var pd     = pdTask.Result;

                var cryptos = new WithdrawalMethod
                {
                    Name   = "Cryptos",
                    Assets = assets
                             .Where(x => x.BlockchainWithdrawal)
                             .Select(x => x.Id)
                             .ToList()
                };

                var swift = new WithdrawalMethod
                {
                    Name   = "Swift",
                    Assets = assets
                             .Where(x => x.SwiftWithdrawal && (!_blockedWithdawalSettings.AssetByCountry.ContainsKey(x.Id) ||
                                                               !_blockedWithdawalSettings.AssetByCountry[x.Id]
                                                               .Contains(pd.CountryFromPOA,
                                                                         StringComparer.InvariantCultureIgnoreCase)))
                             .Select(x => x.Id)
                             .ToList()
                };

                model.WithdrawalMethods = new List <WithdrawalMethod> {
                    cryptos, swift
                };
            }
            catch (Exception ex)
            {
                _log.Error(ex, "Error getting available methods", context: $"clientId: {_requestContext.ClientId}, partnerId: {_requestContext.PartnerId}");
                model.WithdrawalMethods = new List <WithdrawalMethod>
                {
                    new WithdrawalMethod
                    {
                        Name   = "Cryptos",
                        Assets = Array.Empty <string>()
                    },
                    new WithdrawalMethod
                    {
                        Name   = "Swift",
                        Assets = Array.Empty <string>()
                    }
                };
            }

            return(Ok(model));
        }