//[AbpAuthorize(AppPermissions.Pages_Administration)] public async Task <PagedResultDto <CurrencyDto> > GetAvailableCurrencies(GetCurrenciesInput input) { var currencyType = ParametersToEnum(input.Parameters); var queryable = _currenciesRepository.GetAll(); if (currencyType != CurrencyType.None) { queryable = queryable.Where(c => c.IsCrypto == (currencyType == CurrencyType.Crypto)); } queryable = queryable.WhereIf(!input.Filter.IsNullOrWhiteSpace(), с => с.Name.Contains(input.Filter) || с.Code.Contains(input.Filter)); var currenciesCount = await queryable.CountAsync(); var currencies = await queryable.OrderBy(input.Sorting).PageBy(input).ToListAsync(); return(new PagedResultDto <CurrencyDto>(currenciesCount, ObjectMapper.Map <List <CurrencyDto> >(currencies))); }
//[AbpAuthorize(AppPermissions.Pages_Administration)] public async Task <PagedResultDto <SupportedCurrencyDto> > GetSupportedCurrencies(GetCurrenciesInput input) { //temp need remove var usdCurrency = await _currenciesRepository.FirstOrDefaultAsync(c => c.Code.Equals("USD")); var supportedCurrency = await _supportedCurrenciesRepository.FirstOrDefaultAsync(c => c.CurrencyId.Equals(usdCurrency.Id)); if (supportedCurrency == null) { supportedCurrency = new SupportedCurrency { CreationTime = DateTime.Now.ToUniversalTime(), CurrencyId = usdCurrency.Id, TenantId = AbpSession.TenantId, }; await _supportedCurrenciesRepository.InsertAsync(supportedCurrency); var exchangeRate = await _exchangeRatesRepository.FirstOrDefaultAsync(er => er.CurrencyId.Equals(supportedCurrency.CurrencyId)); if (exchangeRate == null) { exchangeRate = new ExchangeRate { CurrencyId = usdCurrency.Id }; exchangeRate.CreationTime = DateTime.Now.ToUniversalTime(); exchangeRate.Price = 0.25M; exchangeRate.IsAutomaticUpdate = true; exchangeRate.UpdatedBy = null; await _exchangeRatesRepository.InsertAndGetIdAsync(exchangeRate); } } //// var currencyType = ParametersToEnum(input.Parameters); var supportedCurrenciesQueryable = _supportedCurrenciesRepository.GetAll(); var currenciesQueryable = _currenciesRepository.GetAll(); var queryable = supportedCurrenciesQueryable.Join(currenciesQueryable, sc => sc.CurrencyId, c => c.Id, (sc, c) => new { SupportCurrency = sc, Currency = c }); if (currencyType != CurrencyType.None) { queryable = queryable.Where(o => o.Currency.IsCrypto == (currencyType == CurrencyType.Crypto)); } queryable = queryable.WhereIf(!input.Filter.IsNullOrWhiteSpace(), o => o.Currency.Name.Contains(input.Filter) || o.Currency.Code.Contains(input.Filter)); var currencyShortQueryable = queryable.Select(o => new SupportedCurrencyDto(o.Currency.Id, o.Currency.Name, o.Currency.Code, o.Currency.ImageUrl, o.SupportCurrency.WalletId, o.SupportCurrency.WiredInstruction, o.SupportCurrency.SortOrder)); var currenciesCount = await currencyShortQueryable.CountAsync(); var currencies = await currencyShortQueryable.OrderBy(input.Sorting).PageBy(input).ToListAsync(); return(new PagedResultDto <SupportedCurrencyDto>(currenciesCount, currencies)); }