예제 #1
0
        public async Task <Result <PagedList <EventDto> > > List(FilterEventQueryDto filterQueryDto)
        {
            var events = await WhereAsyncAsNoTracking(e =>
                                                      (string.IsNullOrEmpty(filterQueryDto.Keyword) ||
                                                       (string.IsNullOrEmpty(e.Name) || e.Name.ToLower().Contains(filterQueryDto.Keyword)) ||
                                                       (string.IsNullOrEmpty(e.Host.Name) || e.Host.Name.ToLower().Contains(filterQueryDto.Keyword))
                                                      ) && !e.IsDeleted,
                                                      filterQueryDto, e => e.Category, e => e.Comment,
                                                      e => e.Host, e => e.UserInEvents.Select(ur => ur.User), e => e.EventGallery.Select(rg => rg.User),
                                                      e => e.EventSchedule);

            if (events.Items.Any())
            {
                events.Items.ForEach(eventDetail =>
                {
                    if (eventDetail.Comment != null)
                    {
                        eventDetail.Comment = eventDetail.Comment.Where(c => c.IsConfirmed && !c.IsDeleted)
                                              .OrderBy(c => c.ModifiedDateTime).ToList();
                    }
                });
            }

            return(Result <PagedList <EventDto> > .SuccessFull(events.MapTo <EventDto>(_mapper)));
        }
        public async Task <IActionResult> List([FromQuery] FilterEventQueryDto filterQueryDto)
        {
            var result = await _unitOfWork.EventService.List(filterQueryDto);

            if (filterQueryDto.Page == null && filterQueryDto.Limit == null)
            {
                return(Ok(result.Data.Items));
            }
            return(result.ApiResult);
        }