Пример #1
0
        public async Task <IActionResult> Index(BlogSearchViewModel model)
        {
            var result = await _service.Search(model.ToSearchModel());

            if (IsAjaxRequest())
            {
                return(PartialView("_List", result));
            }

            return(View(result));
        }
Пример #2
0
        public JsonResult GetSuggestions(BlogSearchViewModel viewModel)
        {
            var suggestions = new List <string>();

            if (!String.IsNullOrEmpty(viewModel?.SearchTerm))
            {
                return(Json(_searchService.GetSearchSuggestions(viewModel.SearchTerm)));
            }

            return(Json(new { }));
        }
Пример #3
0
        public PartialViewResult SubmitSearch(BlogSearchViewModel viewModel)
        {
            var resultsViewModel = new SearchResultsViewModel();
            var results          = _searchService.SearchBlogPosts(viewModel.SearchTerm);

            foreach (var result in results)
            {
                resultsViewModel.Results.Add(new SearchResultViewModel()
                {
                    Id    = result.ItemId.ToString(),
                    Title = result.Title,
                    Url   = result.Url
                });
            }
            return(PartialView("~/Views/Search/_SearchResults.cshtml", resultsViewModel));
        }
Пример #4
0
        public IActionResult Search(BlogSearchViewModel model)
        {
            List <BlogItem> blogs = _blogProvider.Search(model.TagName);

            if (blogs.Count == 0)
            {
                ModelState.AddModelError(String.Empty, Languages.LanguageStrings.NoBlogsFoundMatchingTags);
            }

            if (ModelState.IsValid)
            {
                BlogPostsViewModel searchModel = GetBlogPostViewModel(blogs);
                searchModel.Breadcrumbs.Add(new BreadcrumbItem(model.TagName, $"/{Name}/{nameof(Search)}/{model.TagName}/", false));
                return(View(nameof(Index), searchModel));
            }

            return(View(new BlogSearchViewModel(GetModelData())));
        }
Пример #5
0
        public PartialViewResult SubmitSearch(BlogSearchViewModel viewModel)
        {
            Func <IEnumerable <string>, string> stringify = (list) =>
            {
                StringBuilder sb = new StringBuilder();
                foreach (var item in list)
                {
                    sb.Append(String.Format("{0}; ", item));
                }
                return(sb.ToString());
            };

            var resultsViewModel = new SearchResultsViewModel();

            var facetedResults = _searchService.SearchBlogPostsWithFacets(viewModel.SearchTerm, null);

            foreach (var result in facetedResults.Results)
            {
                resultsViewModel.Results.Add(new SearchResultViewModel()
                {
                    Id           = result.ItemId.ToString(),
                    Title        = result.Title,
                    Url          = result.Url,
                    Body         = result.Body,
                    CategoryList = stringify(result.Categories)
                });
            }
            foreach (var facet in facetedResults.Facets)
            {
                resultsViewModel.Facets.Add(new FacetViewModel()
                {
                    Name  = facet.Name,
                    Count = facet.Count
                });
            }

            return(PartialView("~/Views/Search/_SearchResults.cshtml", resultsViewModel));
        }
        public IActionResult Search()
        {
            BlogSearchViewModel model = new BlogSearchViewModel(GetModelData());

            return(View(model));
        }