コード例 #1
0
        /// <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));
        }
コード例 #2
0
        /// <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));
        }