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)); }