Exemplo n.º 1
0
        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));
        }
Exemplo n.º 2
0
        public async Task <IActionResult> SearchEvents([FromForm] EventSearchViewModel modelFromForm)
        {
            EventSearchResult events = await _searchRequest.Search(modelFromForm.Location, modelFromForm.Keyword);

            modelFromForm.SearchResults = events;

            return(PartialView("_ShowEvents", modelFromForm));
        }
Exemplo n.º 3
0
 public static EventSearchDto ToDto(this EventSearchViewModel source)
 {
     return(new EventSearchDto
     {
         PageNumber = source.PageNumber,
         PageSize = source.PageSize,
         Title = source.Title
     });
 }
Exemplo n.º 4
0
        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));
        }
Exemplo n.º 5
0
        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())));
        }
Exemplo n.º 6
0
        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");
         }
     }
 }