public async Task <ViewResult> Search(EventSearchViewModel model) { var events = repository.Search(model); var paginatedList = await PaginatedList <Occasion> .CreateAsync(events, 1, 5); return(View("List", paginatedList)); }
public async Task <IActionResult> SearchEvents([FromForm] EventSearchViewModel modelFromForm) { EventSearchResult events = await _searchRequest.Search(modelFromForm.Location, modelFromForm.Keyword); modelFromForm.SearchResults = events; return(PartialView("_ShowEvents", modelFromForm)); }
public static EventSearchDto ToDto(this EventSearchViewModel source) { return(new EventSearchDto { PageNumber = source.PageNumber, PageSize = source.PageSize, Title = source.Title }); }
public IQueryable <Occasion> Search(EventSearchViewModel model) { var query = "SELECT * FROM dbo.Occasions WHERE "; if (model.EventType != null) { query += "EventType = @p0 AND "; } if (model.Days != null) { query += "DAY([Date]) < @p1 AND "; } query += "1 = 1"; return(applicationContext.Occasions.FromSql(query, model.EventType, model.Days)); }
public IActionResult Index(EventSearchViewModel searchModel) { var data = _adminService.GetEvent(searchModel.ToDto()); List <SelectListItem> pageSizeSelector = new List <SelectListItem>(); pageSizeSelector.Add(new SelectListItem("10", "10", searchModel.PageSize == 10)); pageSizeSelector.Add(new SelectListItem("20", "20", searchModel.PageSize == 20)); pageSizeSelector.Add(new SelectListItem("30", "30", searchModel.PageSize == 30)); pageSizeSelector.Add(new SelectListItem("40", "40", searchModel.PageSize == 40)); pageSizeSelector.Add(new SelectListItem("50", "50", searchModel.PageSize == 50)); ViewBag.PageSizeSelector = pageSizeSelector; return(View(new SearchModel <EventSearchViewModel, PaginationViewModel <EventViewModel> >(searchModel, data.ToVewModel()))); }
public EventSearchViewModel Search(string title, string startDate, string endDate, int?currentPage = null, int?resultsPerPage = null, VersionOptions options = null, string categoryIdsCsv = null) { IEnumerable <EventPart> query; DateTime?nullableStartDate = null; if (!string.IsNullOrWhiteSpace(startDate)) { nullableStartDate = Convert.ToDateTime(startDate); } if (!string.IsNullOrWhiteSpace(categoryIdsCsv)) { string[] ids = categoryIdsCsv.Split(','); query = GetEventsForCategoryIds(ids, nullableStartDate); } else { query = _contentManager .Query <EventPart>(options ?? VersionOptions.Latest) .Join <IdentityPartRecord>() .Join <EventPartRecord>() .List <EventPart>(); //Already filtering by startdate above, so only including it if no category ids where sent in if (nullableStartDate != null) { query = query.Where(x => x.StartDate >= nullableStartDate.Value); } } if (!string.IsNullOrWhiteSpace(endDate)) { query = query.Where(x => x.EndDate <= Convert.ToDateTime(endDate)); } if (!string.IsNullOrWhiteSpace(title) && title.Length > 1) { query = query.Where(x => x.Title.ToLower().Contains(title.ToLower())) .OrderBy(x => x.Title); } else { query = query.OrderBy(x => x.StartDate); } var take = resultsPerPage ?? 20; var skip = Convert.ToInt32(currentPage != null ? (currentPage - 1) * take : 0); var allEvents = query.ToList(); IEnumerable <EventPart> events = allEvents.Skip(skip).Take(take).ToList(); //foreach (var eventPart in events) //{ // var autoroute = eventPart.ContentItem.As<AutoroutePart>(); // if (string.IsNullOrWhiteSpace(eventPart.Url) && autoroute != null) // { // eventPart.Url = _siteService.GetSiteSettings().BaseUrl + "/" + autoroute.Path; // } //} var paginated = events.Select(SchedulerEventViewModelFromEvent).ToList(); var baseUrl = _siteService.GetSiteSettings().BaseUrl; foreach (var i in paginated) { if (string.IsNullOrWhiteSpace(i.Url)) { var eventPart = events.SingleOrDefault(x => x.Id == i.Id); if (eventPart != null) { var autoroute = eventPart.ContentItem.As <AutoroutePart>(); if (autoroute != null) { i.Permalink = baseUrl + "/" + autoroute.Path; i.Url = i.Permalink; } } } } var viewModel = new EventSearchViewModel { CurrentPage = currentPage.HasValue ? currentPage.Value : 1, NumberofPages = allEvents.Count() / (take), ResultsPerPage = resultsPerPage ?? 20, SearchResults = paginated, TotalItems = allEvents.Count() }; return(viewModel); }
public EventSearchViewModel SearchEvents(string searchText, string CheckEl, DateTime from, DateTime to) { using (GoodTasteContext context = new GoodTasteContext()) { try { EventSearchViewModel result = new EventSearchViewModel(); List <RestaurantEvent> EventList = new List <RestaurantEvent>(); List <EventType> EventTypes = new List <EventType>(); List <SearchCategory <EventType> > EventTypesInfo = new List <SearchCategory <EventType> >(); bool IsSelectedAnyCategory = false; if (CheckEl != null) { IsSelectedAnyCategory = true; string[] el = CheckEl.Split(','); List <int> idEl = new List <int>(); for (int i = 0; i < el.Count(); i++) { idEl.Add(int.Parse(el[i].Trim())); } List <EventType> SelEventTypes = GetEventTypes(idEl); List <int> id = new List <int>(); for (int i = 0; i < SelEventTypes.Count(); i++) { id.Add(SelEventTypes[i].Id); } if (searchText == null || searchText == "") { EventList = GetEventsByType(id, context); } else { EventList = GetEventsByTypeText(searchText, id, context); } EventList = EventList.Intersect(GetEventsByDate(from, to, context)).ToList(); EventTypes = context.EventTypes.Include(t => t.RestaurantEvents).OrderBy(t => t.Name).ToList(); for (int i = 0; i < EventTypes.Count; i++) { bool IsSelected = idEl.Contains(EventTypes[i].Id); int Count = EventList.Where(t => t.EventTypes.Contains(EventTypes[i])).ToList().Count(); EventTypesInfo.Add(new SearchCategory <EventType>() { Category = EventTypes[i], IsSelected = IsSelected, Count = Count }); } } else { if (searchText.Length > 0) { EventList = GetEventsByName(searchText, context); } else { EventList = context.RestaurantEvent.Include(t => t.Restaurant) .Include(t => t.EventTypes).ToList(); } EventList = EventList.Intersect(GetEventsByDate(from, to, context)).ToList(); EventTypes = context.EventTypes.Include(t => t.RestaurantEvents).OrderBy(t => t.Name).ToList(); for (int i = 0; i < EventTypes.Count; i++) { EventTypesInfo.Add(new SearchCategory <EventType>() { Category = EventTypes[i], IsSelected = false, Count = EventList.Where(t => t.EventTypes.Contains(EventTypes[i])).ToList().Count() }); } } result.Events = EventList; result.Types = EventTypesInfo; result.IsSelectedAnyCategory = IsSelectedAnyCategory; result.from = from; result.to = to; return(result); } catch { throw new Exception("Events not found"); } } }