コード例 #1
0
ファイル: EventService.cs プロジェクト: mor-ph/lavina
        public async Task <IEnumerable <EventsForListViewModel> > GetAllEvents(EventsQueryParameters parameters)
        {
            List <Event> events;

            if (AreAllNullOrEmpty(parameters) == false)
            {
                events = await _dbContext.Events
                         .Include(e => e.City)
                         .Include(e => e.Category)
                         .ToListAsync();

                if (parameters.Category != null)
                {
                    var category = _dbContext.Categories.FirstOrDefault(c => c.Name == parameters.Category);
                    events = events.Where(e => e.Category.Id == category.Id || e.Category.ParentCategoryId == category.Id).ToList();
                }
                if (parameters.SubCategory != null)
                {
                    events = events.Where(e => e.Category.Name == parameters.SubCategory).ToList();
                }
                if (parameters.Location != null)
                {
                    events = events.Where(e => e.City.Name == parameters.Location).ToList();
                }
                if (parameters.Date != null)
                {
                    events = events.Where(e => e.EventStartDate.Date == parameters.Date.Value.Date).ToList();
                }
                if (parameters.sortOrder != null)
                {
                    if (parameters.sortOrder == "start_date")
                    {
                        events = events.OrderBy(e => e.EventStartDate).ToList();
                    }

                    if (parameters.sortOrder == "created_date")
                    {
                        events = events.OrderByDescending(e => e.CreatedOn).ToList();
                    }
                }
            }
            else
            {
                events = await _dbContext.Events
                         .Include(e => e.City)
                         .Include(e => e.User)
                         .Include(e => e.Category)
                         .Include(e => e.Userevent)
                         .OrderByDescending(x => x.CreatedOn)
                         .Take(48)
                         .AsNoTracking()
                         .ToListAsync();
            }
            var eventsToReturn = _mapper.Map <List <EventsForListViewModel> >(events);

            return(eventsToReturn);
        }
コード例 #2
0
 public Task <MarvelResponse <Event> > GetEvents(CancellationToken token, EventsQueryParameters parameters = null) =>
 ExecuteApiCall <MarvelResponse <Event> >(() => _api.GetEvents(parameters, token));
コード例 #3
0
 public Task <string> GetEventsJson(CancellationToken token, EventsQueryParameters parameters = null) =>
 ExecuteApiJson(() => _api.GetEvents(parameters, token));
コード例 #4
0
ファイル: EventController.cs プロジェクト: mor-ph/lavina
        public async Task <IActionResult> GetAll([FromQuery] EventsQueryParameters eventsQueryParameters)
        {
            var events = await _eventService.GetAllEvents(eventsQueryParameters);

            return(Ok(events));
        }