Beispiel #1
0
        public virtual ActionResult Get(string establishment, string keyword = null)
        {
            // return 404 when there is no establishment
            if (string.IsNullOrWhiteSpace(establishment))
            {
                return(HttpNotFound());
            }

            // redirect to canonical route when keyword is in the query string
            if (Request.QueryString.AllKeys.Contains("keyword", new CaseInsensitiveStringComparer())
                //|| pageNumber < 1
                )
            {
                return(RedirectToAction(MVC.Activities.ActivitySearch.Get(establishment, keyword)));
            }

            var query = new FindTenantActivitiesByKeywordQuery
            {
                Tenant       = establishment,
                Keyword      = keyword,
                PagerOptions = new PagerOptions
                {
                    //PageNumber = pageNumber,
                    PageSize = int.MaxValue,
                },
                EagerLoad = new Expression <Func <Activity, object> >[]
                {
                    a => a.Tags,
                    a => a.Person,
                },
                OrderBy = new Dictionary <Expression <Func <Activity, object> >, OrderByDirection>
                {
                    { a => a.Values.Title, OrderByDirection.Ascending },
                },
            };
            var activities = _services.QueryProcessor.Execute(query);
            //if (activities.PageCount > 0 && activities.PageCount < pageNumber)
            //    return RedirectToAction(MVC.Activities.ActivitySearch.Get(establishment, keyword, activities.PageCount));
            var models = Mapper.Map <ActivityResults>(activities);
            //var models = new ActivityResults(Enumerable.Empty<ActivityResults.ActivityResult>(), 0);
            var tenant = _services.QueryProcessor.Execute(
                new GetEstablishmentByUrlQuery(establishment)
                );

            Mapper.Map(tenant, models);
            return(View(models));
        }
        public virtual ActionResult Get(string establishment, string keyword = null)
        {
            // return 404 when there is no establishment
            if (string.IsNullOrWhiteSpace(establishment)) return HttpNotFound();

            // redirect to canonical route when keyword is in the query string
            if (Request.QueryString.AllKeys.Contains("keyword", new CaseInsensitiveStringComparer())
                //|| pageNumber < 1
            )
                return RedirectToAction(MVC.Activities.ActivitySearch.Get(establishment, keyword));

            var query = new FindTenantActivitiesByKeywordQuery
            {
                Tenant = establishment,
                Keyword = keyword,
                PagerOptions = new PagerOptions
                {
                    //PageNumber = pageNumber,
                    PageSize = int.MaxValue,
                },
                EagerLoad = new Expression<Func<Activity, object>>[]
                {
                    a => a.Tags,
                    a => a.Person,
                },
                OrderBy = new Dictionary<Expression<Func<Activity, object>>, OrderByDirection>
                {
                    { a => a.Values.Title, OrderByDirection.Ascending },
                },
            };
            var activities = _services.QueryProcessor.Execute(query);
            //if (activities.PageCount > 0 && activities.PageCount < pageNumber)
            //    return RedirectToAction(MVC.Activities.ActivitySearch.Get(establishment, keyword, activities.PageCount));
            var models = Mapper.Map<ActivityResults>(activities);
            //var models = new ActivityResults(Enumerable.Empty<ActivityResults.ActivityResult>(), 0);
            var tenant = _services.QueryProcessor.Execute(
                new GetEstablishmentByUrlQuery(establishment)
            );
            Mapper.Map(tenant, models);
            return View(models);
        }
Beispiel #3
0
        public virtual JsonResult AutoCompleteKeyword(string establishment, string term)
        {
            var query = new FindTenantActivitiesByKeywordQuery
            {
                Tenant       = establishment,
                Keyword      = term,
                PagerOptions = new PagerOptions
                {
                    PageSize = int.MaxValue,
                },
                EagerLoad = new Expression <Func <Activity, object> >[]
                {
                    a => a.Tags,
                    a => a.Person,
                },
            };
            var activities = _services.QueryProcessor.Execute(query);
            var people     = activities.Where(a => a.Person.DisplayName.Contains(term, StringComparison.OrdinalIgnoreCase)).Select(a => a.Person.DisplayName).ToArray();
            var titles     = activities.Where(a => a.Values.Title.Contains(term, StringComparison.OrdinalIgnoreCase)).Select(a => a.Values.Title).ToArray();
            var tags       = activities.SelectMany(a => a.Tags.Where(t => t.Text.Contains(term, StringComparison.OrdinalIgnoreCase))).Select(t => t.Text).ToArray();

            var keywords = new List <string>();

            if (people.Any())
            {
                keywords.AddRange(people);
            }
            if (titles.Any())
            {
                keywords.AddRange(titles);
            }
            if (tags.Any())
            {
                keywords.AddRange(tags);
            }

            keywords = keywords.OrderBy(s => s).ToList();

            return(Json(keywords));
        }
        public virtual JsonResult AutoCompleteKeyword(string establishment, string term)
        {
            var query = new FindTenantActivitiesByKeywordQuery
            {
                Tenant = establishment,
                Keyword = term,
                PagerOptions = new PagerOptions
                {
                    PageSize = int.MaxValue,
                },
                EagerLoad = new Expression<Func<Activity, object>>[]
                {
                    a => a.Tags,
                    a => a.Person,
                },
            };
            var activities = _services.QueryProcessor.Execute(query);
            var people = activities.Where(a => a.Person.DisplayName.Contains(term, StringComparison.OrdinalIgnoreCase)).Select(a => a.Person.DisplayName).ToArray();
            var titles = activities.Where(a => a.Values.Title.Contains(term, StringComparison.OrdinalIgnoreCase)).Select(a => a.Values.Title).ToArray();
            var tags = activities.SelectMany(a => a.Tags.Where(t => t.Text.Contains(term, StringComparison.OrdinalIgnoreCase))).Select(t => t.Text).ToArray();

            var keywords = new List<string>();
            if (people.Any()) keywords.AddRange(people);
            if (titles.Any()) keywords.AddRange(titles);
            if (tags.Any()) keywords.AddRange(tags);

            keywords = keywords.OrderBy(s => s).ToList();

            return Json(keywords);
        }