public HttpResponseMessage GetWithService(HttpRequestMessage request, string question = "*", string answer = "*", int serviceid = 0,
                                                  int procedureid = 0, int pagesize = 15, int pageindex = 1)
        {
            Expression <Func <tbFAQ, bool> > questionfilter, answerfilter, serviceidfilter, procedureidfilter = null;

            if (question != "*")
            {
                FuzzySearch _fuzz = new FuzzySearch(question);
                questionfilter = l => _fuzz.IsMatch(l.Question);
            }
            else
            {
                questionfilter = l => l.IsDeleted != true;
            }
            if (answer != "*")
            {
                FuzzySearch _fuzz = new FuzzySearch(answer);
                answerfilter = l => _fuzz.IsMatch(l.Answer);
                //answerfilter = l => l.ManagedbyId == managedbyid;
            }
            else
            {
                answerfilter = l => l.IsDeleted != true;
            }
            if (serviceid != 0)
            {
                serviceidfilter = l => l.ServiceId == serviceid;
            }
            else
            {
                serviceidfilter = l => l.IsDeleted != true;
            }
            if (procedureid != 0)
            {
                procedureidfilter = l => l.ProcedureId == procedureid;
            }
            else
            {
                procedureidfilter = l => l.IsDeleted != true;
            }
            var skipindex = pagesize * (pageindex - 1);
            var obj       = new FAQViewModel
            {
                FAQs = repo.GetWithoutTracking().Where(questionfilter).Where(answerfilter).Where(serviceidfilter).Where(procedureidfilter)
                       .OrderByDescending(a => a.Question).Skip(skipindex).Take(pagesize).ToList(),
                Procedure = procedureRepo.GetWithoutTracking().Where(a => a.ID == procedureid).FirstOrDefault(),
                Service   = serviceRepo.GetWithoutTracking().Where(a => a.ID == serviceid).FirstOrDefault()
            };

            HttpResponseMessage response = request.CreateResponse <FAQViewModel>(HttpStatusCode.OK, obj);

            return(response);
        }
        private ObservableCollection <string> ExecuteSearch(string searchText)
        {
            //string[] filters = searchText.Split(new[] { ' ' });
            //var q = from x in list
            //where filters.All(f => x.Contains(f))
            //select x;

            FuzzySearch _fuzz = new FuzzySearch(searchText);

            var q = from x in list
                    where _fuzz.IsMatch(x)
                    select x;


            //var q = from s in list where s.ToLower().Contains(searchText.ToLower()) select s;
            var results = new ObservableCollection <string>(q);

            return(results);
        }