Example #1
0
        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);
        }
Example #4
0
        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));
        }
Example #6
0
        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);
            }
        }