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); }
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); }