public async Task <IPagedResult <Photo> > FindPaged( PhotoQueryParameters parameters) { if (!parameters.Skip.HasValue || !parameters.Take.HasValue) { parameters.Skip = 0; parameters.Take = 10; } var results = Find(parameters); var list = await results.ToList(); return(list.AsPaged( parameters.Skip.Value, parameters.Take.Value, 0)); }
public PhotoFilterSpecification( PhotoQueryParameters queryParameters) : base( x => (!queryParameters.Caption.HasValue() || x.Caption.IndexOf( queryParameters.Caption, StringComparison.CurrentCultureIgnoreCase) != -1) && (!queryParameters.FileName.HasValue() || x.FileName.IndexOf( queryParameters.FileName, StringComparison.CurrentCultureIgnoreCase) != -1) && (!queryParameters.DateTaken.HasValue || (x.DateTaken.HasValue && x.DateTaken.Value.Day == queryParameters.DateTaken.Value.Day && x.DateTaken.Value.Month == queryParameters.DateTaken.Value.Month && x.DateTaken.Value.Year == queryParameters.DateTaken.Value.Year))) { }
public IAsyncEnumerable <Photo> Find(PhotoQueryParameters parameters) => Repository.FindBySpecAsync( new PhotoFilterSpecification(parameters));