private IMongoQueryable <DailyCurrency> СollectQuery(IMongoQueryable <DailyCurrency> query, DailyCurrencyFilter filter) { if (filter is null) { return(query); } if (filter.DateFrom.HasValue) { query = query.Where(s => s.Date >= filter.DateFrom); } if (filter.DateTo.HasValue) { query = query.Where(s => s.Date <= filter.DateTo); } if (!string.IsNullOrEmpty(filter.CurrencyName)) { query = query.Where(s => s.Carrency != null && s.Carrency.Name == filter.CurrencyName); } if (!string.IsNullOrEmpty(filter.CurrencyCharCode)) { query = query.Where(s => s.Carrency != null && s.Carrency.CharCode == filter.CurrencyCharCode); } if (filter.Skip.HasValue) { query = query.Skip(filter.Skip.Value); } if (filter.Take.HasValue) { query = query.Take(filter.Take.Value); } return(query); }
public Task <DailyCurrency> GetLowest(DailyCurrencyFilter filter) { var query = СollectQuery(_dailyCurrencies.AsQueryable(), filter); return(query.OrderBy(s => s.Value).FirstOrDefaultAsync()); }
public Task <DailyCurrency> GetLowest(DailyCurrencyFilter filter) => _dailyCurrencyService.GetLowest(filter);
public Task <List <DailyCurrency> > Get(DailyCurrencyFilter filter) { var query = СollectQuery(_dailyCurrencies.AsQueryable(), filter); return(query.ToListAsync()); }
public Task <List <DailyCurrency> > GetCurrencies(DailyCurrencyFilter filter) => _dailyCurrencyService.Get(filter);