Beispiel #1
0
        public IViewComponentResult Invoke()
        {
            var    locale  = Request.HttpContext.Features.Get <IRequestCultureFeature>();
            string culture = locale.RequestCulture.UICulture.ToString();

            try
            {
                var pros = _productRepo.GetProForSliders(ProductOfferType.ShowcaseProduct).ToList();
                pros.ShuffleMyList();
                var pro          = pros.Take(10);
                var dtoList      = new List <ShowcaseProductsDto>();
                var photoDtoList = new List <ProductPhotoDto>();

                switch (culture)
                {
                case "tr":
                    ViewBag.title        = "Vitrin Ürünleri";
                    ViewBag.newBadge     = "Yeni";
                    ViewBag.freeShipping = "Ücretsiz Kargo";
                    foreach (var item in pro)
                    {
                        ShowcaseProductsDto dto = new ShowcaseProductsDto();
                        dto.Id   = item.Id;
                        dto.Name = item.NameTR;
                        dto.ProductDescription = item.ProductDescriptionTR;
                        dto.MainPhotoFileName  = item.MainPhotoFileName;
                        dto.ProductNameUrl     = item.ProductNameUrlTR;
                        dto.PhotoAltTag        = item.PhotoAltTagTR;
                        dto.BrandName          = item.Brand.BrandName;
                        dto.BrandNameUrl       = item.Brand.BandNameUrl;
                        dto.HasNewBadge        = item.HasNewBadge;
                        dto.IsFreeShipping     = item.IsFreeShipping;
                        dto.SingleProductHref  = item.MiddleCategory == null ? $"/tr/urun-detay/{dto.BrandNameUrl}/{item.TopCategory.TopCategoryNameUrlTR}/{item.ProductNameUrlTR}" : item.SubCategory == null ? $"/tr/urun-detay/{dto.BrandNameUrl}/{item.TopCategory.TopCategoryNameUrlTR}/{item.MiddleCategory.MiddleCategoryNameUrlTR}/{item.ProductNameUrlTR}" : $"/tr/urun-detay/{dto.BrandNameUrl}/{item.TopCategory.TopCategoryNameUrlTR}/{item.MiddleCategory.MiddleCategoryNameUrlTR}/{item.SubCategory.SubCategoryNameUrlTR}/{item.ProductNameUrlTR}";
                        dto.BrandHref          = $"/tr/markalar/{dto.BrandNameUrl}";
                        dtoList.Add(dto);
                    }
                    break;

                case "en":
                    ViewBag.title        = "Showcase Products";
                    ViewBag.newBadge     = "New";
                    ViewBag.freeShipping = "Free Shipping";
                    foreach (var item in pro)
                    {
                        ShowcaseProductsDto dto = new ShowcaseProductsDto();
                        dto.Id   = item.Id;
                        dto.Name = item.NameEN;
                        dto.ProductDescription = item.ProductDescriptionEN;
                        dto.MainPhotoFileName  = item.MainPhotoFileName;
                        dto.ProductNameUrl     = item.ProductNameUrlEN;
                        dto.PhotoAltTag        = item.PhotoAltTagEN;
                        dto.BrandName          = item.Brand.BrandName;
                        dto.BrandNameUrl       = item.Brand.BandNameUrl;
                        dto.HasNewBadge        = item.HasNewBadge;
                        dto.IsFreeShipping     = item.IsFreeShipping;
                        dto.SingleProductHref  = item.MiddleCategory == null ? $"/en/product-detail/{dto.BrandNameUrl}/{item.TopCategory.TopCategoryNameUrlEN}/{item.ProductNameUrlEN}" : item.SubCategory == null ? $"/en/product-detail/{dto.BrandNameUrl}/{item.TopCategory.TopCategoryNameUrlEN}/{item.MiddleCategory.MiddleCategoryNameUrlEN}/{item.ProductNameUrlEN}" : $"/en/product-detail/{dto.BrandNameUrl}/{item.TopCategory.TopCategoryNameUrlEN}/{item.MiddleCategory.MiddleCategoryNameUrlEN}/{item.SubCategory.SubCategoryNameUrlEN}/{item.ProductNameUrlEN}";
                        dto.BrandHref          = $"/en/brands/{dto.BrandNameUrl}";
                        dtoList.Add(dto);
                    }
                    break;

                case "ru":
                    ViewBag.title        = "витрина продуктов";
                    ViewBag.newBadge     = "новый";
                    ViewBag.freeShipping = "бесплатная доставка";
                    foreach (var item in pro)
                    {
                        ShowcaseProductsDto dto = new ShowcaseProductsDto();
                        dto.Id   = item.Id;
                        dto.Name = item.NameRU;
                        dto.ProductDescription = item.ProductDescriptionRU;
                        dto.MainPhotoFileName  = item.MainPhotoFileName;
                        dto.ProductNameUrl     = item.ProductNameUrlRU;
                        dto.PhotoAltTag        = item.PhotoAltTagRU;
                        dto.BrandName          = item.Brand.BrandName;
                        dto.BrandNameUrl       = item.Brand.BandNameUrl;
                        dto.HasNewBadge        = item.HasNewBadge;
                        dto.IsFreeShipping     = item.IsFreeShipping;
                        dto.SingleProductHref  = item.MiddleCategory == null ? $"/ru/product-detail/{dto.BrandNameUrl}/{item.TopCategory.TopCategoryNameUrlRU}/{item.ProductNameUrlRU}" : item.SubCategory == null ? $"/ru/product-detail/{dto.BrandNameUrl}/{item.TopCategory.TopCategoryNameUrlRU}/{item.MiddleCategory.MiddleCategoryNameUrlRU}/{item.ProductNameUrlRU}" : $"/ru/product-detail/{dto.BrandNameUrl}/{item.TopCategory.TopCategoryNameUrlRU}/{item.MiddleCategory.MiddleCategoryNameUrlRU}/{item.SubCategory.SubCategoryNameUrlRU}/{item.ProductNameUrlRU}";
                        dto.BrandHref          = $"/ru/brands/{dto.BrandNameUrl}";
                        dtoList.Add(dto);
                    }
                    break;

                default:
                    ViewBag.title        = "Showcase Products";
                    ViewBag.newBadge     = "New";
                    ViewBag.freeShipping = "Free Shipping";
                    foreach (var item in pro)
                    {
                        ShowcaseProductsDto dto = new ShowcaseProductsDto();
                        dto.Id   = item.Id;
                        dto.Name = item.NameEN;
                        dto.ProductDescription = item.ProductDescriptionEN;
                        dto.MainPhotoFileName  = item.MainPhotoFileName;
                        dto.ProductNameUrl     = item.ProductNameUrlEN;
                        dto.PhotoAltTag        = item.PhotoAltTagEN;
                        dto.BrandName          = item.Brand.BrandName;
                        dto.BrandNameUrl       = item.Brand.BandNameUrl;
                        dto.HasNewBadge        = item.HasNewBadge;
                        dto.IsFreeShipping     = item.IsFreeShipping;
                        dto.SingleProductHref  = item.MiddleCategory == null ? $"/en/product-detail/{dto.BrandNameUrl}/{item.TopCategory.TopCategoryNameUrlEN}/{item.ProductNameUrlEN}" : item.SubCategory == null ? $"/en/product-detail/{dto.BrandNameUrl}/{item.TopCategory.TopCategoryNameUrlEN}/{item.MiddleCategory.MiddleCategoryNameUrlEN}/{item.ProductNameUrlEN}" : $"/en/product-detail/{dto.BrandNameUrl}/{item.TopCategory.TopCategoryNameUrlEN}/{item.MiddleCategory.MiddleCategoryNameUrlEN}/{item.SubCategory.SubCategoryNameUrlEN}/{item.ProductNameUrlEN}";
                        dto.BrandHref          = $"/en/brands/{dto.BrandNameUrl}";
                        dtoList.Add(dto);
                    }
                    break;
                }
                return(View(dtoList));
            }
            catch (Exception e)
            {
                _errorRepo.CreateEntity(new ErrorLog
                {
                    ErrorLocation = "ShowcaseProductsComponent",
                    ErrorDetail   = e.Message + " , " + e.InnerException,
                    ErrorUrl      = HttpContext.Request.Path,
                    Culture       = culture
                });
                return(null);
            }
        }
        public IViewComponentResult Invoke()
        {
            var    locale  = Request.HttpContext.Features.Get <IRequestCultureFeature>();
            string culture = locale.RequestCulture.UICulture.ToString();

            try
            {
                var proTabsDto         = new ProductTabsDto();
                var campaignProducts   = _productRepo.GetProForSliders(ProductOfferType.CampaignProduct).ToList();
                var onSaleProducts     = _productRepo.GetProForSliders(ProductOfferType.OnSaleProduct).ToList();
                var weeklyDealProducts = _productRepo.GetProForSliders(ProductOfferType.WeeklyDealProduct).ToList();
                var newProducts        = _productRepo.GetProForSliders(ProductOfferType.NewProduct).OrderByDescending(x => x.CreatedDate).OrderByDescending(x => x.UpdatedDate).ToList();

                campaignProducts.ShuffleMyList();
                onSaleProducts.ShuffleMyList();
                weeklyDealProducts.ShuffleMyList();
                newProducts.ShuffleMyList();
                ViewBag.cul = culture;
                switch (culture)
                {
                case "tr":
                    proTabsDto.CampaignProductsTitle   = "KAMPANYALI ÜRÜNLER";
                    proTabsDto.OnSaleProductsTitle     = "İNDİRİMDEKİLER";
                    proTabsDto.WeeklyDealProductsTitle = "HAFTANIN ÜRÜNLERİ";
                    proTabsDto.NewProductsTitle        = "YENİ ÜRÜNLER";
                    proTabsDto.FreeShippingText        = "Ücretsiz Kargo";
                    proTabsDto.NewBadgeText            = "Yeni";

                    foreach (var item in campaignProducts.Take(8))
                    {
                        ShowcaseProductsDto dto = new ShowcaseProductsDto();
                        dto.Id   = item.Id;
                        dto.Name = item.NameTR;
                        dto.ProductDescription = item.ProductDescriptionTR;
                        dto.MainPhotoFileName  = item.MainPhotoFileName;
                        dto.ProductNameUrl     = item.ProductNameUrlTR;
                        dto.PhotoAltTag        = item.PhotoAltTagTR;
                        dto.BrandName          = item.Brand.BrandName;
                        dto.BrandNameUrl       = item.Brand.BandNameUrl;
                        dto.HasNewBadge        = item.HasNewBadge;
                        dto.IsFreeShipping     = item.IsFreeShipping;
                        dto.SingleProductHref  = item.MiddleCategory == null ? $"/tr/urun-detay/{dto.BrandNameUrl}/{item.TopCategory.TopCategoryNameUrlTR}/{item.ProductNameUrlTR}" : item.SubCategory == null ? $"/tr/urun-detay/{dto.BrandNameUrl}/{item.TopCategory.TopCategoryNameUrlTR}/{item.MiddleCategory.MiddleCategoryNameUrlTR}/{item.ProductNameUrlTR}" : $"/tr/urun-detay/{dto.BrandNameUrl}/{item.TopCategory.TopCategoryNameUrlTR}/{item.MiddleCategory.MiddleCategoryNameUrlTR}/{item.SubCategory.SubCategoryNameUrlTR}/{item.ProductNameUrlTR}";
                        dto.BrandHref          = $"/tr/markalar/{dto.BrandNameUrl}";
                        proTabsDto.CampaignProducts.Add(dto);
                    }
                    foreach (var item in onSaleProducts.Take(8))
                    {
                        ShowcaseProductsDto dto = new ShowcaseProductsDto();
                        dto.Id   = item.Id;
                        dto.Name = item.NameTR;
                        dto.ProductDescription = item.ProductDescriptionTR;
                        dto.MainPhotoFileName  = item.MainPhotoFileName;
                        dto.ProductNameUrl     = item.ProductNameUrlTR;
                        dto.PhotoAltTag        = item.PhotoAltTagTR;
                        dto.BrandName          = item.Brand.BrandName;
                        dto.BrandNameUrl       = item.Brand.BandNameUrl;
                        dto.HasNewBadge        = item.HasNewBadge;
                        dto.IsFreeShipping     = item.IsFreeShipping;
                        dto.SingleProductHref  = item.MiddleCategory == null ? $"/tr/urun-detay/{dto.BrandNameUrl}/{item.TopCategory.TopCategoryNameUrlTR}/{item.ProductNameUrlTR}" : item.SubCategory == null ? $"/tr/urun-detay/{dto.BrandNameUrl}/{item.TopCategory.TopCategoryNameUrlTR}/{item.MiddleCategory.MiddleCategoryNameUrlTR}/{item.ProductNameUrlTR}" : $"/tr/urun-detay/{dto.BrandNameUrl}/{item.TopCategory.TopCategoryNameUrlTR}/{item.MiddleCategory.MiddleCategoryNameUrlTR}/{item.SubCategory.SubCategoryNameUrlTR}/{item.ProductNameUrlTR}";
                        dto.BrandHref          = $"/tr/markalar/{dto.BrandNameUrl}";
                        proTabsDto.OnSaleProducts.Add(dto);
                    }
                    foreach (var item in weeklyDealProducts.Take(8))
                    {
                        ShowcaseProductsDto dto = new ShowcaseProductsDto();
                        dto.Id   = item.Id;
                        dto.Name = item.NameTR;
                        dto.ProductDescription = item.ProductDescriptionTR;
                        dto.MainPhotoFileName  = item.MainPhotoFileName;
                        dto.ProductNameUrl     = item.ProductNameUrlTR;
                        dto.PhotoAltTag        = item.PhotoAltTagTR;
                        dto.BrandName          = item.Brand.BrandName;
                        dto.BrandNameUrl       = item.Brand.BandNameUrl;
                        dto.HasNewBadge        = item.HasNewBadge;
                        dto.IsFreeShipping     = item.IsFreeShipping;
                        dto.SingleProductHref  = item.MiddleCategory == null ? $"/tr/urun-detay/{dto.BrandNameUrl}/{item.TopCategory.TopCategoryNameUrlTR}/{item.ProductNameUrlTR}" : item.SubCategory == null ? $"/tr/urun-detay/{dto.BrandNameUrl}/{item.TopCategory.TopCategoryNameUrlTR}/{item.MiddleCategory.MiddleCategoryNameUrlTR}/{item.ProductNameUrlTR}" : $"/tr/urun-detay/{dto.BrandNameUrl}/{item.TopCategory.TopCategoryNameUrlTR}/{item.MiddleCategory.MiddleCategoryNameUrlTR}/{item.SubCategory.SubCategoryNameUrlTR}/{item.ProductNameUrlTR}";
                        dto.BrandHref          = $"/tr/markalar/{dto.BrandNameUrl}";
                        proTabsDto.WeeklyDealProducts.Add(dto);
                    }
                    foreach (var item in newProducts.Take(8))
                    {
                        ShowcaseProductsDto dto = new ShowcaseProductsDto();
                        dto.Id   = item.Id;
                        dto.Name = item.NameTR;
                        dto.ProductDescription = item.ProductDescriptionTR;
                        dto.MainPhotoFileName  = item.MainPhotoFileName;
                        dto.ProductNameUrl     = item.ProductNameUrlTR;
                        dto.PhotoAltTag        = item.PhotoAltTagTR;
                        dto.BrandName          = item.Brand.BrandName;
                        dto.BrandNameUrl       = item.Brand.BandNameUrl;
                        dto.HasNewBadge        = item.HasNewBadge;
                        dto.IsFreeShipping     = item.IsFreeShipping;
                        dto.SingleProductHref  = item.MiddleCategory == null ? $"/tr/urun-detay/{dto.BrandNameUrl}/{item.TopCategory.TopCategoryNameUrlTR}/{item.ProductNameUrlTR}" : item.SubCategory == null ? $"/tr/urun-detay/{dto.BrandNameUrl}/{item.TopCategory.TopCategoryNameUrlTR}/{item.MiddleCategory.MiddleCategoryNameUrlTR}/{item.ProductNameUrlTR}" : $"/tr/urun-detay/{dto.BrandNameUrl}/{item.TopCategory.TopCategoryNameUrlTR}/{item.MiddleCategory.MiddleCategoryNameUrlTR}/{item.SubCategory.SubCategoryNameUrlTR}/{item.ProductNameUrlTR}";
                        dto.BrandHref          = $"/tr/markalar/{dto.BrandNameUrl}";
                        proTabsDto.NewProducts.Add(dto);
                    }
                    break;

                case "en":
                    proTabsDto.CampaignProductsTitle   = "CAMPAIGN PRODUCTS";
                    proTabsDto.OnSaleProductsTitle     = "DISCOUNTED";
                    proTabsDto.WeeklyDealProductsTitle = "PRODUCTS OF THE WEEK";
                    proTabsDto.NewProductsTitle        = "NEW PRODUCTS";
                    proTabsDto.FreeShippingText        = "Free Shipping";
                    proTabsDto.NewBadgeText            = "New";
                    foreach (var item in campaignProducts.Take(8))
                    {
                        ShowcaseProductsDto dto = new ShowcaseProductsDto();
                        dto.Id   = item.Id;
                        dto.Name = item.NameEN;
                        dto.ProductDescription = item.ProductDescriptionEN;
                        dto.MainPhotoFileName  = item.MainPhotoFileName;
                        dto.ProductNameUrl     = item.ProductNameUrlEN;
                        dto.PhotoAltTag        = item.PhotoAltTagEN;
                        dto.BrandName          = item.Brand.BrandName;
                        dto.BrandNameUrl       = item.Brand.BandNameUrl;
                        dto.HasNewBadge        = item.HasNewBadge;
                        dto.IsFreeShipping     = item.IsFreeShipping;
                        dto.SingleProductHref  = item.MiddleCategory == null ? $"/en/product-detail/{dto.BrandNameUrl}/{item.TopCategory.TopCategoryNameUrlEN}/{item.ProductNameUrlEN}" : item.SubCategory == null ? $"/en/product-detail/{dto.BrandNameUrl}/{item.TopCategory.TopCategoryNameUrlEN}/{item.MiddleCategory.MiddleCategoryNameUrlEN}/{item.ProductNameUrlEN}" : $"/en/product-detail/{dto.BrandNameUrl}/{item.TopCategory.TopCategoryNameUrlEN}/{item.MiddleCategory.MiddleCategoryNameUrlEN}/{item.SubCategory.SubCategoryNameUrlEN}/{item.ProductNameUrlEN}";
                        dto.BrandHref          = $"/en/brands/{dto.BrandNameUrl}";
                        proTabsDto.CampaignProducts.Add(dto);
                    }
                    foreach (var item in onSaleProducts.Take(8))
                    {
                        ShowcaseProductsDto dto = new ShowcaseProductsDto();
                        dto.Id   = item.Id;
                        dto.Name = item.NameEN;
                        dto.ProductDescription = item.ProductDescriptionEN;
                        dto.MainPhotoFileName  = item.MainPhotoFileName;
                        dto.ProductNameUrl     = item.ProductNameUrlEN;
                        dto.PhotoAltTag        = item.PhotoAltTagEN;
                        dto.BrandName          = item.Brand.BrandName;
                        dto.BrandNameUrl       = item.Brand.BandNameUrl;
                        dto.HasNewBadge        = item.HasNewBadge;
                        dto.IsFreeShipping     = item.IsFreeShipping;
                        dto.SingleProductHref  = item.MiddleCategory == null ? $"/en/product-detail/{dto.BrandNameUrl}/{item.TopCategory.TopCategoryNameUrlEN}/{item.ProductNameUrlEN}" : item.SubCategory == null ? $"/en/product-detail/{dto.BrandNameUrl}/{item.TopCategory.TopCategoryNameUrlEN}/{item.MiddleCategory.MiddleCategoryNameUrlEN}/{item.ProductNameUrlEN}" : $"/en/product-detail/{dto.BrandNameUrl}/{item.TopCategory.TopCategoryNameUrlEN}/{item.MiddleCategory.MiddleCategoryNameUrlEN}/{item.SubCategory.SubCategoryNameUrlEN}/{item.ProductNameUrlEN}";
                        dto.BrandHref          = $"/en/brands/{dto.BrandNameUrl}";
                        proTabsDto.OnSaleProducts.Add(dto);
                    }
                    foreach (var item in weeklyDealProducts.Take(8))
                    {
                        ShowcaseProductsDto dto = new ShowcaseProductsDto();
                        dto.Id   = item.Id;
                        dto.Name = item.NameEN;
                        dto.ProductDescription = item.ProductDescriptionEN;
                        dto.MainPhotoFileName  = item.MainPhotoFileName;
                        dto.ProductNameUrl     = item.ProductNameUrlEN;
                        dto.PhotoAltTag        = item.PhotoAltTagEN;
                        dto.BrandName          = item.Brand.BrandName;
                        dto.BrandNameUrl       = item.Brand.BandNameUrl;
                        dto.HasNewBadge        = item.HasNewBadge;
                        dto.IsFreeShipping     = item.IsFreeShipping;
                        dto.SingleProductHref  = item.MiddleCategory == null ? $"/en/product-detail/{dto.BrandNameUrl}/{item.TopCategory.TopCategoryNameUrlEN}/{item.ProductNameUrlEN}" : item.SubCategory == null ? $"/en/product-detail/{dto.BrandNameUrl}/{item.TopCategory.TopCategoryNameUrlEN}/{item.MiddleCategory.MiddleCategoryNameUrlEN}/{item.ProductNameUrlEN}" : $"/en/product-detail/{dto.BrandNameUrl}/{item.TopCategory.TopCategoryNameUrlEN}/{item.MiddleCategory.MiddleCategoryNameUrlEN}/{item.SubCategory.SubCategoryNameUrlEN}/{item.ProductNameUrlEN}";
                        dto.BrandHref          = $"/en/brands/{dto.BrandNameUrl}";
                        proTabsDto.WeeklyDealProducts.Add(dto);
                    }
                    foreach (var item in newProducts.Take(8))
                    {
                        ShowcaseProductsDto dto = new ShowcaseProductsDto();
                        dto.Id   = item.Id;
                        dto.Name = item.NameEN;
                        dto.ProductDescription = item.ProductDescriptionEN;
                        dto.MainPhotoFileName  = item.MainPhotoFileName;
                        dto.ProductNameUrl     = item.ProductNameUrlEN;
                        dto.PhotoAltTag        = item.PhotoAltTagEN;
                        dto.BrandName          = item.Brand.BrandName;
                        dto.BrandNameUrl       = item.Brand.BandNameUrl;
                        dto.HasNewBadge        = item.HasNewBadge;
                        dto.IsFreeShipping     = item.IsFreeShipping;
                        dto.SingleProductHref  = item.MiddleCategory == null ? $"/en/product-detail/{dto.BrandNameUrl}/{item.TopCategory.TopCategoryNameUrlEN}/{item.ProductNameUrlEN}" : item.SubCategory == null ? $"/en/product-detail/{dto.BrandNameUrl}/{item.TopCategory.TopCategoryNameUrlEN}/{item.MiddleCategory.MiddleCategoryNameUrlEN}/{item.ProductNameUrlEN}" : $"/en/product-detail/{dto.BrandNameUrl}/{item.TopCategory.TopCategoryNameUrlEN}/{item.MiddleCategory.MiddleCategoryNameUrlEN}/{item.SubCategory.SubCategoryNameUrlEN}/{item.ProductNameUrlEN}";
                        dto.BrandHref          = $"/en/brands/{dto.BrandNameUrl}";
                        proTabsDto.NewProducts.Add(dto);
                    }
                    break;

                case "ru":
                    proTabsDto.CampaignProductsTitle   = "АГИТАЦИОННУЮ ПРОДУКЦИЮ";
                    proTabsDto.OnSaleProductsTitle     = "ДИСКОНТИРОВАННЫЙ";
                    proTabsDto.WeeklyDealProductsTitle = "ПРОДУКТЫ НЕДЕЛИ";
                    proTabsDto.NewProductsTitle        = "НОВЫЕ ПРОДУКТЫ";
                    proTabsDto.FreeShippingText        = "бесплатная доставка";
                    proTabsDto.NewBadgeText            = "новый";
                    foreach (var item in campaignProducts.Take(8))
                    {
                        ShowcaseProductsDto dto = new ShowcaseProductsDto();
                        dto.Id   = item.Id;
                        dto.Name = item.NameRU;
                        dto.ProductDescription = item.ProductDescriptionRU;
                        dto.MainPhotoFileName  = item.MainPhotoFileName;
                        dto.ProductNameUrl     = item.ProductNameUrlRU;
                        dto.PhotoAltTag        = item.PhotoAltTagRU;
                        dto.BrandName          = item.Brand.BrandName;
                        dto.BrandNameUrl       = item.Brand.BandNameUrl;
                        dto.HasNewBadge        = item.HasNewBadge;
                        dto.IsFreeShipping     = item.IsFreeShipping;
                        dto.SingleProductHref  = item.MiddleCategory == null ? $"/ru/product-detail/{dto.BrandNameUrl}/{item.TopCategory.TopCategoryNameUrlEN}/{item.ProductNameUrlEN}" : item.SubCategory == null ? $"/ru/product-detail/{dto.BrandNameUrl}/{item.TopCategory.TopCategoryNameUrlEN}/{item.MiddleCategory.MiddleCategoryNameUrlEN}/{item.ProductNameUrlEN}" : $"/ru/product-detail/{dto.BrandNameUrl}/{item.TopCategory.TopCategoryNameUrlEN}/{item.MiddleCategory.MiddleCategoryNameUrlEN}/{item.SubCategory.SubCategoryNameUrlEN}/{item.ProductNameUrlEN}";
                        dto.BrandHref          = $"/ru/brands/{dto.BrandNameUrl}";
                        proTabsDto.CampaignProducts.Add(dto);
                    }
                    foreach (var item in onSaleProducts.Take(8))
                    {
                        ShowcaseProductsDto dto = new ShowcaseProductsDto();
                        dto.Id   = item.Id;
                        dto.Name = item.NameRU;
                        dto.ProductDescription = item.ProductDescriptionRU;
                        dto.MainPhotoFileName  = item.MainPhotoFileName;
                        dto.ProductNameUrl     = item.ProductNameUrlRU;
                        dto.PhotoAltTag        = item.PhotoAltTagRU;
                        dto.BrandName          = item.Brand.BrandName;
                        dto.BrandNameUrl       = item.Brand.BandNameUrl;
                        dto.HasNewBadge        = item.HasNewBadge;
                        dto.IsFreeShipping     = item.IsFreeShipping;
                        dto.SingleProductHref  = item.MiddleCategory == null ? $"/ru/product-detail/{dto.BrandNameUrl}/{item.TopCategory.TopCategoryNameUrlEN}/{item.ProductNameUrlEN}" : item.SubCategory == null ? $"/ru/product-detail/{dto.BrandNameUrl}/{item.TopCategory.TopCategoryNameUrlEN}/{item.MiddleCategory.MiddleCategoryNameUrlEN}/{item.ProductNameUrlEN}" : $"/ru/product-detail/{dto.BrandNameUrl}/{item.TopCategory.TopCategoryNameUrlEN}/{item.MiddleCategory.MiddleCategoryNameUrlEN}/{item.SubCategory.SubCategoryNameUrlEN}/{item.ProductNameUrlEN}";
                        dto.BrandHref          = $"/ru/brands/{dto.BrandNameUrl}";
                        proTabsDto.OnSaleProducts.Add(dto);
                    }
                    foreach (var item in weeklyDealProducts.Take(8))
                    {
                        ShowcaseProductsDto dto = new ShowcaseProductsDto();
                        dto.Id   = item.Id;
                        dto.Name = item.NameRU;
                        dto.ProductDescription = item.ProductDescriptionRU;
                        dto.MainPhotoFileName  = item.MainPhotoFileName;
                        dto.ProductNameUrl     = item.ProductNameUrlRU;
                        dto.PhotoAltTag        = item.PhotoAltTagRU;
                        dto.BrandName          = item.Brand.BrandName;
                        dto.BrandNameUrl       = item.Brand.BandNameUrl;
                        dto.HasNewBadge        = item.HasNewBadge;
                        dto.IsFreeShipping     = item.IsFreeShipping;
                        dto.SingleProductHref  = item.MiddleCategory == null ? $"/ru/product-detail/{dto.BrandNameUrl}/{item.TopCategory.TopCategoryNameUrlEN}/{item.ProductNameUrlEN}" : item.SubCategory == null ? $"/ru/product-detail/{dto.BrandNameUrl}/{item.TopCategory.TopCategoryNameUrlEN}/{item.MiddleCategory.MiddleCategoryNameUrlEN}/{item.ProductNameUrlEN}" : $"/ru/product-detail/{dto.BrandNameUrl}/{item.TopCategory.TopCategoryNameUrlEN}/{item.MiddleCategory.MiddleCategoryNameUrlEN}/{item.SubCategory.SubCategoryNameUrlEN}/{item.ProductNameUrlEN}";
                        dto.BrandHref          = $"/ru/brands/{dto.BrandNameUrl}";
                        proTabsDto.WeeklyDealProducts.Add(dto);
                    }
                    foreach (var item in newProducts.Take(8))
                    {
                        ShowcaseProductsDto dto = new ShowcaseProductsDto();
                        dto.Id   = item.Id;
                        dto.Name = item.NameRU;
                        dto.ProductDescription = item.ProductDescriptionRU;
                        dto.MainPhotoFileName  = item.MainPhotoFileName;
                        dto.ProductNameUrl     = item.ProductNameUrlRU;
                        dto.PhotoAltTag        = item.PhotoAltTagRU;
                        dto.BrandName          = item.Brand.BrandName;
                        dto.BrandNameUrl       = item.Brand.BandNameUrl;
                        dto.HasNewBadge        = item.HasNewBadge;
                        dto.IsFreeShipping     = item.IsFreeShipping;
                        dto.SingleProductHref  = item.MiddleCategory == null ? $"/ru/product-detail/{dto.BrandNameUrl}/{item.TopCategory.TopCategoryNameUrlEN}/{item.ProductNameUrlEN}" : item.SubCategory == null ? $"/ru/product-detail/{dto.BrandNameUrl}/{item.TopCategory.TopCategoryNameUrlEN}/{item.MiddleCategory.MiddleCategoryNameUrlEN}/{item.ProductNameUrlEN}" : $"/ru/product-detail/{dto.BrandNameUrl}/{item.TopCategory.TopCategoryNameUrlEN}/{item.MiddleCategory.MiddleCategoryNameUrlEN}/{item.SubCategory.SubCategoryNameUrlEN}/{item.ProductNameUrlEN}";
                        dto.BrandHref          = $"/ru/brands/{dto.BrandNameUrl}";
                        proTabsDto.NewProducts.Add(dto);
                    }
                    break;

                default:
                    proTabsDto.CampaignProductsTitle   = "CAMPAIGN PRODUCTS";
                    proTabsDto.OnSaleProductsTitle     = "DISCOUNTED";
                    proTabsDto.WeeklyDealProductsTitle = "PRODUCTS OF THE WEEK";
                    proTabsDto.NewProductsTitle        = "NEW PRODUCTS";
                    proTabsDto.FreeShippingText        = "Free Shipping";
                    proTabsDto.NewBadgeText            = "New";
                    foreach (var item in campaignProducts.Take(8))
                    {
                        ShowcaseProductsDto dto = new ShowcaseProductsDto();
                        dto.Id   = item.Id;
                        dto.Name = item.NameEN;
                        dto.ProductDescription = item.ProductDescriptionEN;
                        dto.MainPhotoFileName  = item.MainPhotoFileName;
                        dto.ProductNameUrl     = item.ProductNameUrlEN;
                        dto.PhotoAltTag        = item.PhotoAltTagEN;
                        dto.BrandName          = item.Brand.BrandName;
                        dto.BrandNameUrl       = item.Brand.BandNameUrl;
                        dto.HasNewBadge        = item.HasNewBadge;
                        dto.IsFreeShipping     = item.IsFreeShipping;
                        dto.SingleProductHref  = item.MiddleCategory == null ? $"/en/product-detail/{dto.BrandNameUrl}/{item.TopCategory.TopCategoryNameUrlEN}/{item.ProductNameUrlEN}" : item.SubCategory == null ? $"/en/product-detail/{dto.BrandNameUrl}/{item.TopCategory.TopCategoryNameUrlEN}/{item.MiddleCategory.MiddleCategoryNameUrlEN}/{item.ProductNameUrlEN}" : $"/en/product-detail/{dto.BrandNameUrl}/{item.TopCategory.TopCategoryNameUrlEN}/{item.MiddleCategory.MiddleCategoryNameUrlEN}/{item.SubCategory.SubCategoryNameUrlEN}/{item.ProductNameUrlEN}";
                        dto.BrandHref          = $"/en/brands/{dto.BrandNameUrl}";
                        proTabsDto.CampaignProducts.Add(dto);
                    }
                    foreach (var item in onSaleProducts.Take(8))
                    {
                        ShowcaseProductsDto dto = new ShowcaseProductsDto();
                        dto.Id   = item.Id;
                        dto.Name = item.NameEN;
                        dto.ProductDescription = item.ProductDescriptionEN;
                        dto.MainPhotoFileName  = item.MainPhotoFileName;
                        dto.ProductNameUrl     = item.ProductNameUrlEN;
                        dto.PhotoAltTag        = item.PhotoAltTagEN;
                        dto.BrandName          = item.Brand.BrandName;
                        dto.BrandNameUrl       = item.Brand.BandNameUrl;
                        dto.HasNewBadge        = item.HasNewBadge;
                        dto.IsFreeShipping     = item.IsFreeShipping;
                        dto.SingleProductHref  = item.MiddleCategory == null ? $"/en/product-detail/{dto.BrandNameUrl}/{item.TopCategory.TopCategoryNameUrlEN}/{item.ProductNameUrlEN}" : item.SubCategory == null ? $"/en/product-detail/{dto.BrandNameUrl}/{item.TopCategory.TopCategoryNameUrlEN}/{item.MiddleCategory.MiddleCategoryNameUrlEN}/{item.ProductNameUrlEN}" : $"/en/product-detail/{dto.BrandNameUrl}/{item.TopCategory.TopCategoryNameUrlEN}/{item.MiddleCategory.MiddleCategoryNameUrlEN}/{item.SubCategory.SubCategoryNameUrlEN}/{item.ProductNameUrlEN}";
                        dto.BrandHref          = $"/en/brands/{dto.BrandNameUrl}";
                        proTabsDto.OnSaleProducts.Add(dto);
                    }
                    foreach (var item in weeklyDealProducts.Take(8))
                    {
                        ShowcaseProductsDto dto = new ShowcaseProductsDto();
                        dto.Id   = item.Id;
                        dto.Name = item.NameEN;
                        dto.ProductDescription = item.ProductDescriptionEN;
                        dto.MainPhotoFileName  = item.MainPhotoFileName;
                        dto.ProductNameUrl     = item.ProductNameUrlEN;
                        dto.PhotoAltTag        = item.PhotoAltTagEN;
                        dto.BrandName          = item.Brand.BrandName;
                        dto.BrandNameUrl       = item.Brand.BandNameUrl;
                        dto.HasNewBadge        = item.HasNewBadge;
                        dto.IsFreeShipping     = item.IsFreeShipping;
                        dto.SingleProductHref  = item.MiddleCategory == null ? $"/en/product-detail/{dto.BrandNameUrl}/{item.TopCategory.TopCategoryNameUrlEN}/{item.ProductNameUrlEN}" : item.SubCategory == null ? $"/en/product-detail/{dto.BrandNameUrl}/{item.TopCategory.TopCategoryNameUrlEN}/{item.MiddleCategory.MiddleCategoryNameUrlEN}/{item.ProductNameUrlEN}" : $"/en/product-detail/{dto.BrandNameUrl}/{item.TopCategory.TopCategoryNameUrlEN}/{item.MiddleCategory.MiddleCategoryNameUrlEN}/{item.SubCategory.SubCategoryNameUrlEN}/{item.ProductNameUrlEN}";
                        dto.BrandHref          = $"/en/brands/{dto.BrandNameUrl}";
                        proTabsDto.WeeklyDealProducts.Add(dto);
                    }
                    foreach (var item in newProducts.Take(8))
                    {
                        ShowcaseProductsDto dto = new ShowcaseProductsDto();
                        dto.Id   = item.Id;
                        dto.Name = item.NameEN;
                        dto.ProductDescription = item.ProductDescriptionEN;
                        dto.MainPhotoFileName  = item.MainPhotoFileName;
                        dto.ProductNameUrl     = item.ProductNameUrlEN;
                        dto.PhotoAltTag        = item.PhotoAltTagEN;
                        dto.BrandName          = item.Brand.BrandName;
                        dto.BrandNameUrl       = item.Brand.BandNameUrl;
                        dto.HasNewBadge        = item.HasNewBadge;
                        dto.IsFreeShipping     = item.IsFreeShipping;
                        dto.SingleProductHref  = item.MiddleCategory == null ? $"/en/product-detail/{dto.BrandNameUrl}/{item.TopCategory.TopCategoryNameUrlEN}/{item.ProductNameUrlEN}" : item.SubCategory == null ? $"/en/product-detail/{dto.BrandNameUrl}/{item.TopCategory.TopCategoryNameUrlEN}/{item.MiddleCategory.MiddleCategoryNameUrlEN}/{item.ProductNameUrlEN}" : $"/en/product-detail/{dto.BrandNameUrl}/{item.TopCategory.TopCategoryNameUrlEN}/{item.MiddleCategory.MiddleCategoryNameUrlEN}/{item.SubCategory.SubCategoryNameUrlEN}/{item.ProductNameUrlEN}";
                        dto.BrandHref          = $"/en/brands/{dto.BrandNameUrl}";
                        proTabsDto.NewProducts.Add(dto);
                    }
                    break;
                }

                return(View(proTabsDto));
            }
            catch (Exception e)
            {
                _errorRepo.CreateEntity(new ErrorLog
                {
                    ErrorLocation = "ProductTabsComponent",
                    ErrorDetail   = e.Message + " , " + e.InnerException,
                    ErrorUrl      = HttpContext.Request.Path,
                    Culture       = culture
                });
                return(null);
            }
        }