public async Task <IEnumerable <EventListItemDto> > GetEventsFilteredAsync(EventsListingFilterArgs args, UserAndOrganizationDto userOrganization) { var officeSearchString = OfficeIdToString(args.OfficeId); var query = _eventsDbSet .Include(x => x.EventParticipants) .Include(x => x.EventType) .Where(e => e.OrganizationId == userOrganization.OrganizationId) .Where(EventTypeFilter(args.TypeId, args.IsOnlyMainEvents)) .Where(EventOfficeFilter(officeSearchString)); if (args.StartDate is null || args.EndDate is null) { query = query.Where(e => e.EndDate > DateTime.UtcNow); }
public async Task <IHttpActionResult> GetEventsFiltered(string typeId = null, string officeId = null, int page = 1, DateTime?startDate = null, DateTime?endDate = null) { var args = new EventsListingFilterArgs { StartDate = startDate, EndDate = endDate, IsOnlyMainEvents = typeId == "main", Page = page }; if (int.TryParse(typeId, out var typeIdParsed)) { args.TypeId = typeIdParsed; } if (int.TryParse(officeId, out var officeIdParsed)) { args.OfficeId = officeIdParsed; } var userOrganization = GetUserAndOrganization(); try { var eventsListDto = await _eventListingService.GetEventsFilteredAsync(args, userOrganization); var result = _mapper.Map <IEnumerable <EventListItemDto>, IEnumerable <EventListItemViewModel> >(eventsListDto); return(Ok(result)); } catch (EventException e) { return(BadRequest(e.Message)); } }