public IActionResult Index() { var user = _sysUserService.Queryable().FirstOrDefault(x => x.Id == HttpContext.Session.GetObjectFromJson <SysUserViewModel>("CurrentUser").Id&& x.IsDeleted == false); var viewModel = Mapper.Map <ProfileViewModel>(user); viewModel.NumberOfGameHistories = _lotteryHistoryService.Queryable().Count(x => x.SysUserId == viewModel.Id && x.Result != EnumGameResult.REFUND.ToString()); viewModel.NumberOfTransactions = _coinTransactionService.Queryable().Count(x => x.SysUserId == viewModel.Id); // Mapping KYC status if (!user.KYCVerified.HasValue) { viewModel.KYCStatus = LangDetailHelper.Get(HttpContext.Session.GetInt32("LangId").Value, "NotVerifiedYet"); } else if (user.KYCVerified == true) { viewModel.KYCStatus = LangDetailHelper.Get(HttpContext.Session.GetInt32("LangId").Value, "Verified"); } else // viewModel.KYCVerified == false { viewModel.KYCStatus = LangDetailHelper.Get(HttpContext.Session.GetInt32("LangId").Value, "Pending"); } // Mapping Affiliate status if (!user.AffiliateId.HasValue) { viewModel.AffiliateStatus = LangDetailHelper.Get(HttpContext.Session.GetInt32("LangId").Value, "NotJoinedYet"); } else if (user.AffiliateId.Value != (int)EnumAffiliateApplicationStatus.PENDING) { viewModel.AffiliateStatus = LangDetailHelper.Get(HttpContext.Session.GetInt32("LangId").Value, "Approved"); } else // viewModel.AffiliateId.Value != (int)EnumAffiliateApplicationStatus.PENDING { viewModel.AffiliateStatus = LangDetailHelper.Get(HttpContext.Session.GetInt32("LangId").Value, "Pending"); } // Mapping TwoFactorAuthenticationEnable status if (user.TwoFactorAuthenticationEnable) { viewModel.TwoFactorAuthenticationEnableStatus = LangDetailHelper.Get(HttpContext.Session.GetInt32("LangId").Value, "IsEnabled"); } else // viewModel.TwoFactorAuthenticationEnable == false { viewModel.TwoFactorAuthenticationEnableStatus = LangDetailHelper.Get(HttpContext.Session.GetInt32("LangId").Value, "IsNotEnabled"); } return(View(viewModel)); }
public IList <CoinTransactionViewModel> SearchTransactionHistoryFunc(DataTableAjaxPostModel model, out int filteredResultsCount, out int totalResultsCount, int?sysUserId, int?currencyId) { var user = _sysUserService.Queryable().FirstOrDefault(x => x.Id == (sysUserId ?? HttpContext.Session.GetObjectFromJson <SysUserViewModel>("CurrentUser").Id)); var searchBy = (model.search != null) ? model.search.value?.ToLower() : null; var take = model.length; var skip = model.start; string sortBy = ""; bool sortDir = true; if (model.order != null) { // in this example we just default sort on the 1st column sortBy = model.columns[model.order[0].column].data; sortDir = model.order[0].dir.ToLower() == "desc"; } // NULLABLE INT CANNOT BE USED IN LINQ, SO VALUE CAST IS A MUST var _currencyId = 0; if (currencyId.HasValue) { _currencyId = currencyId.Value; } totalResultsCount = _coinTransactionService .Queryable() .Where(x => x.SysUserId == user.Id && (_currencyId == 0 ? true : x.CurrencyId == _currencyId)) .Count(); // search the dbase taking into consideration table sorting and paging var transactionHistory = _coinTransactionService .Query() .Include(x => x.Currency) .Where(x => x.SysUserId == user.Id && (_currencyId == 0 ? true : x.CurrencyId == _currencyId)) .Select(x => Mapper.Map <CoinTransactionViewModel>(x)); if (string.IsNullOrEmpty(searchBy)) { filteredResultsCount = totalResultsCount; } else { transactionHistory = transactionHistory .Where(x => x.CreatedDateInString.ToLower().Contains(searchBy) || x.ToWalletAddress.ToLower().Contains(searchBy) || x.CoinAmountInString.ToLower().Contains(searchBy) || x.TypeInString.ToLower().Contains(searchBy) || x.CurrencyInString.ToLower().Contains(searchBy) || x.StatusInEnum.ToString().ToLower().Contains(searchBy)); filteredResultsCount = transactionHistory.Count(); } return(transactionHistory.AsQueryable().OrderBy(sortBy, sortDir).Skip(skip).Take(take).ToList()); }