public GetSearchResponse Get(GetSearchRequest request) { var response = new GetSearchResponse { Version = request.Version }; try { RequireUserId(request); var type = (SearchEnum)Enum.Parse(typeof(SearchEnum), request.Type); switch (type) { case SearchEnum.Medication: { response.MedResults = Manager.GetTermSearchResults(request, type).Cast <TextValuePair>().ToList(); break; } case SearchEnum.Allergy: { response.AllergyResults = Manager.GetTermSearchResults(request, type).Cast <IdNamePair>().ToList(); break; } } } catch (Exception ex) { FileLog.LogMessageToFile(ex.Message + " trace:" + ex.StackTrace); RaiseException(response, ex); } return(response); }
public IHttpActionResult GetSearchData([FromUri] GetSearchRequest getSearchRequest) { var responses = new Responses(); try { SpellingAutoCorrect spellingAutoCorrect = new SpellingAutoCorrect(); string correctSearchText = ""; foreach (var item in getSearchRequest.SearchText.Split(' ')) { correctSearchText += " " + (new Regex("^[a-zA-Z0-9 ]*$").IsMatch(item) ? spellingAutoCorrect.Correct(item) : Regex.Replace(item, @"[^0-9a-zA-Z]+", "")); } var search = new Search() { CategoryId = getSearchRequest.CategoryId, SearchText = correctSearchText, PageNumber = getSearchRequest.PageNumber, PageSize = Convert.ToInt32(getSearchRequest.PageSize), IsPagingRequired = (getSearchRequest.PageNumber != null) ? true : false, OrderBy = getSearchRequest.OrderBy, OrderByDirection = getSearchRequest.OrderByDirection }; var searches = iSearch.GetSearchData(search); var searchList = new List <GetSearchResponse>(); foreach (var searchDetail in searches) { searchList.Add(new GetSearchResponse() { CategoryId = searchDetail.CategoryId, Number = searchDetail.Number, Name = searchDetail.Name, Content = searchDetail.Content, PDF = searchDetail.PDF, Excel = searchDetail.Excel, Word = searchDetail.Word, TotalPageCount = searchDetail.TotalPageCount, TotalRecord = searchDetail.TotalRecord }); } responses.Status = Utility.SUCCESS_STATUS_RESPONSE; responses.Description = "Search data retrieved successfully"; responses.Response = searchList; } catch (Exception ex) { responses.Status = Utility.ERROR_STATUS_RESPONSE; responses.Description = "Error while retrieving Search data."; Utility.WriteLog("GetSearchData", null, "Error while retrieving Search data. (UtilityController)", ex.ToString()); } return(Ok(responses)); }
public async Task <List <SearchResultItem> > GetSearch(GetSearchRequest request) { var results = new List <SearchResultItem>(); var blogPosts = await GetBlogPosts(); var filteredBlogPosts = blogPosts.Where(p => p.Title.Contains(request.Keyword) || p.Subtitle.Contains(request.Keyword) || p.Tags.Contains(request.Keyword) || p.BodyHtml.Contains(request.Keyword) || p.Author.Name.Contains(request.Keyword)); results.AddRange(filteredBlogPosts.Select(p => new SearchResultItem() { Type = SearchResultItemTypeEnum.BlogPost, Title = p.Title, Author = p.Author, Subtitle = p.Subtitle, Tags = p.Tags, PublishedDate = p.PublishedDate, Url = $"post/{p.Slug}", CreatedDate = p.CreatedDate, UpdatedDate = p.UpdatedDate }).ToList()); var projects = await GetProjects(); var filteredProjects = projects.Where(p => p.Title.Contains(request.Keyword) || p.Subtitle.Contains(request.Keyword) || p.Tags.Contains(request.Keyword) || p.BodyHtml.Contains(request.Keyword)); results.AddRange(filteredProjects.Select(p => new SearchResultItem() { Type = SearchResultItemTypeEnum.BlogPost, Title = p.Title, Subtitle = p.Subtitle, Tags = p.Tags, Url = $"project/{p.Slug}", CreatedDate = p.CreatedDate, UpdatedDate = p.UpdatedDate, ImageThumbnailUrl = p.ImageThumbnailUrl }).ToList()); results = results.Shuffle(); return(results); }
public GetSearchResponse Post(GetSearchRequest request) { var response = new GetSearchResponse { Version = request.Version }; try { RequireUserId(request); //response.MedResults = Manager.GetSearchByID(request); } catch (Exception ex) { RaiseException(response, ex); } return(response); }
public IHttpActionResult GetSearchAutoCompleteData([FromUri] GetSearchRequest getSearchRequest) { var responses = new Responses(); try { SpellingAutoCorrect spellingAutoCorrect = new SpellingAutoCorrect(); string correctSearchText = ""; foreach (var item in getSearchRequest.SearchText.Split(' ')) { correctSearchText += " " + (new Regex("^[a-zA-Z0-9 ]*$").IsMatch(item) ? spellingAutoCorrect.Correct(item) : Regex.Replace(item, @"[^0-9a-zA-Z]+", "")); } var search = new Search() { SearchText = correctSearchText }; var searches = iSearch.GetSearchAutoCompleteData(search); var searchList = new List <GetSearchResponse>(); foreach (var searchDetail in searches) { searchList.Add(new GetSearchResponse() { SearchContent = searchDetail.SearchContent }); } responses.Status = Utility.SUCCESS_STATUS_RESPONSE; responses.Description = "Search AutoComplete data retrieved successfully"; responses.Response = searchList; } catch (Exception ex) { responses.Status = Utility.ERROR_STATUS_RESPONSE; responses.Description = "Error while retrieving Search AutoComplete data."; Utility.WriteLog("GetSearchAutoCompleteData", null, "Error while retrieving Search AutoComplete data. (UtilityController)", ex.ToString()); } return(Ok(responses)); }
public List<object> GetTermSearchResults(GetSearchRequest request, SearchEnum type) { try { List<object> result = null; switch (type) { case SearchEnum.Medication: { result = MedNameStrategy.Search(request.Term).Select(s => s).ToList<object>(); break; } case SearchEnum.Allergy: { if (AllergyStrategy == null) throw new ArgumentException("Allergystrategy is null."); var matched = AllergyStrategy.SearchComplex(request.Term, "Name"); if (matched != null) { result = matched.Select(s => s).ToList<object>(); } break; } } return result; } catch (Exception ex) { FileLog.LogMessageToFile("SearchDD:GetTermSearchResults()::" + ex.Message + " trace:" + ex.StackTrace); throw new Exception("SearchDD:GetTermSearchResults()::" + ex.Message, ex.InnerException); } }