public override void LoadAsyncData() { _allCoinRequestService = new CryptoRequestService(); CurrentRequestPropertyType = RequestPropertyType.USDPrice; CurrentRequestFilterType = RequestFilterType.Maximum; }
public async Task FilterCoins(CryptoRequestService requestParameters) { try { FilteredCoinList = new ObservableCollection <BasicCryptoModel>(await _coinMarketCapService.GetFilteredCoins(requestParameters)); FilterMenuVisibility = false; } catch (CryptoServiceException ex) { RaiseErrorOccured(ex.Message); } }
public void OnConditionMet(CryptoRequestParameters condition, CryptoDataModel model) { var service = new CryptoRequestService(); service.AddFilter(condition); var conditionString = service.GetFilters().Single(); if (ConditionMet == null) { return; } ConditionMet(this, new ConditionMetEventArgs(model.Data.Symbol, conditionString)); }
public async Task <List <BasicCryptoModel> > GetFilteredCoins(CryptoRequestService requestParameters) { try { IEnumerable <BasicCryptoModel> cryptoList = await GetAllCoins().ConfigureAwait(false); var filterStrings = requestParameters.GetFilters(); foreach (var filter in filterStrings) { cryptoList = cryptoList.Where(filter); } return(cryptoList.ToList()); } catch (Exception) { throw new CryptoServiceException("Download failed, service may be down or you do not have a stable internet connection"); } }
private void OnAddFilter() { var filter = new CryptoRequestParameters { Property = _currentRequestProperty, Type = CurrentRequestFilterType, Value = CurrentRequestValue }; var filterString = CryptoRequestService.ParseParameter(filter); try { FilterDictionary.Add(filterString, filter); FilterStrings.Add(filterString); AddCryptoToTrackerCommand.RaiseCanExecuteChanged(); } catch (ArgumentException) { return; } }
public ApplyFiltersEventArgs(CryptoRequestService request) { Request = request; }