public LiveTvBroadCAstWithFilterForCaountAsyncSpecification(LiveTvBroadCastParams queryParams)
            : base(x =>
                   (
                       string.IsNullOrEmpty(queryParams.Search) ||
                       x.Header.ToLower().Contains(queryParams.Search) ||
                       x.ContentType.ToLower().Contains(queryParams.Search) ||
                       x.User.FirstName.ToLower().Contains(queryParams.Search) ||
                       x.User.LastName.ToLower().Contains(queryParams.Search)

                   ) &&
                   (!queryParams.ScreenId.HasValue || x.LiveTvBroadCastSubScreens.Any(y => y.ScreenId == queryParams.ScreenId)) &&
                   (!queryParams.SubScreenId.HasValue || x.LiveTvBroadCastSubScreens.Any(y => y.Id == queryParams.SubScreenId)) &&
                   (!queryParams.Reject.HasValue || x.Reject == queryParams.Reject) &&
                   (!queryParams.IsNew.HasValue || x.IsNew == queryParams.IsNew) &&
                   (!queryParams.IsPublish.HasValue || x.IsPublish == queryParams.IsPublish)
                   )
        {
        }
Beispiel #2
0
        public LiveTvBroadCastWithPagingSpecification(LiveTvBroadCastParams queryParams)
            : base(x =>
                   (
                       string.IsNullOrEmpty(queryParams.Search) ||
                       x.Header.ToLower().Contains(queryParams.Search) ||
                       x.ContentType.ToLower().Contains(queryParams.Search) ||
                       x.User.FirstName.ToLower().Contains(queryParams.Search) ||
                       x.User.LastName.ToLower().Contains(queryParams.Search)

                   ) &&
                   (!queryParams.ScreenId.HasValue || x.LiveTvBroadCastSubScreens.Any(y => y.ScreenId == queryParams.ScreenId)) &&
                   (!queryParams.SubScreenId.HasValue || x.LiveTvBroadCastSubScreens.Any(y => y.SubScreenId == queryParams.SubScreenId)) &&
                   (!queryParams.Reject.HasValue || x.Reject == queryParams.Reject) &&
                   (!queryParams.IsNew.HasValue || x.IsNew == queryParams.IsNew) &&
                   (!queryParams.IsPublish.HasValue || x.IsPublish == queryParams.IsPublish)
                   )
        {
            AddInclude(x => x.User);
            AddOrderByDscending(x => x.IsNew);
            ApplyPaging(queryParams.PageSize * (queryParams.PageIndex - 1), queryParams.PageSize);
        }
        public async Task <Pagination <LiveTvBroadCastForReturnDto> > GetListAsync(LiveTvBroadCastParams queryParams)
        {
            var spec         = new LiveTvBroadCastWithPagingSpecification(queryParams);
            var listFromRepo = await liveTvBrodcastDal.ListEntityWithSpecAsync(spec);

            var countSpec = new LiveTvBroadCAstWithFilterForCaountAsyncSpecification(queryParams);
            var totalItem = await liveTvBrodcastDal.CountAsync(countSpec);

            if (listFromRepo == null)
            {
                throw new RestException(HttpStatusCode.BadRequest, new { NotFound = Messages.HomeAnnounceEmpty });
            }

            var data = mapper.Map <List <LiveTvBroadCast>, List <LiveTvBroadCastForReturnDto> >(listFromRepo);

            return(new Pagination <LiveTvBroadCastForReturnDto>
                   (
                       queryParams.PageIndex,
                       queryParams.PageSize,
                       totalItem,
                       data
                   ));
        }
 public async Task <ActionResult <Pagination <LiveTvBroadCastForReturnDto> > > List([FromQuery] LiveTvBroadCastParams queryParams)
 {
     return(await liveTvBroadCastService.GetListAsync(queryParams));
 }