public IViewComponentResult Invoke() { var locale = Request.HttpContext.Features.Get <IRequestCultureFeature>(); string culture = locale.RequestCulture.UICulture.ToString(); try { var topCatesDb = _topCategoryRepo.GetAllTopCates().ToList(); var topCateDtos = new List <TopCategoryComponentDto>(); ViewBag.culture = culture; switch (culture) { case "tr": foreach (var topCate in topCatesDb.OrderBy(x => x.NameTR)) { TopCategoryComponentDto topDto = new TopCategoryComponentDto(); topDto.Id = topCate.Id; topDto.Name = topCate.NameTR; topDto.HeadDescription = topCate.HeadDescriptionTR; topDto.HeadTitle = topCate.HeadTitleTR; topDto.TopCategoryNameUrl = topCate.TopCategoryNameUrlTR; if (topCate.MiddleCategories.Any(x => !x.IsDeleted)) { foreach (var middleCate in topCate.MiddleCategories.Where(x => !x.IsDeleted).OrderBy(x => x.NameTR)) { MiddleCategoryComponentDto middleDto = new MiddleCategoryComponentDto(); middleDto.Id = middleCate.Id; middleDto.Name = middleCate.NameTR; middleDto.HeadDescription = middleCate.HeadDescriptionTR; middleDto.HeadTitle = middleCate.HeadTitleTR; middleDto.TopCategoryId = topCate.Id; middleDto.MiddleCategoryNameUrl = middleCate.MiddleCategoryNameUrlTR; if (middleCate.SubCategories.Any(x => !x.IsDeleted)) { foreach (var subCate in middleCate.SubCategories.Where(x => !x.IsDeleted).OrderBy(x => x.NameTR)) { SubCategoryComponentDto subDto = new SubCategoryComponentDto(); subDto.Id = subCate.Id; subDto.Name = subCate.NameTR; subDto.HeadDescription = subCate.HeadDescriptionTR; subDto.HeadTitle = subCate.HeadTitleTR; subDto.MiddleCategoryId = middleCate.Id; subDto.SubCategoryNameUrl = subCate.SubCategoryNameUrlTR; middleDto.SubCategoryComponentDtos.Add(subDto); } } topDto.MiddleCategoryComponentDtos.Add(middleDto); } } topCateDtos.Add(topDto); } break; case "en": foreach (var topCate in topCatesDb.OrderBy(x => x.NameEN)) { TopCategoryComponentDto topDto = new TopCategoryComponentDto(); topDto.Id = topCate.Id; topDto.Name = topCate.NameEN; topDto.HeadDescription = topCate.HeadDescriptionEN; topDto.HeadTitle = topCate.HeadTitleEN; topDto.TopCategoryNameUrl = topCate.TopCategoryNameUrlEN; if (topCate.MiddleCategories.Any(x => !x.IsDeleted)) { foreach (var middleCate in topCate.MiddleCategories.Where(x => !x.IsDeleted).OrderBy(x => x.NameEN)) { MiddleCategoryComponentDto middleDto = new MiddleCategoryComponentDto(); middleDto.Id = middleCate.Id; middleDto.Name = middleCate.NameEN; middleDto.HeadDescription = middleCate.HeadDescriptionEN; middleDto.HeadTitle = middleCate.HeadTitleEN; middleDto.TopCategoryId = topCate.Id; middleDto.MiddleCategoryNameUrl = middleCate.MiddleCategoryNameUrlEN; if (middleCate.SubCategories.Any(x => !x.IsDeleted)) { foreach (var subCate in middleCate.SubCategories.Where(x => !x.IsDeleted).OrderBy(x => x.NameEN)) { SubCategoryComponentDto subDto = new SubCategoryComponentDto(); subDto.Id = subCate.Id; subDto.Name = subCate.NameEN; subDto.HeadDescription = subCate.HeadDescriptionEN; subDto.HeadTitle = subCate.HeadTitleEN; subDto.MiddleCategoryId = middleCate.Id; subDto.SubCategoryNameUrl = subCate.SubCategoryNameUrlEN; middleDto.SubCategoryComponentDtos.Add(subDto); } } topDto.MiddleCategoryComponentDtos.Add(middleDto); } } topCateDtos.Add(topDto); } break; case "ru": foreach (var topCate in topCatesDb.OrderBy(x => x.NameRU)) { TopCategoryComponentDto topDto = new TopCategoryComponentDto(); topDto.Id = topCate.Id; topDto.Name = topCate.NameRU; topDto.HeadDescription = topCate.HeadDescriptionRU; topDto.HeadTitle = topCate.HeadTitleRU; topDto.TopCategoryNameUrl = topCate.TopCategoryNameUrlRU; if (topCate.MiddleCategories.Any(x => !x.IsDeleted)) { foreach (var middleCate in topCate.MiddleCategories.Where(x => !x.IsDeleted).OrderBy(x => x.NameRU)) { MiddleCategoryComponentDto middleDto = new MiddleCategoryComponentDto(); middleDto.Id = middleCate.Id; middleDto.Name = middleCate.NameRU; middleDto.HeadDescription = middleCate.HeadDescriptionRU; middleDto.HeadTitle = middleCate.HeadTitleRU; middleDto.TopCategoryId = topCate.Id; middleDto.MiddleCategoryNameUrl = middleCate.MiddleCategoryNameUrlRU; if (middleCate.SubCategories.Any(x => !x.IsDeleted)) { foreach (var subCate in middleCate.SubCategories.Where(x => !x.IsDeleted).OrderBy(x => x.NameRU)) { SubCategoryComponentDto subDto = new SubCategoryComponentDto(); subDto.Id = subCate.Id; subDto.Name = subCate.NameRU; subDto.HeadDescription = subCate.HeadDescriptionRU; subDto.HeadTitle = subCate.HeadTitleRU; subDto.MiddleCategoryId = middleCate.Id; subDto.SubCategoryNameUrl = subCate.SubCategoryNameUrlRU; middleDto.SubCategoryComponentDtos.Add(subDto); } } topDto.MiddleCategoryComponentDtos.Add(middleDto); } } topCateDtos.Add(topDto); } break; default: foreach (var topCate in topCatesDb.OrderBy(x => x.NameEN)) { TopCategoryComponentDto topDto = new TopCategoryComponentDto(); topDto.Id = topCate.Id; topDto.Name = topCate.NameEN; topDto.HeadDescription = topCate.HeadDescriptionEN; topDto.HeadTitle = topCate.HeadTitleEN; topDto.TopCategoryNameUrl = topCate.TopCategoryNameUrlEN; if (topCate.MiddleCategories.Any(x => !x.IsDeleted)) { foreach (var middleCate in topCate.MiddleCategories.Where(x => !x.IsDeleted).OrderBy(x => x.NameEN)) { MiddleCategoryComponentDto middleDto = new MiddleCategoryComponentDto(); middleDto.Id = middleCate.Id; middleDto.Name = middleCate.NameEN; middleDto.HeadDescription = middleCate.HeadDescriptionEN; middleDto.HeadTitle = middleCate.HeadTitleEN; middleDto.TopCategoryId = topCate.Id; middleDto.MiddleCategoryNameUrl = middleCate.MiddleCategoryNameUrlEN; if (middleCate.SubCategories.Any(x => !x.IsDeleted)) { foreach (var subCate in middleCate.SubCategories.Where(x => !x.IsDeleted).OrderBy(x => x.NameEN)) { SubCategoryComponentDto subDto = new SubCategoryComponentDto(); subDto.Id = subCate.Id; subDto.Name = subCate.NameEN; subDto.HeadDescription = subCate.HeadDescriptionEN; subDto.HeadTitle = subCate.HeadTitleEN; subDto.MiddleCategoryId = middleCate.Id; subDto.SubCategoryNameUrl = subCate.SubCategoryNameUrlEN; middleDto.SubCategoryComponentDtos.Add(subDto); } } topDto.MiddleCategoryComponentDtos.Add(middleDto); } } topCateDtos.Add(topDto); } break; } return(View(topCateDtos)); } catch (Exception e) { _errorRepo.CreateEntity(new ErrorLog { ErrorLocation = "CategoryNavbarComponent", ErrorDetail = e.Message + " , " + e.InnerException, ErrorUrl = HttpContext.Request.Path, Culture = culture }); return(null); } }
public IViewComponentResult Invoke(string categoryType, int id) { var locale = Request.HttpContext.Features.Get <IRequestCultureFeature>(); string culture = locale.RequestCulture.UICulture.ToString(); try { CategorySidebarDto dto = new CategorySidebarDto(); ViewBag.filter = culture.Equals("tr") ? "Filtre" : culture.Equals("ru") ? "фильтр" : "Filter"; switch (culture) { case "tr": if (categoryType.Equals("top")) { var categoryTop = _topCategoryRepo.GetTopCateById(id); if (categoryTop.MiddleCategories.Any(x => !x.IsDeleted)) { foreach (var midCate in categoryTop.MiddleCategories.Where(x => !x.IsDeleted)) { MiddleCategoryComponentDto midDto = new MiddleCategoryComponentDto(); midDto.Id = midCate.Id; midDto.Name = midCate.NameTR; midDto.MiddleCategoryNameUrl = midCate.MiddleCategoryNameUrlTR; midDto.TopCategoryId = midCate.TopCategoryId; midDto.CategoryHref = $"/tr/kategoriler/{midCate.TopCategory.TopCategoryNameUrlTR}/{midCate.MiddleCategoryNameUrlTR}/sayfa/1"; dto.MiddleCategoryComponentDtos.Add(midDto); dto.TopCategoryId = midCate.Id; dto.MiddleCategoryComponentDtos.Add(midDto); } } dto.CategoryType = categoryType; dto.ComponentTitle = categoryTop.NameTR; return(View(dto)); } else if (categoryType.Equals("mid")) { var categoryMid = _middleCategoryRepo.GetMidCateById(id); if (categoryMid.SubCategories.Any(x => !x.IsDeleted)) { foreach (var subCate in categoryMid.SubCategories.Where(x => !x.IsDeleted)) { SubCategoryComponentDto subDto = new SubCategoryComponentDto(); subDto.Id = subCate.Id; subDto.Name = subCate.NameTR; subDto.SubCategoryNameUrl = subCate.SubCategoryNameUrlTR; subDto.MiddleCategoryId = subCate.MiddleCategoryId; subDto.CategoryHref = $"/tr/kategoriler/{subCate.MiddleCategory.TopCategory.TopCategoryNameUrlTR}/{subCate.MiddleCategory.MiddleCategoryNameUrlTR}/{subCate.SubCategoryNameUrlTR}/sayfa/1"; dto.SubCategoryComponentDtos.Add(subDto); dto.TopCategoryId = categoryMid.TopCategoryId; dto.SubCategoryComponentDtos.Add(subDto); } } dto.CategoryType = categoryType; dto.ComponentTitle = categoryMid.NameTR; return(View(dto)); } else { var categorySub = _subCategoryRepo.FindEntity(x => !x.IsDeleted && x.Id == id); dto.CategoryType = categoryType; dto.ComponentTitle = categorySub.NameTR; return(View(dto)); } case "en": if (categoryType.Equals("top")) { var categoryTop = _topCategoryRepo.GetTopCateById(id); if (categoryTop.MiddleCategories.Any(x => !x.IsDeleted)) { foreach (var midCate in categoryTop.MiddleCategories.Where(x => !x.IsDeleted)) { MiddleCategoryComponentDto midDto = new MiddleCategoryComponentDto(); midDto.Id = midCate.Id; midDto.Name = midCate.NameEN; midDto.MiddleCategoryNameUrl = midCate.MiddleCategoryNameUrlEN; midDto.TopCategoryId = midCate.TopCategoryId; midDto.CategoryHref = $"/en/categories/{midCate.TopCategory.TopCategoryNameUrlEN}/{midCate.MiddleCategoryNameUrlEN}/page/1"; dto.MiddleCategoryComponentDtos.Add(midDto); dto.TopCategoryId = midCate.Id; dto.MiddleCategoryComponentDtos.Add(midDto); } } dto.CategoryType = categoryType; dto.ComponentTitle = categoryTop.NameEN; return(View(dto)); } else if (categoryType.Equals("mid")) { var categoryMid = _middleCategoryRepo.GetMidCateById(id); if (categoryMid.SubCategories.Any(x => !x.IsDeleted)) { foreach (var subCate in categoryMid.SubCategories.Where(x => !x.IsDeleted)) { SubCategoryComponentDto subDto = new SubCategoryComponentDto(); subDto.Id = subCate.Id; subDto.Name = subCate.NameEN; subDto.SubCategoryNameUrl = subCate.SubCategoryNameUrlEN; subDto.MiddleCategoryId = subCate.MiddleCategoryId; subDto.CategoryHref = $"/en/categories/{subCate.MiddleCategory.TopCategory.TopCategoryNameUrlEN}/{subCate.MiddleCategory.MiddleCategoryNameUrlEN}/{subCate.SubCategoryNameUrlEN}/page/1"; dto.SubCategoryComponentDtos.Add(subDto); dto.TopCategoryId = categoryMid.TopCategoryId; dto.SubCategoryComponentDtos.Add(subDto); } } dto.CategoryType = categoryType; dto.ComponentTitle = categoryMid.NameEN; return(View(dto)); } else { var categorySub = _subCategoryRepo.FindEntity(x => !x.IsDeleted && x.Id == id); dto.CategoryType = categoryType; dto.ComponentTitle = categorySub.NameEN; return(View(dto)); } case "ru": if (categoryType.Equals("top")) { var categoryTop = _topCategoryRepo.GetTopCateById(id); if (categoryTop.MiddleCategories.Any(x => !x.IsDeleted)) { foreach (var midCate in categoryTop.MiddleCategories.Where(x => !x.IsDeleted)) { MiddleCategoryComponentDto midDto = new MiddleCategoryComponentDto(); midDto.Id = midCate.Id; midDto.Name = midCate.NameRU; midDto.MiddleCategoryNameUrl = midCate.MiddleCategoryNameUrlRU; midDto.TopCategoryId = midCate.TopCategoryId; midDto.CategoryHref = $"/ru/categories/{midCate.TopCategory.TopCategoryNameUrlRU}/{midCate.MiddleCategoryNameUrlRU}/page/1"; dto.MiddleCategoryComponentDtos.Add(midDto); dto.TopCategoryId = midCate.Id; dto.MiddleCategoryComponentDtos.Add(midDto); } } dto.CategoryType = categoryType; dto.ComponentTitle = categoryTop.NameRU; return(View(dto)); } else if (categoryType.Equals("mid")) { var categoryMid = _middleCategoryRepo.GetMidCateById(id); if (categoryMid.SubCategories.Any(x => !x.IsDeleted)) { foreach (var subCate in categoryMid.SubCategories.Where(x => !x.IsDeleted)) { SubCategoryComponentDto subDto = new SubCategoryComponentDto(); subDto.Id = subCate.Id; subDto.Name = subCate.NameRU; subDto.SubCategoryNameUrl = subCate.SubCategoryNameUrlRU; subDto.MiddleCategoryId = subCate.MiddleCategoryId; subDto.CategoryHref = $"/ru/categories/{subCate.MiddleCategory.TopCategory.TopCategoryNameUrlRU}/{subCate.MiddleCategory.MiddleCategoryNameUrlRU}/{subCate.SubCategoryNameUrlRU}/page/1"; dto.SubCategoryComponentDtos.Add(subDto); dto.TopCategoryId = categoryMid.TopCategoryId; dto.SubCategoryComponentDtos.Add(subDto); } } dto.CategoryType = categoryType; dto.ComponentTitle = categoryMid.NameRU; return(View(dto)); } else { var categorySub = _subCategoryRepo.FindEntity(x => !x.IsDeleted && x.Id == id); dto.CategoryType = categoryType; dto.ComponentTitle = categorySub.NameRU; return(View(dto)); } default: if (categoryType.Equals("top")) { var categoryTop = _topCategoryRepo.GetTopCateById(id); if (categoryTop.MiddleCategories.Any(x => !x.IsDeleted)) { foreach (var midCate in categoryTop.MiddleCategories.Where(x => !x.IsDeleted)) { MiddleCategoryComponentDto midDto = new MiddleCategoryComponentDto(); midDto.Id = midCate.Id; midDto.Name = midCate.NameEN; midDto.MiddleCategoryNameUrl = midCate.MiddleCategoryNameUrlEN; midDto.TopCategoryId = midCate.TopCategoryId; midDto.CategoryHref = $"/en/categories/{midCate.TopCategory.TopCategoryNameUrlEN}/{midCate.MiddleCategoryNameUrlEN}/page/1"; dto.MiddleCategoryComponentDtos.Add(midDto); dto.TopCategoryId = midCate.Id; dto.MiddleCategoryComponentDtos.Add(midDto); } } dto.CategoryType = categoryType; dto.ComponentTitle = categoryTop.NameEN; return(View(dto)); } else if (categoryType.Equals("mid")) { var categoryMid = _middleCategoryRepo.GetMidCateById(id); if (categoryMid.SubCategories.Any(x => !x.IsDeleted)) { foreach (var subCate in categoryMid.SubCategories.Where(x => !x.IsDeleted)) { SubCategoryComponentDto subDto = new SubCategoryComponentDto(); subDto.Id = subCate.Id; subDto.Name = subCate.NameEN; subDto.SubCategoryNameUrl = subCate.SubCategoryNameUrlEN; subDto.MiddleCategoryId = subCate.MiddleCategoryId; subDto.CategoryHref = $"/en/categories/{subCate.MiddleCategory.TopCategory.TopCategoryNameUrlEN}/{subCate.MiddleCategory.MiddleCategoryNameUrlEN}/{subCate.SubCategoryNameUrlEN}/page/1"; dto.SubCategoryComponentDtos.Add(subDto); dto.TopCategoryId = categoryMid.TopCategoryId; dto.SubCategoryComponentDtos.Add(subDto); } } dto.CategoryType = categoryType; dto.ComponentTitle = categoryMid.NameEN; return(View(dto)); } else { var categorySub = _subCategoryRepo.FindEntity(x => !x.IsDeleted && x.Id == id); dto.CategoryType = categoryType; dto.ComponentTitle = categorySub.NameEN; return(View(dto)); } } } catch (Exception e) { _errorRepo.CreateEntity(new ErrorLog { ErrorLocation = "CategorySidebarComponent", ErrorDetail = e.Message + " , " + e.InnerException, ErrorUrl = HttpContext.Request.Path, Culture = culture }); return(null); } }