Esempio n. 1
0
        public string ReturnGenericName(int sliderId)
        {
            var sliderDb = _sliderRepo.GetEntityById(sliderId);

            //Ana
            if (sliderDb.TargetTopCategoryId != null && sliderDb.TargetMiddleCategoryId == null && sliderDb.TargetSubCategoryId == null && sliderDb.TargetBrandId == null && sliderDb.TargetProductId == null)
            {
                return(_topRepo.GetEntityById((int)sliderDb.TargetTopCategoryId).NameTR);
            }
            //Orta
            else if (sliderDb.TargetMiddleCategoryId != null && sliderDb.TargetTopCategoryId != null && sliderDb.TargetSubCategoryId == null && sliderDb.TargetBrandId == null && sliderDb.TargetProductId == null)
            {
                return(_midRepo.GetEntityById((int)sliderDb.TargetMiddleCategoryId).NameTR);
            }
            //Alt
            else if (sliderDb.TargetMiddleCategoryId != null && sliderDb.TargetTopCategoryId != null && sliderDb.TargetSubCategoryId != null && sliderDb.TargetBrandId == null && sliderDb.TargetProductId == null)
            {
                return(_subRepo.GetEntityById((int)sliderDb.TargetSubCategoryId).NameTR);
            }
            //Marka
            else if (sliderDb.TargetBrandId != null && sliderDb.TargetTopCategoryId == null && sliderDb.TargetMiddleCategoryId == null && sliderDb.TargetSubCategoryId == null && sliderDb.TargetProductId == null)
            {
                return(_brandRepo.GetEntityById((int)sliderDb.TargetBrandId).BrandName);
            }
            //Ürün
            else if (sliderDb.TargetProductId != null && sliderDb.TargetBrandId == null && sliderDb.TargetTopCategoryId == null && sliderDb.TargetMiddleCategoryId == null && sliderDb.TargetSubCategoryId == null && sliderDb.TargetBrandId == null)
            {
                return(_productRepo.GetEntityById((int)sliderDb.TargetProductId).NameTR);
            }
            return(null);
        }
        public IActionResult SetLanguage(string culture, string returnUrl)
        {
            try
            {
                Response.Cookies.Append(
                    CookieRequestCultureProvider.DefaultCookieName,
                    CookieRequestCultureProvider.MakeCookieValue(new RequestCulture(culture)),
                    new CookieOptions {
                    Expires = DateTime.Now.AddDays(1)
                }
                    );

                HttpContext.Session.SetString("culture", culture);

                string[] urlArr = returnUrl.Split("/");

                //anasayfadan geliyorsa
                if (urlArr.Length == 2 && urlArr[0].Equals("") && urlArr[1].Equals(""))
                {
                    return(LocalRedirect("/"));
                }

                //hakkımızda sayfasından geliyorsa
                if (urlArr.Length == 3 && (urlArr[2].Equals("hakkimizda") || urlArr[2].Equals("about-us")))
                {
                    if (culture.Equals("tr"))
                    {
                        return(LocalRedirect("/tr/hakkimizda"));
                    }
                    if (culture.Equals("ru"))
                    {
                        return(LocalRedirect("/ru/about-us"));
                    }
                    else
                    {
                        return(LocalRedirect("/en/about-us"));
                    }
                }

                //iletişim sayfasından geliyorsa
                if (urlArr.Length == 3 && (urlArr[2].Equals("iletisim") || urlArr[2].Equals("contact-us")))
                {
                    if (culture.Equals("tr"))
                    {
                        return(LocalRedirect("/tr/iletisim"));
                    }
                    if (culture.Equals("ru"))
                    {
                        return(LocalRedirect("/ru/contact-us"));
                    }
                    else
                    {
                        return(LocalRedirect("/en/contact-us"));
                    }
                }

                //login sayfasından geliyorsa
                if (urlArr.Length == 3 && (urlArr[2].Equals("uye-girisi") || urlArr[2].Equals("login")))
                {
                    if (culture.Equals("tr"))
                    {
                        return(LocalRedirect("/tr/uye-girisi"));
                    }
                    if (culture.Equals("ru"))
                    {
                        return(LocalRedirect("/ru/login"));
                    }
                    else
                    {
                        return(LocalRedirect("/en/login"));
                    }
                }

                //Register sayfasından geliyorsa
                if (urlArr.Length == 3 && (urlArr[2].Equals("yeni-uye-kaydi") || urlArr[2].Equals("register")))
                {
                    if (culture.Equals("tr"))
                    {
                        return(LocalRedirect("/tr/yeni-uye-kaydi"));
                    }
                    if (culture.Equals("ru"))
                    {
                        return(LocalRedirect("/ru/register"));
                    }
                    else
                    {
                        return(LocalRedirect("/en/register"));
                    }
                }

                //Userpanel sayfasından geliyorsa
                if (urlArr.Length == 3 && (urlArr[2].Equals("myaccount") || urlArr[2].Equals("hesabim")))
                {
                    if (culture.Equals("tr"))
                    {
                        return(LocalRedirect("/tr/hesabim"));
                    }
                    if (culture.Equals("ru"))
                    {
                        return(LocalRedirect("/ru/myaccount"));
                    }
                    else
                    {
                        return(LocalRedirect("/en/myaccount"));
                    }
                }

                //marka sayfasından geliyorsa
                if (urlArr.Length == 6 && (urlArr[2].Equals("brands") || urlArr[2].Equals("markalar")))
                {
                    if (culture.Equals("tr"))
                    {
                        string direction = $"/tr/markalar/{urlArr[3]}/sayfa/{urlArr[5]}";
                        return(LocalRedirect(direction));
                    }
                    if (culture.Equals("ru"))
                    {
                        string direction = $"/ru/brands/{urlArr[3]}/page/{urlArr[5]}";
                        return(LocalRedirect(direction));
                    }
                    else
                    {
                        string direction = $"/en/brands/{urlArr[3]}/page/{urlArr[5]}";
                        return(LocalRedirect(direction));
                    }
                }

                //array lengthi 6 ise topcateden gelmiş demektir.
                if (urlArr.Length == 6 && (urlArr[2].Equals("categories") || urlArr[2].Equals("kategoriler")))
                {
                    if (urlArr[1].Equals(culture))
                    {
                        return(LocalRedirect(returnUrl));
                    }
                    else
                    {
                        int topId = 0;

                        if (urlArr[1].Equals("tr"))
                        {
                            var topCateTR = _topRepo.FindEntities(x => x.TopCategoryNameUrlTR.Equals(urlArr[3])).SingleOrDefault();
                            topId = topCateTR?.Id ?? 0;
                        }
                        else
                        {
                            var topCateEN = _topRepo.FindEntities(x => x.TopCategoryNameUrlEN.Equals(urlArr[3])).SingleOrDefault();
                            topId = topCateEN?.Id ?? 0;
                        }
                        var finalTopCate = _topRepo.GetEntityById(topId);

                        string topCate  = culture.Equals("tr") ? finalTopCate.TopCategoryNameUrlTR : finalTopCate.TopCategoryNameUrlEN;
                        string pageText = culture.Equals("tr") ? "sayfa" : "page";
                        string cates    = culture.Equals("tr") ? "kategoriler" : "categories";

                        string newReturnUrl = $"/{culture}/{cates}/{topCate}/{pageText}/{urlArr[5]}";
                        return(LocalRedirect(newReturnUrl));
                    }
                }

                //array lengthi 7 ise midcateden gelmiş demektir.
                if (urlArr.Length == 7 && (urlArr[2].Equals("categories") || urlArr[2].Equals("kategoriler")))
                {
                    if (urlArr[1].Equals(culture))
                    {
                        return(LocalRedirect(returnUrl));
                    }
                    else
                    {
                        int midId = 0;

                        if (urlArr[1].Equals("tr"))
                        {
                            var topCateTR = _topRepo.FindEntities(x => x.TopCategoryNameUrlTR.Equals(urlArr[3])).SingleOrDefault();
                            var midCateTR = _midRepo.FindEntities(x => x.MiddleCategoryNameUrlTR.Equals(urlArr[4]) && x.TopCategoryId == topCateTR.Id).SingleOrDefault();
                            midId = midCateTR?.Id ?? 0;
                        }
                        else
                        {
                            var topCateEN = _topRepo.FindEntities(x => x.TopCategoryNameUrlEN.Equals(urlArr[3])).SingleOrDefault();
                            var midCateEN = _midRepo.FindEntities(x => x.MiddleCategoryNameUrlEN.Equals(urlArr[4]) && x.TopCategoryId == topCateEN.Id).SingleOrDefault();
                            midId = midCateEN?.Id ?? 0;
                        }
                        var finalMidCate = _midRepo.GetEntityById(midId);
                        var finalTopCate = _topRepo.GetEntityById(finalMidCate.TopCategoryId);

                        string topCate  = culture.Equals("tr") ? finalTopCate.TopCategoryNameUrlTR : finalTopCate.TopCategoryNameUrlEN;
                        string midCate  = culture.Equals("tr") ? finalMidCate.MiddleCategoryNameUrlTR : finalMidCate.MiddleCategoryNameUrlEN;
                        string pageText = culture.Equals("tr") ? "sayfa" : "page";
                        string cates    = culture.Equals("tr") ? "kategoriler" : "categories";

                        string newReturnUrl = $"/{culture}/{cates}/{topCate}/{midCate}/{pageText}/{urlArr[6]}";
                        return(LocalRedirect(newReturnUrl));
                    }
                }

                //array lengthi 8 ise subcateden gelmiş demektir.
                if (urlArr.Length == 8 && (urlArr[2].Equals("categories") || urlArr[2].Equals("kategoriler")))
                {
                    if (urlArr[1].Equals(culture))
                    {
                        return(LocalRedirect(returnUrl));
                    }
                    else
                    {
                        int subId = 0;

                        if (urlArr[1].Equals("tr"))
                        {
                            var topCateTR = _topRepo.FindEntities(x => x.TopCategoryNameUrlTR.Equals(urlArr[3])).SingleOrDefault();

                            var midCateTR = _midRepo.FindEntities(x => x.MiddleCategoryNameUrlTR.Equals(urlArr[4]) && x.TopCategoryId == topCateTR.Id).SingleOrDefault();

                            var subCateTR = _subRepo.FindEntities(x => x.SubCategoryNameUrlTR.Equals(urlArr[5]) && x.MiddleCategoryId == midCateTR.Id).SingleOrDefault();

                            subId = subCateTR?.Id ?? 0;
                        }
                        else
                        {
                            var topCateEN = _topRepo.FindEntities(x => x.TopCategoryNameUrlEN.Equals(urlArr[3])).SingleOrDefault();

                            var midCateEN = _midRepo.FindEntities(x => x.MiddleCategoryNameUrlEN.Equals(urlArr[4]) && x.TopCategoryId == topCateEN.Id).SingleOrDefault();

                            var subCateEN = _subRepo.FindEntities(x => x.SubCategoryNameUrlEN.Equals(urlArr[5]) && x.MiddleCategoryId == midCateEN.Id).SingleOrDefault();
                            subId = subCateEN?.Id ?? 0;
                        }
                        var finalSubCate = _subRepo.GetEntityById(subId);
                        var finalMidCate = _midRepo.GetEntityById(finalSubCate.MiddleCategoryId);
                        var finalTopCate = _topRepo.GetEntityById(finalMidCate.TopCategoryId);

                        string topCate  = culture.Equals("tr") ? finalTopCate.TopCategoryNameUrlTR : finalTopCate.TopCategoryNameUrlEN;
                        string midCate  = culture.Equals("tr") ? finalMidCate.MiddleCategoryNameUrlTR : finalMidCate.MiddleCategoryNameUrlEN;
                        string subCate  = culture.Equals("tr") ? finalSubCate.SubCategoryNameUrlTR : finalSubCate.SubCategoryNameUrlEN;
                        string pageText = culture.Equals("tr") ? "sayfa" : "page";
                        string cates    = culture.Equals("tr") ? "kategoriler" : "categories";

                        string newReturnUrl = $"/{culture}/{cates}/{topCate}/{midCate}/{subCate}/{pageText}/{urlArr[7]}";
                        return(LocalRedirect(newReturnUrl));
                    }
                }

                //array lengthi 5-6-7 ise single producttan gelmiş demektir.
                if ((urlArr.Length == 6 || urlArr.Length == 7 || urlArr.Length == 8) && (urlArr[2].Equals("urun-detay") || urlArr[2].Equals("product-detail")))
                {
                    if (urlArr[1].Equals(culture))
                    {
                        return(LocalRedirect(returnUrl));
                    }
                    else
                    {
                        int proId = 0;

                        if (urlArr[1].Equals("tr"))
                        {
                            var productTR = _productRepo.FindEntities(x => x.ProductNameUrlTR.Equals(urlArr[urlArr.Length - 1])).SingleOrDefault();
                            proId = productTR?.Id ?? 0;
                        }
                        else
                        {
                            var productEN = _productRepo.FindEntities(x => x.ProductNameUrlEN.Equals(urlArr[urlArr.Length - 1])).SingleOrDefault();
                            proId = productEN?.Id ?? 0;
                        }
                        var finalProduct = _productRepo.GetProductWithId(proId);

                        string topCate = null;
                        string midCate = null;
                        string subCate = null;
                        string product = null;
                        string brand   = urlArr[3];
                        string cates   = culture.Equals("tr") ? "urun-detay" : "product-detail";

                        var topCategory = _topRepo.GetEntityById(finalProduct.TopCategoryId);
                        topCate = culture.Equals("tr") ? topCategory.TopCategoryNameUrlTR : topCategory.TopCategoryNameUrlEN;
                        product = culture.Equals("tr") ? finalProduct.ProductNameUrlTR : finalProduct.ProductNameUrlEN;
                        //mid ve sub boşsa buna gider
                        if (urlArr.Length == 6)
                        {
                            return(LocalRedirect($"/{culture}/{cates}/{brand}/{topCate}/{product}"));
                        }
                        //mid ve sub boş değilse buraya düşer o yüzden mide bakabilirim
                        var midCategory = _midRepo.GetEntityById((int)finalProduct.MiddleCategoryId);
                        midCate = culture.Equals("tr") ? midCategory.MiddleCategoryNameUrlTR : midCategory.MiddleCategoryNameUrlEN;

                        //sub boşsa buna gider
                        if (urlArr.Length == 7)
                        {
                            return(LocalRedirect($"/{culture}/{cates}/{brand}/{topCate}/{midCate}/{product}"));
                        }

                        //sub boş değilse buraya düşer o yüzden suba bakabilirim
                        var subCategory = _subRepo.GetEntityById((int)finalProduct.SubCategoryId);
                        subCate = culture.Equals("tr") ? subCategory.SubCategoryNameUrlTR : subCategory.SubCategoryNameUrlEN;

                        //sub doluysa buna gider
                        if (urlArr.Length == 8)
                        {
                            return(LocalRedirect($"/{culture}/{cates}/{brand}/{topCate}/{midCate}/{subCate}/{product}"));
                        }
                    }
                }
            }
            catch (Exception e)
            {
                _errorRepo.CreateEntity(new ErrorLog
                {
                    ErrorLocation = "SetLanguage",
                    ErrorDetail   = e.Message + " , " + e.InnerException,
                    ErrorUrl      = HttpContext.Request.Path
                });
                HttpContext.Session.SetString("alert", _localizer["Hata oluştu ve kayıt altına alındı."]);
                return(LocalRedirect("/"));
            }
            return(LocalRedirect("/"));
        }
        public JsonResult GetCategoryName(string type, int id)
        {
            try
            {
                if (!AuthCheck())
                {
                    return(Json(new { success = false, message = "Oturumunuz sonlanmış. Lütfen login olunuz." }));
                }
                if (type == null)
                {
                    return(Json(new { success = false, message = "Lütfen kategori seçiniz." }));
                }
                if (type.Equals("root"))
                {
                    return(Json(new { success = false, message = "Kök dizin silinemez" }));
                }
                if (type.Equals("ana"))
                {
                    var topCate      = _topRepo.GetEntityById(id);
                    int productCount = _productRepo.CountEntity(x => x.TopCategoryId == id);
                    int midCateCount = _midRepo.CountEntity(x => x.TopCategoryId == topCate.Id);
                    int subCateCount = _subRepo.GetSubCatesWithJoin().Count(x => x.MiddleCategory.TopCategoryId == topCate.Id);
                    int sliderCount  = _sliderRepo.FindEntities(x => x.SliderTargetType == SliderTargetType.TopCategory && x.TargetTopCategoryId == topCate.Id).Count();
                    int adProCount   = _adproRepo.FindEntities(x => x.AdproTargetType == SliderTargetType.TopCategory && x.TargetTopCategoryId == topCate.Id).Count();
                    return(Json(new { success = true, message = $"Dikkat!!! \"{topCate.NameTR}\" Ana Kategorisi silinecek. İlave olarak bu kategoride bulunan toplam {productCount} adet ürün, {midCateCount} adet orta kategori,  {subCateCount} adet alt kategori, {sliderCount} adet slider ve  {adProCount} adet reklam silinecek. Onaylıyor musunuz?", type = "ana", itemId = topCate.Id }));
                }

                if (type.Equals("orta"))
                {
                    var midCate      = _midRepo.GetEntityById(id);
                    int productCount = _productRepo.CountEntity(x => x.MiddleCategoryId == id);
                    int subCateCount = _subRepo.GetSubCatesWithJoin().Count(x => x.MiddleCategoryId == midCate.Id);
                    int sliderCount  = _sliderRepo.FindEntities(x => x.SliderTargetType == SliderTargetType.MiddleCategory && x.TargetMiddleCategoryId == midCate.Id).Count();
                    int adProCount   = _adproRepo.FindEntities(x => x.AdproTargetType == SliderTargetType.MiddleCategory && x.TargetMiddleCategoryId == midCate.Id).Count();

                    return(Json(new { success = true, message = $"Dikkat!!! \"{midCate.NameTR}\" Orta Kategorisi silinecek. İlave olarak bu kategoride bulunan toplam {productCount} adet ürün, {subCateCount} adet alt kategori, {sliderCount} adet slider ve {adProCount} adet reklam silinecek. Onaylıyor musunuz?", type = "orta", itemId = midCate.Id }));
                }

                if (type.Equals("alt"))
                {
                    var subCate      = _subRepo.GetEntityById(id);
                    int productCount = _productRepo.CountEntity(x => x.SubCategoryId == id);
                    int sliderCount  = _sliderRepo.FindEntities(x => x.SliderTargetType == SliderTargetType.SubCategory && x.TargetSubCategoryId == subCate.Id).Count();
                    int adProCount   = _adproRepo.FindEntities(x => x.AdproTargetType == SliderTargetType.SubCategory && x.TargetSubCategoryId == subCate.Id).Count();
                    return(Json(new { success = true, message = $"Dikkat!!! \"{subCate.NameTR}\" Alt Kategorisi silinecek. İlave olarak bu kategoride bulunan toplam {productCount} adet ürün, {sliderCount} adet slider ve {adProCount} adet reklam silinecek. Onaylıyor musunuz?", type = "alt", itemId = subCate.Id }));
                }
                else
                {
                    return(Json(new { success = false, message = "Kategori bulunamadı" }));
                }
            }
            catch (Exception e)
            {
                _errorRepo.CreateEntity(new ErrorLog
                {
                    ErrorLocation = "Admin paneli CategoryController GetCategoryName",
                    ErrorDetail   = e.Message + " , " + e.InnerException,
                    ErrorUrl      = HttpContext.Request.Path
                });
                return(Json(new { success = false, message = $"Hata oluştu. Hata kayıt altına alındı. {e}" }));
            }
        }