public PublisherWithFiltersForCountSpecification(PublisherSpecParams publisherParams)
     : base(x =>
            (string.IsNullOrEmpty(publisherParams.Search) ||
             x.FirstName.ToLower().Contains(publisherParams.Search) ||
             x.LastName.ToLower().Contains(publisherParams.Search)) &&
            // (!publisherParams.TitleId.HasValue ||
            //  x.PublisherTitles.FirstOrDefault(pt => pt.AppointedId == publisherParams.TitleId).AppointedId ==
            //  publisherParams.TitleId) &&
            (!publisherParams.GroupId.HasValue || x.GroupId == publisherParams.GroupId) &&
            (!publisherParams.StatusId.HasValue || x.StatusId == publisherParams.StatusId)
            )
 {
 }
Exemplo n.º 2
0
        public PublisherWithGroupTitleStatusReport(PublisherSpecParams publisherParams)
            : base(x =>
                   (string.IsNullOrEmpty(publisherParams.Search) ||
                    x.FirstName.ToLower().Contains(publisherParams.Search) ||
                    x.LastName.ToLower().Contains(publisherParams.Search)) &&
                   // (!publisherParams.TitleId.HasValue ||
                   //  x.PublisherTitles.FirstOrDefault(pt => pt.AppointedId == publisherParams.TitleId).AppointedId ==
                   //  publisherParams.TitleId) &&
                   (!publisherParams.GroupId.HasValue || x.GroupId == publisherParams.GroupId) &&
                   (!publisherParams.StatusId.HasValue || x.StatusId == publisherParams.StatusId)
                   )
        {
            //AddInclude("PublisherTitles.Title");
            AddInclude(x => x.Group);
            AddInclude(x => x.Reports);
            AddOrderBy(x => x.LastName);
            ApplyPaging(publisherParams.PageSize * (publisherParams.PageIndex - 1),
                        publisherParams.PageSize);

            if (string.IsNullOrEmpty(publisherParams.Sort))
            {
                return;
            }

            switch (publisherParams.Sort)
            {
            case "lastNameAsc":
                AddOrderBy(n => n.LastName);
                break;

            case "lastNameDesc":
                AddOrderByDescending(n => n.LastName);
                break;

            case "groupAsc":
                AddOrderBy(g => g.Group.Name);
                break;

            case "groupDesc":
                AddOrderByDescending(g => g.Group.Name);
                break;

            default:
                AddOrderBy(n => n.LastName);
                break;
            }
        }