public async Task <IActionResult> Search(string keyword) { if (string.IsNullOrEmpty(keyword)) { return(Redirect("/")); } var apiService = _configuration.GetApiServiceInfo(); ViewBag.Keyword = keyword; if (!string.IsNullOrEmpty(keyword)) { keyword = keyword.Trim().StripVietnameseChars().ToUpper(); } var products = await _productService.ProductSearch(apiService.TenantId, CultureInfo.CurrentCulture.Name, keyword, null, null, null, 1, 100); ViewBag.ListProduct = JsonConvertHelper.GetObjectFromObject <List <ProductSearchViewModel> >(products?.Items); var news = await _newsService.Search(apiService.TenantId, CultureInfo.CurrentCulture.Name, keyword, null, null, null, 1, 100); ViewBag.ListNews = JsonConvertHelper.GetObjectFromObject <List <NewsSearchViewModel> >(news?.Items); return(View()); }
public async Task <IActionResult> About() { var apiService = _configuration.GetApiServiceInfo(); var listCoreValue = await _coreService.GetAllActivatedCoreValueAsync(apiService.TenantId, CultureInfo.CurrentCulture.Name); if (listCoreValue != null) { ViewBag.ListCoreValue = JsonConvertHelper.GetObjectFromObject <List <ValueViewModel> >(listCoreValue); } if (_cache.TryGetValue($"{CacheParam.MenuMiddle}{CultureInfo.CurrentCulture.Name}", out MenuDetailViewModel CategoryMiddleCache)) { ViewBag.MenuContact = CategoryMiddleCache; } else { var menuMiddle = await _menuService.GetAllActivatedMenuByPositionAsync(apiService.TenantId, CultureInfo.CurrentCulture.Name, WebsiteClient.Api.Domain.Constants.Position.Middle); var menuMiddleData = JsonConvertHelper.GetObjectFromObject <MenuDetailViewModel>(menuMiddle); _cache.Set($"{CacheParam.MenuMiddle}{CultureInfo.CurrentCulture.Name}", menuMiddleData, TimeSpan.FromHours(1)); ViewBag.MenuContact = menuMiddleData; } return(View()); }
public async Task <IActionResult> Agency() { var listProvince = await _coreService.GetProvinceByNationId(1); ViewBag.ListProvice = JsonConvertHelper.GetObjectFromObject <List <ObjectViewModel> >(listProvince); ViewBag.Message = "Chúc mừng bạn đã đăng ký đại lý thành công. Chúng tôi sẽ liên hệ với bạn trong thời gian sớm nhất để xác nhận."; return(View()); }
public async Task <IActionResult> GetNewsByCategory(int categoryId, int page = 3, int pageSize = 6) { var apiService = _configuration.GetApiServiceInfo(); var listNews = await _newsService.GetNewsByCategoryIdAsync(apiService.TenantId, CultureInfo.CurrentCulture.Name, categoryId, page, pageSize); var listNewsData = JsonConvertHelper.GetObjectFromObject <CategoryWidthNewsViewModel>(listNews.Data); return(Json(listNewsData.ListNews)); }
public async Task <JsonResult> GetComment(string objectId, int objectType, int page = 1, int pageSize = 20) { var apiService = _configuration.GetApiServiceInfo(); var commentMeta = await _feedbackService.GetComment(apiService.TenantId, objectId, objectType, page, pageSize); var comment = JsonConvertHelper.GetObjectFromObject <SearchResult <CommentViewModel> >(commentMeta); var result = RenderTree(comment.Items, null); return(Json(new { Items = result, comment.TotalRows })); }
public async Task <JsonResult> Send(FeedbackMeta feedback) { if (!ModelState.IsValid) { return(Json(GetErrorsInModelState())); } var apiService = _configuration.GetApiServiceInfo(); var feedbackMetaData = JsonConvertHelper.GetObjectFromObject <GHM.WebsiteClient.Api.Domain.ModelMetas.FeedbackMeta>(feedback); var result = await _feedbackService.Insert(apiService.TenantId, feedbackMetaData); return(Json(result)); }
public async Task <JsonResult> Comment(CommentMeta commentMeta) { if (!ModelState.IsValid) { return(Json(GetErrorsInModelState())); } var apiService = _configuration.GetApiServiceInfo(); var listSettings = await _settingService.GetWebsiteSettingsAsync(apiService.TenantId, CultureInfo.CurrentCulture.Name); var settings = listSettings.Items.Select(x => new Setting { Key = x.Key, ConcurrencyStamp = x.ConcurrencyStamp, DisplayName = x.DisplayName, GroupId = x.GroupId, LanguageId = x.LanguageId, Value = x.Value }).ToList(); var websiteSetting = new WebsiteSetting(); string convention = typeof(WebsiteSetting).Namespace; var commentNotAllow = Common.GetSettingValue(settings, string.Format("{0}.CommentNotAllow", convention)); if (!string.IsNullOrEmpty(commentNotAllow)) { var listComment = commentNotAllow.Split(','); if (listComment != null && listComment.Any()) { foreach (var comment in listComment) { if (commentMeta.Content.Contains(comment)) { return(Json($"Bạn không được phép bình luận từ {comment}")); } } } } var commentMetaData = JsonConvertHelper.GetObjectFromObject <WebsiteClient.Api.Domain.ModelMetas.CommentMeta>(commentMeta); commentMetaData.TenantId = apiService.TenantId; var result = await _feedbackService.InsertComment(commentMetaData); return(Json(result)); }
public async Task <JsonResult> AgencyRegister(AgencyMeta agencyMeta) { if (!ModelState.IsValid) { return(Json(GetErrorsInModelState())); } var apiService = _configuration.GetApiServiceInfo(); var agencyMetaData = JsonConvertHelper.GetObjectFromObject <GHM.WebsiteClient.Api.Domain.ModelMetas.AgencyInfoMeta>(agencyMeta); agencyMetaData.TenantId = apiService.TenantId; var result = await _agencyInfoService.Insert(CultureInfo.CurrentCulture.Name, agencyMetaData); return(Json(result)); }
public async Task <IActionResult> Index() { var apiService = _configuration.GetApiServiceInfo(); var listProductCategory = await _productService.ProductCategorySearch(apiService.TenantId, CultureInfo.CurrentCulture.Name, string.Empty, null, null, false, int.MaxValue); var listProductCategoryData = JsonConvertHelper.GetObjectFromObject <List <ProductCategorySearchViewModel> >(listProductCategory); ViewBag.ListProductCategory = listProductCategoryData; var productCategoryInfo = listProductCategory.FirstOrDefault(); ViewBag.ProductCategoryId = productCategoryInfo?.Id; var products = await _productService.ProductSearchByCategory(apiService.TenantId, CultureInfo.CurrentCulture.Name, productCategoryInfo?.SeoLink, null, null, 1, 6); ViewBag.ListProduct = products?.Items; ViewBag.TotalProduct = products?.TotalRows; return(View()); }
public async Task <IActionResult> Buy(string productId, int?quantity) { var apiService = _configuration.GetApiServiceInfo(); var productInfo = await _productService.ProductGetDetail(apiService.TenantId, CultureInfo.CurrentCulture.Name, productId, null); var product = JsonConvertHelper.GetObjectFromObject <ProductSearchViewModel>(productInfo); if (SessionHelper.GetObjectFromJson <List <ProductSelectedItem> >(HttpContext.Session, SessionParam.ShoppingCart) == null) { List <ProductSelectedItem> cart = new List <ProductSelectedItem> { new ProductSelectedItem { Product = product, Quantity = quantity ?? 0 } }; SessionHelper.SetObjectAsJson(HttpContext.Session, SessionParam.ShoppingCart, cart); } else { List <ProductSelectedItem> cart = SessionHelper.GetObjectFromJson <List <ProductSelectedItem> >(HttpContext.Session, SessionParam.ShoppingCart); int index = IsExists(productId); if (index >= 0) { cart[index].Quantity = quantity ?? 0; } else { cart.Add(new ProductSelectedItem { Product = product, Quantity = quantity ?? 0 }); } SessionHelper.SetObjectAsJson(HttpContext.Session, SessionParam.ShoppingCart, cart); } var listProduct = SessionHelper.GetObjectFromJson <List <ProductSelectedItem> >(HttpContext.Session, SessionParam.ShoppingCart); return(Ok(listProduct)); }
public async Task <IActionResult> Index() { var apiService = _configuration.GetApiServiceInfo(); var listProvince = await _coreService.GetProvinceByNationId(1); ViewBag.ListProvice = JsonConvertHelper.GetObjectFromObject <List <ObjectViewModel> >(listProvince); var breadcrumbs = new List <Breadcrumb> { new Breadcrumb() { Name = "Liên hệ", IsCurrent = true, } }; ViewBag.Breadcrumb = breadcrumbs; ViewBag.ListAgency = await _agencyInfoService.AgencyInfoGetClient(apiService.TenantId, CultureInfo.CurrentCulture.Name, null, null); return(View()); }
public async Task <IActionResult> Solution(string seoLink) { var apiService = _configuration.GetApiServiceInfo(); var listProductCategory = await _productService.ProductCategorySearch(apiService.TenantId, CultureInfo.CurrentCulture.Name, seoLink, null, null, null, 1); var productCategoryInfo = listProductCategory.FirstOrDefault(); var model = JsonConvertHelper.GetObjectFromObject <ProductCategorySearchViewModel>(productCategoryInfo); if (productCategoryInfo != null) { var products = await _productService.ProductSearchByParentCategory(apiService.TenantId, CultureInfo.CurrentCulture.Name, null, null, productCategoryInfo?.Id ?? 0); ViewBag.ListProduct = JsonConvertHelper.GetObjectFromObject <List <ProductWidthCategoryViewModel> >(products?.Items); } if (model == null) { return(View("../NotFound/Index")); } return(View(model)); }
public async Task <IActionResult> Search(string keyword, string attributeName, string attributeValueName, int page = 1, int pageSize = 6) { var apiService = _configuration.GetApiServiceInfo(); ViewBag.Keyword = keyword?.Trim().StripVietnameseChars()?.ToUpper(); ViewBag.AttributeName = attributeName?.Trim().StripVietnameseChars()?.ToUpper(); ViewBag.AttributeValueName = attributeValueName?.Trim().StripVietnameseChars()?.ToUpper(); var breadcrumbs = new List <Breadcrumb> { new Breadcrumb() { Name = "Sản phẩm", IsCurrent = false, Url = "san-pham" }, new Breadcrumb() { Name = !string.IsNullOrEmpty(keyword) ? $"Tìm kiếm: {keyword}" : $"{attributeName} : {attributeValueName}", IsCurrent = true, } }; ViewBag.Breadcrumb = breadcrumbs; var listProductCategory = await _productService.ProductCategorySearch(apiService.TenantId, CultureInfo.CurrentCulture.Name, string.Empty, null, null, null, int.MaxValue); var listProductCategoryData = JsonConvertHelper.GetObjectFromObject <List <ProductCategorySearchViewModel> >(listProductCategory); ViewBag.ListProductCategory = listProductCategoryData; if (listProductCategoryData != null && listProductCategoryData.Any()) { ViewBag.ProductCategroryTree = RenderTree(listProductCategoryData, null)?.Take(5); } if (!string.IsNullOrEmpty(keyword) && string.IsNullOrEmpty(attributeName) && string.IsNullOrEmpty(attributeValueName)) { keyword = keyword?.Trim()?.StripVietnameseChars().ToUpper(); var products = await _productService.ProductSearch(apiService.TenantId, CultureInfo.CurrentCulture.Name, keyword, null, null, null, page, pageSize); ViewBag.ListProduct = products?.Items; ViewBag.TotalProduct = products?.TotalRows; } if (string.IsNullOrEmpty(keyword) && !string.IsNullOrEmpty(attributeName) && !string.IsNullOrEmpty(attributeValueName)) { attributeName = attributeName?.Trim()?.StripVietnameseChars().ToUpper(); attributeValueName = attributeValueName?.Trim()?.StripVietnameseChars().ToUpper(); var products = await _productService.ProductGetByAttributeValueId(apiService.TenantId, CultureInfo.CurrentCulture.Name, attributeValueName, attributeName, page, pageSize); ViewBag.ListProduct = products?.Items; ViewBag.TotalProduct = products?.TotalRows; } var productHots = await _productService.ProductSearch(apiService.TenantId, CultureInfo.CurrentCulture.Name, string.Empty, true, null, string.Empty, 1, 5); ViewBag.ListProductHot = JsonConvertHelper.GetObjectFromObject <List <ProductSearchViewModel> >(productHots?.Items); return(View()); }
public async Task <ActionResult> Index() { var apiService = _configuration.GetApiServiceInfo(); var listProductCategoryHomePage = await _productService.ProductCategorySearch(apiService.TenantId, CultureInfo.CurrentCulture.Name, string.Empty, null, true, null, 10); var listProductCategoryHomePageData = JsonConvertHelper.GetObjectFromObject <List <ProductCategorySearchViewModel> >(listProductCategoryHomePage); ViewBag.ListProductCategoryHomePage = listProductCategoryHomePageData; //var listProductCategoryHot = await _productService.ProductCategorySearch(apiService.TenantId, CultureInfo.CurrentCulture.Name, string.Empty, true, null, null, int.MaxValue); //var listProductCategoryHotData = JsonConvertHelper.GetObjectFromObject<List<ProductCategorySearchViewModel>>(listProductCategoryHot); //ViewBag.ListProductCategoryHot = listProductCategoryHotData; //ViewBag.ProductCategoryId = listProductCategoryHot?.FirstOrDefault()?.Id; var products = await _productService.ProductSearch(apiService.TenantId, CultureInfo.CurrentCulture.Name, null, true, null, null, 1, 100); ViewBag.ListProduct = products?.Items; var listProductCategorySolution = await _productService.ProductCategorySearch(apiService.TenantId, CultureInfo.CurrentCulture.Name, string.Empty, null, null, true, 20); var listProductCategorySolutionData = JsonConvertHelper.GetObjectFromObject <List <ProductCategorySearchViewModel> >(listProductCategorySolution); ViewBag.ListProductCategorySolution = listProductCategorySolutionData; var listVideoHomePage = await _videoService.ListTopVideoAsync(apiService.TenantId, CultureInfo.CurrentCulture.Name, 20); var listVideoHomePageData = JsonConvertHelper.GetObjectFromObject <List <VideoViewModel> >(listVideoHomePage); ViewBag.ListVideoHomePage = listVideoHomePageData; var listCategoryWidthNews = await _newsService.GetListCategoryWidthNewsAsync(apiService.TenantId, CultureInfo.CurrentCulture.Name, 2, true, 10); var listNewsData = JsonConvertHelper.GetObjectFromObject <List <CategoryWidthNewsViewModel> >(listCategoryWidthNews?.Items); if (listNewsData != null && listNewsData.Any()) { var newsHostHomePage = listNewsData.FirstOrDefault(); ViewBag.NewsHostHomePage = newsHostHomePage; ViewBag.NewHomePage = listNewsData.Where(x => x.CategoryId != newsHostHomePage?.CategoryId).FirstOrDefault(); } #region cache home if (_cache.TryGetValue($"{CacheParam.MenuMiddle}{CultureInfo.CurrentCulture.Name}", out MenuDetailViewModel CategoryMiddleCache)) { ViewBag.MenuContact = CategoryMiddleCache; } else { var menuMiddle = await _menuService.GetAllActivatedMenuByPositionAsync(apiService.TenantId, CultureInfo.CurrentCulture.Name, WebsiteClient.Api.Domain.Constants.Position.Middle); var menuMiddleData = JsonConvertHelper.GetObjectFromObject <MenuDetailViewModel>(menuMiddle); _cache.Set($"{CacheParam.MenuMiddle}{CultureInfo.CurrentCulture.Name}", menuMiddleData, TimeSpan.FromHours(1)); ViewBag.MenuContact = menuMiddleData; } //if (_cache.TryGetValue(CacheParam.Banner, out BannerViewModel banners)) //{ // ViewBag.MainBanner = banners; //} //else //{ var listBannerInHomeData = await _bannerService.GetBannerItemByPositionAsync(apiService.TenantId, (int)Position.Top); var listBannerInHome = JsonConvertHelper.GetObjectFromObject <BannerViewModel>(listBannerInHomeData.Data); _cache.Set(CacheParam.Banner, listBannerInHome, TimeSpan.FromHours(1)); ViewBag.MainBanner = listBannerInHome; //} #endregion return(View()); }
public async Task <ActionResult> Coordinator(string segment, int page = 1, int pageSize = 12) { var apiService = _configuration.GetApiServiceInfo(); ViewBag.Page = page; ViewBag.PageSize = pageSize; var menuInfo = await _menuService.GetDetailBySeoLinkAsync(apiService.TenantId, segment, CultureInfo.CurrentCulture.Name); if (menuInfo == null) { string[] segmentArray = segment.Split('.'); bool isNews = segmentArray.Length > 1 && segmentArray[1].ToLower().Equals("html"); bool isProduct = segmentArray.Length > 1 && segmentArray[1].ToLower().Equals("htm"); if (isNews) { var newInfo = await _newsService.GetClientAsync(apiService.TenantId, CultureInfo.CurrentCulture.Name, segmentArray[0]); if (newInfo != null) { await _newsService.UpdateViewNewsAsync(apiService.TenantId, newInfo.Id, CultureInfo.CurrentCulture.Name); var newsHost = await _newsService.GetListTopNewsHotAsync(apiService.TenantId, CultureInfo.CurrentCulture.Name, 4); ViewBag.NewsHot = JsonConvertHelper.GetObjectFromObject <List <NewsSearchViewModel> >(newsHost); var newData = JsonConvertHelper.GetObjectFromObject <NewsDetailViewModel>(newInfo); //if (_cache.TryGetValue(CacheParam.BannerRight, out BannerViewModel banners)) //{ // ViewBag.MainBanner = banners; //} //else //{ var listBannerRightData = await _bannerService.GetBannerItemByPositionAsync(apiService.TenantId, GHM.WebsiteClient.Api.Domain.Constants.Position.Right); var listBannerRight = JsonConvertHelper.GetObjectFromObject <BannerViewModel>(listBannerRightData.Data); _cache.Set(CacheParam.BannerRight, listBannerRight, TimeSpan.FromHours(1)); ViewBag.BannerRight = listBannerRight; //} return(View("../News/Detail", newData)); } else { return(View("../NotFound/Index")); } } else if (isProduct) { var segmentProduct = segmentArray[0].ToString(); var segmentProductArray = segmentProduct.Split('/'); if (segmentProductArray.Length <= 1 && segmentProduct.Contains("san-pham")) { return(View("../NotFound/Index")); } var seoLinKProduct = segmentProductArray.Length > 1 ? segmentProductArray[1].ToString() : segmentProduct; var productInfo = await _productService.ProductGetDetail(apiService.TenantId, CultureInfo.CurrentCulture.Name, string.Empty, seoLinKProduct); if (productInfo != null) { ViewBag.ProductInfo = JsonConvertHelper.GetObjectFromObject <ProductSearchViewModel>(productInfo); var productImages = await _productService.ProductImageSearchByProductId(apiService.TenantId, productInfo.Id); ViewBag.ProdutImages = productImages?.Items; var productAttributes = await _productService.ProductAttributeValueGetByProductId(apiService.TenantId, CultureInfo.CurrentCulture.Name, productInfo?.Id); ViewBag.ProudctAttributes = productAttributes?.Items; var productCategories = await _productService.ProductCategoryGetByProductId(apiService.TenantId, CultureInfo.CurrentCulture.Name, productInfo?.Id); ViewBag.ProductCategory = productCategories?.Items; ViewBag.ProductSelectItems = SessionHelper.GetObjectFromJson <List <ProductSelectedItem> >(HttpContext.Session, SessionParam.ShoppingCart); var listProductCategory = await _productService.ProductCategorySearch(apiService.TenantId, CultureInfo.CurrentCulture.Name, string.Empty, null, null, null, int.MaxValue); var listProductCategoryData = JsonConvertHelper.GetObjectFromObject <List <ProductCategorySearchViewModel> >(listProductCategory); ViewBag.ListProductCategory = listProductCategoryData; if (listProductCategoryData != null && listProductCategoryData.Any()) { var trees = RenderTree(listProductCategoryData, null); ViewBag.ProductCategroryTree = trees?.Take(5); } var productHots = await _productService.ProductSearch(apiService.TenantId, CultureInfo.CurrentCulture.Name, string.Empty, true, null, string.Empty, 1, 5); ViewBag.ListProductHot = JsonConvertHelper.GetObjectFromObject <List <ProductSearchViewModel> >(productHots?.Items); return(View("../Product/Detail")); } else { var categoryInfo = await _productService.ProductCategoryGetDetail(apiService.TenantId, CultureInfo.CurrentCulture.Name, seoLinKProduct, null); if (categoryInfo != null) { if (!categoryInfo.IsSolution.HasValue || !categoryInfo.IsSolution.Value) { var listProductCategory = await _productService.ProductCategorySearch(apiService.TenantId, CultureInfo.CurrentCulture.Name, string.Empty, null, null, null, int.MaxValue); var listProductCategoryData = JsonConvertHelper.GetObjectFromObject <List <ProductCategorySearchViewModel> >(listProductCategory); ViewBag.ListProductCategory = listProductCategoryData; if (listProductCategoryData != null && listProductCategoryData.Any()) { var trees = RenderTree(listProductCategoryData, null); ViewBag.ProductCategroryTree = trees?.Take(5); } ViewBag.ProductCategoryInfo = JsonConvertHelper.GetObjectFromObject <ProductCategorySearchViewModel>(categoryInfo); ViewBag.ProductCategoryId = categoryInfo?.Id; var products = await _productService.ProductSearchByCategory(apiService.TenantId, CultureInfo.CurrentCulture.Name, categoryInfo?.SeoLink, null, null, 1, 6); ViewBag.ListProduct = products?.Items; ViewBag.TotalProduct = products?.TotalRows; var productHots = await _productService.ProductSearch(apiService.TenantId, CultureInfo.CurrentCulture.Name, string.Empty, true, null, string.Empty, 1, 5); ViewBag.ListProductHot = JsonConvertHelper.GetObjectFromObject <List <ProductSearchViewModel> >(productHots?.Items); return(View("../Product/Category")); } else { var model = JsonConvertHelper.GetObjectFromObject <ProductCategorySearchViewModel>(categoryInfo); var products = await _productService.ProductSearchByParentCategory(apiService.TenantId, CultureInfo.CurrentCulture.Name, null, null, categoryInfo?.Id ?? 0); ViewBag.ListProduct = JsonConvertHelper.GetObjectFromObject <List <ProductWidthCategoryViewModel> >(products?.Items); return(View("../Product/Solution", model)); } } else { return(View("../NotFound/Index")); } } } else { return(View("../NotFound/Index")); } } else { if (menuInfo.SubjectType == (GHM.WebsiteClient.Api.Domain.Constants.SubjectType)SubjectType.NewsCategory) { var categoryWithNews = await _newsService.GetNewsByCategoryIdAsync(apiService.TenantId, CultureInfo.CurrentCulture.Name, int.Parse(menuInfo.SubjectId), page, pageSize); var categoryWithNewsData = JsonConvertHelper.GetObjectFromObject <CategoryWidthNewsViewModel>(categoryWithNews.Data); ViewBag.CategoryId = categoryWithNews.Data.CategoryId; if (categoryWithNewsData != null) { return(View("../News/CategoryNews", categoryWithNewsData)); } else { return(View("../NotFound/Index")); } } else if (menuInfo.SubjectType == (GHM.WebsiteClient.Api.Domain.Constants.SubjectType)SubjectType.News) { var newsDetail = await _newsService.GetDetailForClientAsync(apiService.TenantId, menuInfo.SubjectId, CultureInfo.CurrentCulture.Name); if (newsDetail == null) { return(View("../NotFound/Index")); } await _newsService.UpdateViewNewsAsync(apiService.TenantId, newsDetail.Id, CultureInfo.CurrentCulture.Name); var newsHost = await _newsService.GetListTopNewsHotAsync(apiService.TenantId, CultureInfo.CurrentCulture.Name, 4); var newData = JsonConvertHelper.GetObjectFromObject <NewsDetailViewModel>(newsDetail); ViewBag.NewsHot = JsonConvertHelper.GetObjectFromObject <List <NewsSearchViewModel> >(newsHost); ViewBag.NewsDetail = newData; //if (_cache.TryGetValue(CacheParam.BannerRight, out BannerViewModel banners)) //{ // ViewBag.MainBanner = banners; //} //else //{ var listBannerRightData = await _bannerService.GetBannerItemByPositionAsync(apiService.TenantId, GHM.WebsiteClient.Api.Domain.Constants.Position.Right); var listBannerRight = JsonConvertHelper.GetObjectFromObject <BannerViewModel>(listBannerRightData.Data); _cache.Set(CacheParam.BannerRight, listBannerRight, TimeSpan.FromHours(1)); ViewBag.BannerRight = listBannerRight; //} return(View("../News/Detail", newData)); } else if (menuInfo.SubjectType == (GHM.WebsiteClient.Api.Domain.Constants.SubjectType)SubjectType.Product) { var productInfo = await _productService.ProductGetDetail(apiService.TenantId, CultureInfo.CurrentCulture.Name, menuInfo.SubjectId, string.Empty); if (productInfo != null) { ViewBag.ProductInfo = JsonConvertHelper.GetObjectFromObject <ProductSearchViewModel>(productInfo); var productImages = await _productService.ProductImageSearchByProductId(apiService.TenantId, productInfo.Id); ViewBag.ProdutImages = productImages?.Items; var productAttributes = await _productService.ProductAttributeValueGetByProductId(apiService.TenantId, CultureInfo.CurrentCulture.Name, productInfo?.Id); ViewBag.ProudctAttributes = productAttributes?.Items; var productCategories = await _productService.ProductCategoryGetByProductId(apiService.TenantId, CultureInfo.CurrentCulture.Name, productInfo?.Id); ViewBag.ProductCategory = productCategories?.Items; ViewBag.ProductSelectItems = SessionHelper.GetObjectFromJson <List <ProductSelectedItem> >(HttpContext.Session, SessionParam.ShoppingCart); var listProductCategory = await _productService.ProductCategorySearch(apiService.TenantId, CultureInfo.CurrentCulture.Name, string.Empty, null, null, null, int.MaxValue); var listProductCategoryData = JsonConvertHelper.GetObjectFromObject <List <ProductCategorySearchViewModel> >(listProductCategory); ViewBag.ListProductCategory = listProductCategoryData; if (listProductCategoryData != null && listProductCategoryData.Any()) { var trees = RenderTree(listProductCategoryData, null); ViewBag.ProductCategroryTree = trees?.Take(5); } var productHots = await _productService.ProductSearch(apiService.TenantId, CultureInfo.CurrentCulture.Name, string.Empty, true, null, string.Empty, 1, 5); ViewBag.ListProductHot = JsonConvertHelper.GetObjectFromObject <List <ProductSearchViewModel> >(productHots?.Items); return(View("../Product/Detail")); } } else if (menuInfo.SubjectType == (GHM.WebsiteClient.Api.Domain.Constants.SubjectType)SubjectType.ProductCategory) { var categoryInfo = await _productService.ProductCategoryGetDetail(apiService.TenantId, CultureInfo.CurrentCulture.Name, null, int.Parse(menuInfo.SubjectId)); if (categoryInfo != null) { if (!categoryInfo.IsSolution.HasValue || !categoryInfo.IsSolution.Value) { var listProductCategory = await _productService.ProductCategorySearch(apiService.TenantId, CultureInfo.CurrentCulture.Name, string.Empty, null, null, null, int.MaxValue); var listProductCategoryData = JsonConvertHelper.GetObjectFromObject <List <ProductCategorySearchViewModel> >(listProductCategory); ViewBag.ListProductCategory = listProductCategoryData; if (listProductCategoryData != null && listProductCategoryData.Any()) { var trees = RenderTree(listProductCategoryData, null); ViewBag.ProductCategroryTree = trees?.Take(5); } ViewBag.ProductCategoryInfo = JsonConvertHelper.GetObjectFromObject <ProductCategorySearchViewModel>(categoryInfo); ViewBag.ProductCategoryId = categoryInfo?.Id; var products = await _productService.ProductSearchByCategory(apiService.TenantId, CultureInfo.CurrentCulture.Name, categoryInfo?.SeoLink, null, null, 1, 6); ViewBag.ListProduct = products?.Items; ViewBag.TotalProduct = products?.TotalRows; var productHots = await _productService.ProductSearch(apiService.TenantId, CultureInfo.CurrentCulture.Name, string.Empty, true, null, string.Empty, 1, 5); ViewBag.ListProductHot = JsonConvertHelper.GetObjectFromObject <List <ProductSearchViewModel> >(productHots?.Items); return(View("../Product/Category")); } else { var model = JsonConvertHelper.GetObjectFromObject <ProductCategorySearchViewModel>(categoryInfo); var products = await _productService.ProductSearchByParentCategory(apiService.TenantId, CultureInfo.CurrentCulture.Name, null, null, categoryInfo?.Id ?? 0); ViewBag.ListProduct = JsonConvertHelper.GetObjectFromObject <List <ProductWidthCategoryViewModel> >(products?.Items); return(View("../Product/Solution", model)); } } else { return(View("../NotFound/Index")); } } else { return(View("../NotFound/Index")); } } return(View("../NotFound/Index")); }