/// <summary>
        /// Gets the Localized name for the SearchSortBy options.
        /// </summary>
        /// <param name="thisObject">Current Sort By type</param>
        /// <returns>Search Sort By name string</returns>
        public static string GetName(this SearchSortBy thisObject)
        {
            string searchSortByName = string.Empty;

            switch (thisObject)
            {
            case SearchSortBy.Rating:
                searchSortByName = Resources.SearchRatingFilter;
                break;

            case SearchSortBy.Categories:
                searchSortByName = Resources.SearchCategoriesFilter;
                break;

            case SearchSortBy.DistributedBy:
                searchSortByName = Resources.SearchDistributedByFilter;
                break;

            case SearchSortBy.ContentType:
                searchSortByName = Resources.SearchContentTypeFilter;
                break;

            case SearchSortBy.None:
            default:
                break;
            }

            return(searchSortByName);
        }
Example #2
0
        public static string GetSortStringFromEnum(SearchSortBy sort)
        {
            string sortBy = String.Empty;

            switch (sort)
            {
            case SearchSortBy.Oldest:
                sortBy = "Old";
                break;

            case SearchSortBy.A_to_Z:
                sortBy = "A-Z";
                break;

            case SearchSortBy.Z_to_A:
                sortBy = "Z-A";
                break;

            case SearchSortBy.Salary_High_to_Low:
                sortBy = "SalaryHighToLow";
                break;

            case SearchSortBy.Salary_Low_to_High:
                sortBy = "SalaryLowToHigh";
                break;

            case SearchSortBy.Recent:
                sortBy = "Recent";
                break;

            default:
                sortBy = "Relevance";
                break;
            }

            return(sortBy);
        }
Example #3
0
        public static SearchSortBy GetSortEnumFromString(string sort)
        {
            SearchSortBy sortBy = SearchSortBy.Recent;

            switch (sort)
            {
            case "Old":
                sortBy = SearchSortBy.Oldest;
                break;

            case "A-Z":
                sortBy = SearchSortBy.A_to_Z;
                break;

            case "Z-A":
                sortBy = SearchSortBy.Z_to_A;
                break;

            case "SalaryHighToLow":
                sortBy = SearchSortBy.Salary_High_to_Low;
                break;

            case "SalaryLowToHigh":
                sortBy = SearchSortBy.Salary_Low_to_High;
                break;

            case "Recent":
                sortBy = SearchSortBy.Recent;
                break;

            default:
                sortBy = SearchSortBy.Relevance;
                break;
            }

            return(sortBy);
        }
Example #4
0
        /// <summary>
        /// This returns the results for Search Result View
        /// </summary>
        /// <param name="searchText">search Text</param>
        /// <param name="selectedTab">selected Tab Text</param>
        /// <returns>EntityViewModel collection</returns>
        private async Task<JsonResult> GetSearchResults(string searchText, string selectedTab, int currentPage, SearchViewModel searchQuery, SearchSortBy sortBy = SearchSortBy.Rating)
        {
            ViewData["SearchText"] = searchText = (string.IsNullOrWhiteSpace(searchText) || searchText.ToLower(CultureInfo.CurrentCulture).Equals(Resources.DefaultSearchText.ToLower(CultureInfo.CurrentCulture))) ? string.Empty : searchText;
            ViewData["SearchMessage"] = string.Empty;
            IEnumerable<EntityViewModel> results = null;
            var pageDetails = new PageDetails(currentPage);
            
                if (!string.IsNullOrWhiteSpace(searchText))
                {
                    
                    pageDetails.ItemsPerPage = searchQuery.ResultsPerPage;

                    var searchQueryDetails = new SearchQueryDetails();

                    if (searchQuery.ContentTypeFilter != null)
                    {
                        foreach (var contentFilterValue in searchQuery.ContentTypeFilter.Split(','))
                        {
                            searchQueryDetails.ContentTypeFilter.Add(Convert.ToInt32(contentFilterValue, CultureInfo.CurrentCulture));
                        }
                    }

                    if (searchQuery.CategoryFilter != null)
                    {
                        foreach (var categoryFilterValue in searchQuery.CategoryFilter.Split(','))
                        {
                            searchQueryDetails.CategoryFilter.Add(Convert.ToInt32(categoryFilterValue, CultureInfo.CurrentCulture));
                        }
                    }

                    searchQueryDetails.SortBy = searchQuery.SortBy.ToEnum<string, SearchSortBy>(sortBy);

                    results = await _searchService.SimpleSearch(searchText.Replace("'", "''"), CurrentUserId, pageDetails, searchQueryDetails);

                    // If the total count of items are less than the selected per page items, select previous per page items
                    //ViewData["CurrentPage"] = currentPage;
                    //ViewData["TotalPage"] = pageDetails.TotalPages;
                    //ViewData["TotalCount"] = pageDetails.TotalCount;
                }
                

            return Json(new{
                searchResults=results,
                pageInfo = pageDetails
            });
        }
        /// <summary>
        /// This returns the results for Search Result View
        /// </summary>
        /// <param name="searchText">search Text</param>
        /// <param name="selectedTab">selected Tab Text</param>
        /// <returns>EntityViewModel collection</returns>
        private async Task <JsonResult> GetSearchResults(string searchText, string selectedTab, int currentPage, SearchViewModel searchQuery, SearchSortBy sortBy = SearchSortBy.Rating)
        {
            ViewData["SearchText"]    = searchText = (string.IsNullOrWhiteSpace(searchText) || searchText.ToLower(CultureInfo.CurrentCulture).Equals(Resources.DefaultSearchText.ToLower(CultureInfo.CurrentCulture))) ? string.Empty : searchText;
            ViewData["SearchMessage"] = string.Empty;
            IEnumerable <EntityViewModel> results = null;
            var pageDetails = new PageDetails(currentPage);

            if (!string.IsNullOrWhiteSpace(searchText))
            {
                pageDetails.ItemsPerPage = searchQuery.ResultsPerPage;

                var searchQueryDetails = new SearchQueryDetails();

                if (searchQuery.ContentTypeFilter != null)
                {
                    foreach (var contentFilterValue in searchQuery.ContentTypeFilter.Split(','))
                    {
                        searchQueryDetails.ContentTypeFilter.Add(Convert.ToInt32(contentFilterValue, CultureInfo.CurrentCulture));
                    }
                }

                if (searchQuery.CategoryFilter != null)
                {
                    foreach (var categoryFilterValue in searchQuery.CategoryFilter.Split(','))
                    {
                        searchQueryDetails.CategoryFilter.Add(Convert.ToInt32(categoryFilterValue, CultureInfo.CurrentCulture));
                    }
                }

                searchQueryDetails.SortBy = searchQuery.SortBy.ToEnum <string, SearchSortBy>(sortBy);

                results = await _searchService.SimpleSearch(searchText.Replace("'", "''"), CurrentUserId, pageDetails, searchQueryDetails);

                // If the total count of items are less than the selected per page items, select previous per page items
                //ViewData["CurrentPage"] = currentPage;
                //ViewData["TotalPage"] = pageDetails.TotalPages;
                //ViewData["TotalCount"] = pageDetails.TotalCount;
            }


            return(Json(new{
                searchResults = results,
                pageInfo = pageDetails
            }));
        }