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));
        }
Exemple #2
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));