/// <inheritdoc /> public async Task <PagedList <Picture> > GetAll(PictureParameters parameters = null) { var pictures = this.GetQueryable(); if (parameters != null) { switch (parameters.Container) { case PictureContainer.Approved: pictures = pictures .Where(p => p.IsApproved.Value); break; case PictureContainer.Unapproved: pictures = pictures .Where(p => p.IsApproved.Value == false); break; case PictureContainer.Everything: break; default: throw new ArgumentOutOfRangeException(nameof(parameters.Container), parameters.Container, null); } if (string.IsNullOrWhiteSpace(parameters.OrderBy) == false) { if (parameters.OrderBy == nameof(Picture.CreatedAt).ToLowerCamelCase()) { pictures = pictures.OrderByDescending(p => p.CreatedAt); } else { throw new ArgumentOutOfRangeException(nameof(parameters.OrderBy), parameters.OrderBy, null); } } } else { parameters = new PictureParameters(); } return(await PagedList <Picture> .CreateAsync(pictures, parameters.PageNumber, parameters.PageSize)); }
/// <inheritdoc /> public async Task <PagedList <Picture> > GetByUser(Guid userID, PictureParameters parameters) { var pictures = this.GetQueryableByUser(userID); return(await PagedList <Picture> .CreateAsync(pictures, parameters.PageNumber, parameters.PageSize)); }