Exemple #1
0
        public async Task <IActionResult> Kyc()
        {
            var user = await GetUser(required : true);

            // get kyc request url and check the status
            string kycRequestUrl    = null;
            string kycRequestStatus = null;
            var    kycRequest       = _context.KycRequests.Where(r => r.ApplicationUserId == user.Id).OrderByDescending(r => r.Date).FirstOrDefault();

            if (kycRequest != null)
            {
                kycRequestUrl = $"{_kycSettings.KycServerUrl}/request/{kycRequest.Token}";
                var _model = await RestUtils.CheckKycRequest(_logger, _context, _userManager, _kycSettings, user.Id, kycRequest.Token);

                if (_model != null)
                {
                    kycRequestStatus = _model.Status;
                }
            }
            // get users kyc level
            var      levelNum = user.Kyc != null ? user.Kyc.Level : 0;
            KycLevel level    = null;

            if (_kycSettings.Levels.Count > levelNum)
            {
                level = _kycSettings.Levels[levelNum];
            }
            var withdrawalTotalThisPeriod = user.WithdrawalTotalThisPeriod(_kycSettings);
            // convert withdrawal amount to string
            var withdrawalTotalThisPeriodString = _walletProvider.AmountToString(_kycSettings.WithdrawalAsset, withdrawalTotalThisPeriod);

            if (withdrawalTotalThisPeriodString == null)
            {
                withdrawalTotalThisPeriodString = withdrawalTotalThisPeriod.ToString();
            }

            var model = new KycViewModel
            {
                User     = user,
                LevelNum = levelNum,
                Level    = level,
                WithdrawalTotalThisPeriod = withdrawalTotalThisPeriodString,
                KycSettings      = _kycSettings,
                KycRequestUrl    = kycRequestUrl,
                KycRequestStatus = kycRequestStatus,
            };

            return(View(model));
        }
        public IActionResult UserInspect(string id)
        {
            var user        = GetUser(required: true).Result;
            var userInspect = _userManager.FindByIdAsync(id).Result;
            //TODO: move this to a ViaRpcProvider in /Services (like IWalletProvider)
            var via      = new ViaJsonRpc(_settings.AccessHttpUrl);
            var balances = Utils.GetUsedBalances(_settings, via, userInspect.Exchange);

            // get kyc level
            var      level    = userInspect.Kyc != null ? userInspect.Kyc.Level : 0;
            KycLevel kycLevel = null;

            if (level < _kycSettings.Levels.Count())
            {
                kycLevel = _kycSettings.Levels[level];
            }
            // get user kyc request
            string kycRequestUrl = null;
            var    kycRequest    = _context.KycRequests.Where(r => r.ApplicationUserId == userInspect.Id).OrderByDescending(r => r.Date).FirstOrDefault();

            if (kycRequest != null)
            {
                kycRequestUrl = $"{_kycSettings.KycServerUrl}/request/{kycRequest.Token}";
            }

            var model = new UserViewModel
            {
                User        = user,
                UserInspect = userInspect,
                Balances    = new BalancesPartialViewModel {
                    Balances = balances
                },
                KycLevel      = kycLevel,
                KycRequestUrl = kycRequestUrl,
                AssetSettings = _settings.Assets,
            };

            return(View(model));
        }