public productAddResult addProductBasket(int productId, int userId, string guestCode, string optionValueList) { productShared pc = new productShared(db); var productItem = db.tbl_product.Include("tbl_stock").Include("tbl_productCritear.tbl_critear").Where(a => a.productId == productId).FirstOrDefault(); if (!productItem.statu) { return productAddResult.statuError; } var optionList = pc.getOptionListByProductItem(productItem); if (optionList != null && optionList.Count > 0 && string.IsNullOrWhiteSpace(optionValueList)) { return productAddResult.hasOption; } if (!productItem.tbl_stock.Any(a => a.stockCount > 0 && a.optionList == optionValueList)) { return productAddResult.stockError; } var sameItemList = db.tbl_basket.Where(a => a.userId == userId && a.productId == productId).ToList().Where(a => a.guestCode == guestCode && a.optionList == optionValueList).FirstOrDefault(); if (sameItemList != null) { var basketItemEdited = db.tbl_basket.Where(a => a.basketId == sameItemList.basketId).FirstOrDefault(); basketItemEdited.quantity = basketItemEdited.quantity + 1; db.SaveChanges(); } else { var basketItem = new tbl_basket(); basketItem.createTime = DateTime.Now; basketItem.discountCode = null; basketItem.guestCode = guestCode; basketItem.optionList = optionValueList; basketItem.productId = productId; basketItem.userId = userId; basketItem.quantity = 1; db.tbl_basket.Add(basketItem); db.SaveChanges(); } return productAddResult.added; }
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; }
public JsonResult SearchModal(string keyWord) { helperSearchModal helperItem = new helperSearchModal(); pageShared ps = new pageShared(db); productShared pc = new productShared(db); var searchPage = ps.getPageByType(pageType.search, langId); helperItem.searchLink = Url.Content("~/") + langCode + "/" + searchPage.url + ".html?keyWord=" + keyWord; helperItem.searchList = getSearchResultList(keyWord); helperItem.totalSearch = helperItem.searchList.Count; helperItem.searchList = helperItem.searchList.Take(5).ToList(); string isResultCome = "no"; if (helperItem.totalSearch > 0) { isResultCome = "yes"; } string htmlText = RenderRazorViewToString("SearchModal", helperItem); return Json(new { html = htmlText, keywordList = getSearchKeywordList(keyWord), isResultCome = isResultCome }); }
public ActionResult Index(int pageId) { if (Request.QueryString["keyWord"] == null) { return null; } string searchWord = Request.QueryString["keyWord"]; helperSearch helperItem = new helperSearch(); pageShared ps = new pageShared(db); productShared pc = new productShared(db); var searchPage = ps.getPageByType(pageType.search, langId); helperItem.searchLink = Url.Content("~/") + langCode + "/" + searchPage.url + ".html"; var item = db.tbl_page.Include("tbl_category").Where(a => a.pageId == pageId).FirstOrDefault(); if (item == null) { return null; } helperItem.breadCrumbItem = getBreadCrumbStaticPage(item.name); helperItem.setTitle(item.name); helperItem.detail = item.detail; //Title ps.pageTitleBind(item, helperItem, langId); //string pattern = getPatternBySearchWord(searchWord); helperItem.searchWord = searchWord; //helperItem.searchList = new List<searchResultItem>(); helperItem.searchList = getSearchResultList(searchWord); if (helperItem.searchList.Count > 0) { helperItem.resultFound = string.Format(App_GlobalResources.lang.totalResultFound, helperItem.searchList.Count); } else { helperItem.resultFound = App_GlobalResources.lang.noResultFound; } int productCount = helperItem.searchList.Count; int currentPage = pc.getCurrentPage(Request, productCount, 10); helperItem.pagingItem = pc.getPageItem(productCount, currentPage, 10, "?keyWord=" + searchWord + "&sayfa="); helperItem.searchList = helperItem.searchList.Skip((currentPage - 1) * 10).Take(10).ToList(); helperItem.searchKeyWordList = Newtonsoft.Json.JsonConvert.SerializeObject(getSearchKeywordList(searchWord)); return View(helperItem); }
public ActionResult BrandSelect(int carBrandId, string parentUrl, string parentName) { var helperPage = new helperBrandSelectProductList(); var carBrand = db.tbl_carBrand.Include("tbl_carModel").Where(a => a.carBrandId == carBrandId).FirstOrDefault(); helperPage.breadCrumbItem = getBrandSelectBreadCrumbProductList(parentName, parentUrl, carBrand.name); helperPage.header = carBrand.name; if (!string.IsNullOrEmpty(carBrand.title)) { helperPage.header = carBrand.title; } helperPage.brandWithModelList = getBrandWithModelList(carBrand, parentUrl, null); //productList var productListWithBrandId = db.tbl_product.Include("tbl_stock").Include("tbl_gallery").Include("tbl_carModelProduct.tbl_carModel.tbl_carBrand").Where(a => a.statu && a.isDeleted == false && 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.tbl_carModelProduct.All(c => c.tbl_carModel.tbl_carBrand.carBrandId == carBrandId) && a.langId == langId).OrderBy(a => a.sequence).ToList(); productShared pc = new productShared(db); int productCount = productListWithBrandId.Count; int currentPage = pc.getCurrentPage(Request, productCount, 6); helperPage.pagingItem = pc.getPageItem(productCount, currentPage, 6, "?sayfa="); helperPage.productList = pc.getProductSummary(parentUrl, productListWithBrandId.Skip((currentPage - 1) * 6).Take(6).ToList(), langCulture, langCode, "240", "160"); // Title var settingItem = db.tbl_settings.Where(a => a.langId == langId).FirstOrDefault(); if (settingItem != null) { helperPage.setBrowserTitle(helperPage.header + settingItem.allPageTitle); } return View(helperPage); }
public ActionResult Index(int pageId) { var helperPage = new helperProductList(); // mainProductUrl pageShared ps = new pageShared(db); var item = ps.getPageById(pageId); helperPage.breadCrumbItem = getIndexBreadCrumbProductList(item.name); helperPage.header = item.name; var newProductList = db.tbl_product.Include("tbl_stock").Include("tbl_gallery").Include("tbl_carModelProduct.tbl_carModel.tbl_carBrand").Where(a => a.statu && a.isDeleted == false && 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(); productShared pc = new productShared(db); int productCount = newProductList.Count; int currentPage = pc.getCurrentPage(Request, productCount, 6); helperPage.pagingItem = pc.getPageItem(productCount, currentPage, 6, "?sayfa="); helperPage.productList = pc.getProductSummary(item.url, newProductList.Skip((currentPage - 1) * 6).Take(6).ToList(), langCulture, langCode, "240", "160"); // Title ps.pageTitleBind(item, helperPage, langId); return View(helperPage); }
private Tuple<List<basketItem>, basketActionResult> getBasketListByTblBasket(List<tbl_basket> list,bool isDeletedInclude) { productShared pc = new productShared(db); basketActionResult basketAction = basketActionResult.success; List<basketItem> helperList = new List<basketItem>(); foreach (var item in list) { basketItem helperItem = new basketItem(); var productItem = item.tbl_product; // delete Basket if (productItem == null || productItem.statu == false || productItem.isDeleted) { deleteBasketById(item.basketId); return new Tuple<List<basketItem>, basketActionResult>(null, basketActionResult.redirect); } if (item.quantity < 1) { deleteBasketById(item.basketId); return new Tuple<List<basketItem>, basketActionResult>(null, basketActionResult.redirect); } //option var optionList = pc.getOptionListByProductItem(productItem); if (optionList != null && optionList.Count > 0) { // delete Basket if (!pc.isProductOptionValid(optionList, item.optionList, isDeletedInclude)) { deleteBasketById(item.basketId); return new Tuple<List<basketItem>, basketActionResult>(null, basketActionResult.redirect); } // Renk Seçimi Metalik helperItem.optionItemList = getBasketOptionListByOptionStr(optionList, item.optionList); helperItem.optionCode = item.optionList; } // stock int stockCount = pc.getProductStockAvailableCount(item.productId, item.optionList); if (stockCount < 1) { deleteBasketById(item.basketId); return new Tuple<List<basketItem>, basketActionResult>(null, basketActionResult.redirect); } if (stockCount < item.quantity) { helperItem.quantity = stockCount; updateStockCount(item.basketId, stockCount); basketAction = basketActionResult.stockAdjust; } else { helperItem.quantity = item.quantity; } // name helperItem.description = productItem.name; // price helperItem.productPriceDec = pc.calcPriceProduct(productItem); helperItem.productTotalPriceDec = helperItem.productPriceDec * helperItem.quantity; // image var photoItem = pc.getProductGallery(productItem, "110", "74").Where(a => a.Item2 == item.optionList).FirstOrDefault(); if (photoItem != null) { helperItem.photo = photoItem.Item1; } // discount helperItem.discountCode = item.discountCode; // basketId helperItem.basketId = item.basketId; // productId helperItem.productId = item.productId; helperList.Add(helperItem); } return new Tuple<List<basketItem>, basketActionResult>(helperList, basketAction); }
// New Product List private List<productSmall> getNewProductList(string productUrl) { var list = db.tbl_product.Include("tbl_stock").Include("tbl_gallery").Include("tbl_carModelProduct.tbl_carModel.tbl_carBrand").Where(a => a.isShowCase && 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).Take(6).ToList(); productShared pc = new productShared(db); return pc.getProductSummary(productUrl, list, langCulture, langCode); }
public ActionResult Detail(int productId, int carModelId, int carBrandId, string parentUrl, string parentName) { helperProductDetail helperPage = new helperProductDetail(); var productItem = db.tbl_product.Include("tbl_stock").Include("tbl_gallery").Include("tbl_productCritear.tbl_critear").Where(a => a.productId == productId).FirstOrDefault(); var carBrandItem = db.tbl_carBrand.Where(a => a.carBrandId == carBrandId).FirstOrDefault(); var carModelItem = db.tbl_carModel.Include("tbl_carModelProduct.tbl_product.tbl_stock").Where(a => a.carModelId == carModelId).FirstOrDefault(); var baseUrl = mainPath + langCode + "/" + parentUrl + "/" + carBrandItem.url + "/" + carModelItem.url; // statu Control if (productItem.statu == false) { return RedirectPermanent(baseUrl + ".html"); } // stockControl if (!productItem.tbl_stock.Any(a => a.stockCount > 0)) { return RedirectPermanent(baseUrl + ".html"); } //PrevAndNextUrl var productList = carModelItem.tbl_carModelProduct.Select(a => a.tbl_product).Where(a => a != null && a.statu && a.tbl_stock.Any(b => b.stockCount > 0)).OrderBy(a => a.sequence).ToList(); var sequenceCurrenProduct = productList.IndexOf(productItem); helperPage = getPrevAndNextUrl(helperPage, sequenceCurrenProduct, productList, baseUrl); //backLink helperPage.backLink = baseUrl + ".html"; if (Request.QueryString["page"] != null) { // ToDo: Add Pageing Back Link } productShared pc = new productShared(db); CultureInfo priceFormat = CultureInfo.CreateSpecificCulture(langCulture); //breadcrumb helperPage.breadCrumbItem = getProductDetailBreadCrumbProductList(parentName, parentUrl, carBrandItem.name, carBrandItem.url, carModelItem.name, carModelItem.url, productItem.name); helperPage.imageList = pc.getProductGallery(productItem, "500", "350"); helperPage.productName = productItem.name; helperPage.productId = productItem.productId; decimal price = pc.calcPriceProduct(productItem); helperPage.price = price.ToString("F2", priceFormat) + " TL"; var taxpriceItem = pc.getProductWithoutTaxPriceAndTaxPrice(productItem, priceFormat); helperPage.withoutTaxPrice = taxpriceItem.Item2; helperPage.detail = productItem.detail; //OptionList helperPage.optionList = pc.getOptionListByProductItem(productItem); if (Request.QueryString["action"] != null && Request.QueryString["action"] == "optionSelect") { helperPage.isOptionMsgExist = true; } //Title var settingItem = db.tbl_settings.Where(a => a.langId == langId).FirstOrDefault(); if (settingItem != null) { helperPage.setBrowserTitle(helperPage.productName + settingItem.allPageTitle); helperPage.setDescription(productItem.metaDescription); helperPage.setKeywords(productItem.metaKeyword); } if (settingItem.isCrediCardEnable.HasValue && settingItem.isCrediCardEnable.Value) { helperPage.isInstallmenTableVisible = true; } return View(helperPage); }
public ActionResult OptionList(int productId) { productShared pc = new productShared(db); var item = db.tbl_product.Where(a => a.productId == productId).FirstOrDefault(); if (item == null) { return null; } var amount = pc.calcPriceProduct(item); var helperPage = getOptionList(amount); string viewHtml = RenderRazorViewToString("OptionList", helperPage); return Json(new { html = viewHtml }); }