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;
        }