public List<searchResultItem> getSearchResultList(string searchWord) { List<searchResultItem> helperList = new List<searchResultItem>(); productShared ps = new productShared(db); pageShared pas = new pageShared(db); //Regex regexItem = new Regex(pattern, RegexOptions.None); var currentCultureInfo = CultureInfo.CreateSpecificCulture(langCulture); var enCulture = CultureInfo.CreateSpecificCulture("en-US"); string productUrl = ""; var productPage = pas.getPageByType(pageType.productList, langId); if (productPage != null) { productUrl = productPage.url; } string searchText = ""; #region Product // Search Product List var newProductList = db.tbl_product.Include("tbl_stock").Include("tbl_gallery").Include("tbl_carModelProduct.tbl_carModel.tbl_carBrand").Where(a => a.statu && a.tbl_stock.Any(b => b.stockCount > 0) && a.tbl_carModelProduct.Any(c => c.tbl_carModel != null) && a.tbl_carModelProduct.Any(c => c.tbl_carModel != null) && a.tbl_carModelProduct.Any(c => c.tbl_carModel.tbl_carBrand != null) && a.langId == langId).OrderByDescending(a => a.sequence).ToList(); foreach (var item in newProductList) { searchText = item.name + item.detail + item.shortDescription + item.metaKeyword + item.metaDescription; searchText = generateSearchText(searchText, new CultureInfo[] { currentCultureInfo, enCulture }); if (isMatchSearchWord(searchText, searchWord.ToLower(currentCultureInfo))) { searchResultItem searchItem = new searchResultItem(); searchItem.objType = searchObjType.product; searchItem.resultTitle = item.name; searchItem.resultSubTitle = item.metaDescription; searchItem.productItem = ps.getProductSummaryOneItem(productUrl, item, currentCultureInfo, langCode, "150", "100"); helperList.Add(searchItem); } } #endregion #region Brand var brandList = db.tbl_carBrand.Where(a => a.statu).ToList(); foreach (var item in brandList) { searchText = item.name + item.metaDescription + item.metaKeyword; searchText = generateSearchText(searchText, new CultureInfo[] { currentCultureInfo, enCulture }); if (isMatchSearchWord(searchText, searchWord.ToLower(currentCultureInfo))) { searchResultItem searchItem = new searchResultItem(); searchItem.objType = searchObjType.brand; searchItem.resultTitle = item.name; searchItem.resultSubTitle = item.metaDescription; searchItem.photo = "ImageShow/carBrand/" + item.photo + "/" + item.photoCoordinate + "/60/60/1"; searchItem.url = langCode + "/" + productUrl + "/" + item.url + ".html"; helperList.Add(searchItem); } } #endregion #region Model var modelList = db.tbl_carModel.Include("tbl_carBrand").Where(a => a.statu).ToList(); foreach (var item in modelList) { searchText = item.name + item.metaDescription + item.metaKeyword; searchText = generateSearchText(searchText, new CultureInfo[] { currentCultureInfo, enCulture }); if (isMatchSearchWord(searchText, searchWord.ToLower(currentCultureInfo))) { searchResultItem searchItem = new searchResultItem(); searchItem.objType = searchObjType.model; searchItem.resultTitle = item.name; searchItem.resultSubTitle = item.metaDescription; searchItem.photo = "ImageShow/carBrand/" + item.tbl_carBrand.photo + "/" + item.tbl_carBrand.photoCoordinate + "/60/60/1"; searchItem.url = langCode + "/" + productUrl + "/" + item.tbl_carBrand.url + "/" + item.url + ".html"; helperList.Add(searchItem); } } #endregion #region Page var pageList = db.tbl_page.Where(a => a.statu).ToList(); foreach (var item in pageList) { searchText = item.name + item.detail + item.metaKeyword + item.metaDescription; searchText = generateSearchText(searchText, new CultureInfo[] { currentCultureInfo, enCulture }); if (isMatchSearchWord(searchText, searchWord.ToLower(currentCultureInfo))) { switch ((pageType)item.pageTypeId) { case pageType.activation: continue; case pageType.resetPassword: continue; case pageType.search: continue; case pageType.yonlendirmeIcerik: continue; default: var accountPageList = new pageType[] { pageType.accountDashboard, pageType.accountUserInfo, pageType.accountPassword, pageType.accountAddress, pageType.accountOrders, pageType.accountDiscount }; searchResultItem searchItem = new searchResultItem(); searchItem.resultTitle = item.name; searchItem.resultSubTitle = item.metaDescription; searchItem.objType = searchObjType.staticPage; if (accountPageList.Contains((pageType)item.pageTypeId)) { var accountPage = pas.getPageByType(pageType.account, langId); searchItem.url = langCode + "/" + accountPage.url + "/" + item.url + ".html"; } else { searchItem.url = langCode + "/" + item.url + ".html"; } helperList.Add(searchItem); break; } } } #endregion return helperList; }