Exemplo n.º 1
0
        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);
            }
Exemplo n.º 2
0
        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));
            }
        }