public static BreadcrumbModel ToBreadcrumbModel(this CatalogItemBase item, int version) { var result = new BreadcrumbModel { DisplayName = item.DisplayName, Name = item.Name, IsActive = true, Href = $"/entityView/Master/{version}/{item.Name}", EntityId = item.Id }; if (item is Category) { result.Icon = CategoryIconPath; } else if (item is SellableItem) { result.Icon = ProductIconPath; } else if (item is Catalog) { result.Icon = CatalogIconPath; } return(result); }
public static string BuildProductReviewUrl(BreadcrumbModel breadcrumb, string productCode, string productName) { var prodUrl = GenerateSlug(productCode, productName); var fullUrl = string.Format("{0}://{1}/{2}/review/{3}", HttpContext.Current.Request.Url.Scheme, HttpContext.Current.Request.Url.Authority, BreadcrumbAsUrl(breadcrumb), prodUrl); return(fullUrl.ToLower()); }
// GET: Client public ActionResult Index() { var breadCrumbs = new BreadcrumbModel("Customers", new List <BreadcrumbLink>()); ViewBag.BreadCrumbs = breadCrumbs; return(View()); }
protected void BuildBreadcrumb(BreadcrumbModel breadCrumb, string category, string collection, string gender, string genderFilter) { breadCrumb.GenderFilter = genderFilter; breadCrumb.Gender = gender != null?CultureInfo.CurrentCulture.TextInfo.ToTitleCase(gender.ToLower()) : null; if (category != null) { switch (category.ToLower()) { case UrlBuilder.CATALOG_NEW_ARRIVALS: { breadCrumb.Category = new DropDownModel() { Name = "new arrivals", Value = category.ToLower() }; breadCrumb.IsCategoryForNewProds = true; break; } case UrlBuilder.CATALOG_TOPS_NEW: { breadCrumb.Category = new DropDownModel() { Name = "tops", Value = category.ToLower() }; breadCrumb.IsCategoryForNewProds = true; break; } default: { var obj = SelectionsManager.GetCategoryByName(this.CurrentBrand, category, genderFilter); if (obj != null) { breadCrumb.Category = new DropDownModel() { Name = obj.Name, Value = obj.Value } } ; break; } } } if (collection != null) { var obj = SelectionsManager.GetCollectionByName(this.CurrentBrand, collection, genderFilter); if (obj != null) { breadCrumb.Collection = new DropDownModel() { Name = obj.Name, Value = obj.Value } } ; } }
public IViewComponentResult Invoke() { var breadcrumbs = new List <BreadcrumbModel>(); var routeValues = HttpContext.Request.RouteValues; var currentControllerName = routeValues[RouteValuesKeys.ControllerKey] as string; if (!string.Equals(currentControllerName, HomeControllerName)) { breadcrumbs.Add(new BreadcrumbModel { Name = HomeControllerName, Link = string.Format(EntitiesLink, HomeControllerName) }); var entityBreadcrumb = new BreadcrumbModel { Name = currentControllerName }; var currentActionName = routeValues[RouteValuesKeys.ActionKey] as string; if (string.Equals(currentActionName, CreateActionName) || string.Equals(currentActionName, UpdateActionName)) { entityBreadcrumb.Link = string.Format(EntitiesLink, currentControllerName); breadcrumbs.Add(entityBreadcrumb); breadcrumbs.Add(new BreadcrumbModel { Name = currentActionName }); } else { breadcrumbs.Add(entityBreadcrumb); } } return(View(breadcrumbs)); }
public BreadCrumbController(IBreadcrumbServices breadcrumbServices, IReadCrumb readCrumb, IEditCrumb editCrumb, BreadcrumbModel breadcrumb) { this.breadcrumbServicesInt = breadcrumbServices; this.readCrumbInt = readCrumb; this.editCrumbInt = editCrumb; this.crumbModelc = breadcrumb; }
public BreadcrumbModel CreateBreadcrumb(Controller currentController, ActionExecutingContext filterContext) { var result = new BreadcrumbModel(); var controllerType = currentController.GetType(); var actionName = filterContext.RouteData.Values["action"].ToString(); var routeKey = GetRouteKey(controllerType, actionName); //Add the current route var currrentAction = GetItemByKey(routeKey); if (currrentAction == null) return result; result.Items.Add(BreadcrumbActionToMenuItem(currrentAction, filterContext.RouteData, true)); while (currrentAction?.ParentKey.IsNotBlank() ?? false) { currrentAction = GetItemByKey(currrentAction.ParentKey); //TODO improve, there is no need to go to the next loop if (currrentAction == null) continue; var ancestorMenuItem = BreadcrumbActionToMenuItem(currrentAction, filterContext.RouteData, false); result.Items.Insert(0, ancestorMenuItem); } return result; }
public List <BreadcrumbModel> GetBreadcrumb(string cateName, int cateId) { List <BreadcrumbModel> lstBreadcrumb = new List <BreadcrumbModel>(); BreadcrumbModel breadcrumb = new BreadcrumbModel() { Name = "Trang chủ", Url = "/", Priority = 0 }; if (cateId > 0) { lstBreadcrumb = GetSubBreadcrumb(cateId); if (lstBreadcrumb != null && lstBreadcrumb.Count > 0) { lstBreadcrumb = lstBreadcrumb.OrderByDescending(x => x.Priority).ToList(); } } else if (!string.IsNullOrEmpty(cateName)) { BreadcrumbModel breadcrumbEnd = new BreadcrumbModel() { Name = cateName, Priority = 1 }; lstBreadcrumb.Add(breadcrumbEnd); } lstBreadcrumb.Insert(0, breadcrumb); return(lstBreadcrumb); }
public ActionResult New() { var breadCrumbs = new BreadcrumbModel("New Carrier", new List <BreadcrumbLink>()); breadCrumbs.Links.Add(new BreadcrumbLink(Url.Action("Carriers", "Settings", null, this.Request.Url.Scheme), "Carriers")); ViewBag.BreadCrumbs = breadCrumbs; return(View()); }
public async Task <ActionResult> Detail(int id) { var carrier = await _dbContext.Carriers.FindAsync(id); var breadCrumbs = new BreadcrumbModel(carrier.CarrierID.ToString(), new List <BreadcrumbLink>()); breadCrumbs.Links.Add(new BreadcrumbLink(Url.Action("Carriers", "Settings", null, this.Request.Url.Scheme), "Carriers")); ViewBag.BreadCrumbs = breadCrumbs; return(View(carrier)); }
public async Task <ActionResult> Detail(int id) { var customer = await _dbContext.Customers.FindAsync(id); var breadCrumbs = new BreadcrumbModel(customer.Company, new List <BreadcrumbLink>()); breadCrumbs.Links.Add(new BreadcrumbLink(Url.Action("Index", "Customer", null, this.Request.Url.Scheme), "Customers")); ViewBag.BreadCrumbs = breadCrumbs; return(View(customer)); }
private static string BuildUrl(BreadcrumbModel bc, ProductModel newProd) { if (newProd != null && (bc.Collection != null || (bc.Category != null))) { return(UrlBuilder.BuildProductDetailUrl(bc, newProd.Code, newProd.Name)); } else { return("#"); } }
public ActionResult Edit(BreadcrumbModel breadcrumb) { if (ModelState.IsValid) { SqlDataReader sqlCmd = editCrumbInt.EditBread(breadcrumb); return(RedirectToAction("Index", "Home")); } else { return(View()); } }
// GET: BreadCrumb/Edit/5 public ActionResult Edit(int id) { if (ModelState.IsValid) { crumbModelc = readCrumbInt.Read(id); return(View(crumbModelc)); } else { return(View(crumbModelc)); } }
private List <BreadcrumbModel> GetSubBreadcrumb(int cateId) { List <BreadcrumbModel> lstBreadcrumb = new List <BreadcrumbModel>(); if (cateId > 0) { CategoryEntity objCate = GetByCateId(cateId); if (objCate != null && objCate.CatalogID > 0) { indexBreadcrumb++; BreadcrumbModel breadcrumb = new BreadcrumbModel() { Name = objCate.Name, //Url = indexBreadcrumb == 1 ? string.Empty : "/", Url = string.Format("/{0}", objCate.DisplayUrl), Priority = indexBreadcrumb }; //indexBreadcrumb++; //BreadcrumbModel objTest = new BreadcrumbModel() //{ // Name = "chan chan", // Url = "/", // Priority = indexBreadcrumb //}; //List<BreadcrumbModel> lstTest = new List<BreadcrumbModel>(); //lstTest.Add(objTest); //lstTest.Add(objTest); //breadcrumb.ListSub = lstTest; lstBreadcrumb.Add(breadcrumb); if (objCate.ParrentID > 0) { lstBreadcrumb.AddRange(GetSubBreadcrumb(objCate.ParrentID)); } //indexBreadcrumb++; //breadcrumb = new BreadcrumbModel() //{ // Name = "Test", // Url = "/", // Priority = indexBreadcrumb //}; //lstBreadcrumb.Add(breadcrumb); } } return(lstBreadcrumb); }
public void BreadcrumbModel_FromHomeToCurrentPage() { this.CreateTestPages(); var model = new BreadcrumbModel(); var viewModel = model.CreateViewModel(null); for (int i = 0; i < BreadcrumbWidgetTests.TestPagesCount; i++) { var expected = SitefinitySiteMap.GetCurrentProvider().FindSiteMapNodeFromKey(this.createdPageIDs[i].ToString()); var actual = viewModel.SiteMapNodes[i]; Assert.AreEqual(expected.Title, actual.Title); } }
public SqlDataReader EditBread(BreadcrumbModel breadcrumb) { using (SqlConnection sqlCon = new SqlConnection(Sql.ConnectionString)) { SqlCommand sqlCmd = new SqlCommand("spBreadcrumb", sqlCon); sqlCmd.CommandType = CommandType.StoredProcedure; sqlCmd.Parameters.AddWithValue("@prodID", breadcrumb.ProductID); sqlCmd.Parameters.AddWithValue("@prodTitle", breadcrumb.ProductTitle); sqlCmd.Parameters.AddWithValue("@StatementType", "Update"); sqlCon.Open(); SqlDataReader sqlread = sqlCmd.ExecuteReader(); sqlCon.Close(); return(sqlread); } }
public async Task <ActionResult> New(Carrier newCarrier) { if (ModelState.IsValid) { int customerId = await _carrierService.AddCarrier(newCarrier); return(RedirectToAction("Carriers")); } var breadCrumbs = new BreadcrumbModel("New Customer", new List <BreadcrumbLink>()); breadCrumbs.Links.Add(new BreadcrumbLink(Url.Action("Carriers", "Settings", null, this.Request.Url.Scheme), "Carriers")); ViewBag.BreadCrumbs = breadCrumbs; return(this.View()); }
public void BreadcrumbModel_FromHomeToCurrentPage_WithRestrictedPages() { this.CreateTestPages(); ObjectFactory.RegisterSitemapNodeFilter <DummySitemapFilter>("DummyFilter"); var restrictedPageIndex = 1; DummySitemapFilter.RestrictPageNode(this.createdPageIDs[restrictedPageIndex]); //// invalidates sitemap cache var inf = typeof(SiteMapBase).GetMethod("Reset", BindingFlags.Static | BindingFlags.NonPublic); inf.Invoke(null, null); using (var userReg = new CreateUserRegion("Viewer" + Guid.NewGuid().ToString("N") + "@mail.com", false)) { using (var profileReg = new CreateUserProfileRegion(userReg.User, "Viewer")) { using (new AuthenticateUserRegion(userReg.User)) { var model = new BreadcrumbModel(); var viewModel = model.CreateViewModel(null); var skipStep = 0; for (int i = 0; i < BreadcrumbWidgetTests.TestPagesCount; i++) { var expected = SitefinitySiteMap.GetCurrentProvider().FindSiteMapNodeFromKey(this.createdPageIDs[i].ToString()); if (i == restrictedPageIndex) { Assert.IsNull(expected); skipStep--; continue; } var breadcrumgIndex = i + skipStep; var actual = viewModel.SiteMapNodes[breadcrumgIndex]; Assert.AreEqual(expected.Title, actual.Title); } } } } DummySitemapFilter.Clear(); }
private static string BreadcrumbAsUrl(BreadcrumbModel breadcrumb) { /// Landau: Replaces the code to fix issue with some products produces bad product review url. var url = string.Empty; if (breadcrumb.Collection != null) { url = "collection/" + GenerateSlug(breadcrumb.Collection.Value); } else if (breadcrumb.Category != null) { url = "category/" + GenerateSlug(breadcrumb.Category.Value); } return((breadcrumb.Gender + "/" + url).ToString()); //var url = breadcrumb.Collection != null ? "collection/" + GenerateSlug(breadcrumb.Collection.Value) : ""; //url += breadcrumb.Category != null ? "category/" + GenerateSlug(breadcrumb.Category.Value) : ""; //return (breadcrumb.Gender + "/" + url).ToString(); }
// GET: Product Detail public ActionResult Index(String product) { string category = null, collection = null, gender = null, genderFilter = null; try { if (this.RouteData.Values["type"].ToString().ToLower() == "category") { category = this.RouteData.Values["typeName"].ToString(); } else if (this.RouteData.Values["type"].ToString().ToLower() == "collection") { collection = this.RouteData.Values["typeName"].ToString(); } gender = this.RouteData.Values["gender"].ToString().ToLower(); genderFilter = Constants.GenderFilterFor(gender); var bc = new BreadcrumbModel(); this.BuildBreadcrumb(bc, category, collection, gender, genderFilter); if (string.IsNullOrEmpty(product) || string.IsNullOrEmpty(gender) || (bc.Category == null && bc.Collection == null)) { throw Utility.Exception404(); } var model = GetDetailModelFromProduct(product, bc); if (model.ProductDetail == null || !ProductUrlIsCorrect(model.ProductDetail)) { throw Utility.Exception404(); } return(BuildDetailView(model)); } catch (Exception ex) { Console.WriteLine(ex.ToString()); throw Utility.Exception404(); } }
private DetailModel GetDetailModelFromProduct(String productId, BreadcrumbModel bc, bool buildNavigation = true) { DetailModel model; if (!String.IsNullOrEmpty(productId)) { model = DetailManager.GetModel(this.CurrentBrand, productId); model.Breadcrumb = bc; //search for default category size containing default color model.ProductDetail.DefaultCategorySize = model.ColorsAndSizes.ProductCategorySizes.Count > 0 ? model.ColorsAndSizes.ProductCategorySizes[0] : null; foreach (var aSizeCategory in model.ColorsAndSizes.AvailableColorsPerSizeCategory) { var match = aSizeCategory.Value.Find(c => c.ColorCode == model.ProductDetail.DefaultColorCode); if (match != null) { model.ProductDetail.DefaultCategorySize = aSizeCategory.Key; break; } } ReviewFilter reviewFilter = new ReviewFilter(); reviewFilter.Code = productId; reviewFilter.PageNumber = 1; reviewFilter.Size = PAGE_REVIEW_SIZE; model.ProductReviews = DetailManager.GetProductReviewModel(reviewFilter); if (buildNavigation) { BuildProductsNavigation(productId, bc, model); } } else { model = new DetailModel(); } return(model); }
public void BreadcrumbModel_BreadcrumbExtender_VirtualNodes() { this.CreateTestPages(); var model = new BreadcrumbModel(); model.AllowVirtualNodes = true; var extender = new DummyBreadcrumbExtender(); var viewModel = model.CreateViewModel(extender); Assert.AreEqual(BreadcrumbWidgetTests.TestPagesCount + 1, viewModel.SiteMapNodes.Count); for (int i = 0; i < BreadcrumbWidgetTests.TestPagesCount; i++) { var expected = SitefinitySiteMap.GetCurrentProvider().FindSiteMapNodeFromKey(this.createdPageIDs[i].ToString()); var actual = viewModel.SiteMapNodes[i]; Assert.AreEqual(expected.Title, actual.Title); } Assert.AreEqual(DummyBreadcrumbExtender.DummySiteMapNodeTitle, viewModel.SiteMapNodes.Last().Title); }
public BreadcrumbModel Read(int id) { BreadcrumbModel breadcrumb = new BreadcrumbModel(); DataTable dtblBread = new DataTable(); using (SqlConnection sqlConn = new SqlConnection(Sql.ConnectionString)) { SqlCommand cmd = new SqlCommand("spBreadcrumb", sqlConn); cmd.CommandType = CommandType.StoredProcedure; cmd.Parameters.AddWithValue("@StatementType", "Select"); cmd.Parameters.AddWithValue("@prodID", id); sqlConn.Open(); SqlDataReader sqlread = cmd.ExecuteReader(); dtblBread.Load(sqlread); sqlConn.Close(); } if (dtblBread.Rows.Count == 1) { breadcrumb.ProductID = Convert.ToInt32(dtblBread.Rows[0][0].ToString()); breadcrumb.ProductTitle = dtblBread.Rows[0][1].ToString(); } return(breadcrumb); }
public ActionResult Canonical(String product) { try { var bc = new BreadcrumbModel(); var model = GetDetailModelFromProduct(product, bc, false); if (!ProductUrlIsCorrect(model.ProductDetail)) { throw Utility.Exception404(); } this.BuildBreadcrumb(bc, model.ProductDetail.DefaultCategory, model.ProductDetail.DefaultCollection, Constants.GenderFor(model.ProductDetail.DefaultGender), model.ProductDetail.DefaultGender.ToLower()); //navigation should not be available since it's not entering from a catalog search model.IsCanonicalUrl = true; if (!String.IsNullOrEmpty(Request.QueryString["color"])) { //color selected in previous page model.SelectedColor = model.ColorsAndSizes.GetProductColorModel(Request.QueryString["color"]); if (model.SelectedColor != null) { model.ProductImages = DetailManager.GetProductImageModelByColor(product, model.SelectedColor.ColorCode); } } return(BuildDetailView(model)); } catch { throw Utility.Exception404(); } }
private void BuildProductsNavigation(String productId, BreadcrumbModel bc, DetailModel model) { model.NextProductUrl = NextProductUrl(productId, bc); model.PreviousProductUrl = PreviousProductUrl(productId, bc); }
public static BreadcrumbModel ConvertTo(KeyValuePair <string, string> keyValuePair) { BreadcrumbModel model = new BreadcrumbModel(); SubjectManager subjectManager = new SubjectManager(); switch (keyValuePair.Key) { case "FREETEXT_SEARCH_KEY": { model.DisplayName = "Sucheingabe"; model.DisplayValue = keyValuePair.Value; model.Key = keyValuePair.Key; model.Value = keyValuePair.Value; break; } case "NutrientClaim": { NutrientClaim nc = (NutrientClaim)Convert.ToInt32(keyValuePair.Value); model.DisplayName = "Nährstoffanspruch"; model.DisplayValue = nc.GetAttribute <DisplayAttribute>().Name; model.Key = keyValuePair.Key; model.Value = keyValuePair.Value; break; } case "RootDepths": { RootDepth rd = (RootDepth)Convert.ToInt32(keyValuePair.Value); model.DisplayName = "Wurzel-Tiefe"; model.DisplayValue = rd.GetAttribute <DisplayAttribute>().Name; model.Key = keyValuePair.Key; model.Value = keyValuePair.Value; break; } case "Sowing": { model.DisplayName = "Aussaat"; model.DisplayValue = ((TimePeriodMonth)Convert.ToInt32(keyValuePair.Value)).ToString(); model.Key = keyValuePair.Key; model.Value = keyValuePair.Value; break; } case "Harvest": { model.DisplayName = "Ernten"; model.DisplayValue = ((TimePeriodMonth)Convert.ToInt32(keyValuePair.Value)).ToString(); model.Key = keyValuePair.Key; model.Value = keyValuePair.Value; break; } case "Bloom": { model.DisplayName = "Blütezeit"; model.DisplayValue = ((TimePeriodMonth)Convert.ToInt32(keyValuePair.Value)).ToString(); model.Key = keyValuePair.Key; model.Value = keyValuePair.Value; break; } case "SeedMaturity": { model.DisplayName = "Samenreife"; model.DisplayValue = ((TimePeriodMonth)Convert.ToInt32(keyValuePair.Value)).ToString(); model.Key = keyValuePair.Key; model.Value = keyValuePair.Value; break; } case "PositivInteractionOn": { string plantName = subjectManager.Get(Convert.ToInt64(keyValuePair.Value))?.Name; model.DisplayName = "Positiven Effekt auf"; model.DisplayValue = plantName; model.Key = keyValuePair.Key; model.Value = keyValuePair.Value; break; } case "NegativInteractionOn": { string plantName = subjectManager.Get(Convert.ToInt64(keyValuePair.Value))?.Name; model.DisplayName = "Negativen Effekt auf"; model.DisplayValue = plantName; model.Key = keyValuePair.Key; model.Value = keyValuePair.Value; break; } case "DoNegativInteraction": { string plantName = subjectManager.Get(Convert.ToInt64(keyValuePair.Value))?.Name; model.DisplayName = "beeinflusst negativ"; model.DisplayValue = plantName; model.Key = keyValuePair.Key; model.Value = keyValuePair.Value; break; } case "DoPositivInteraction": { string plantName = subjectManager.Get(Convert.ToInt64(keyValuePair.Value))?.Name; model.DisplayName = "beeinflusst positiv"; model.DisplayValue = plantName; model.Key = keyValuePair.Key; model.Value = keyValuePair.Value; break; } default: { model.DisplayName = keyValuePair.Key; model.DisplayValue = keyValuePair.Value; model.Key = keyValuePair.Key; model.Value = keyValuePair.Value; break; } } return(model); }
private string PreviousProductUrl(string productId, BreadcrumbModel bc) { var prevProd = ProductsManager.PreviousProductCode(this.Session, productId); return(BuildUrl(bc, prevProd)); }
private string NextProductUrl(string productId, BreadcrumbModel bc) { var nextPod = ProductsManager.NextProductCode(this.Session, productId); return(BuildUrl(bc, nextPod)); }
public async Task <IViewComponentResult> InvokeAsync(string controllername, string actionname) { // var user = await SessionCookieHelper.CurrentUser(HttpContextAccessor.HttpContext); // var model = new BreadcrumbModel(); model.ControllerName = controllername; model.ActionName = actionname; var data = await _SY_MenuFunctionService.GetAllActiveByUserId(HttpContextAccessor.HttpContext, user); var dataList = data.ToList(); model.CurrentView = dataList.FirstOrDefault(n => n.ControllerName.Equals(model.ControllerName) && n.ActionName.Equals(model.ActionName)); var k = await LanguageHelper.GetMenuLanguageText(string.Format("{0}:{1}", controllername, actionname)); if (!string.IsNullOrWhiteSpace(k)) { if (model.CurrentView != null) { model.CurrentView.MenuName = k; } } model.Breadcrumb = await _SY_MenuFunctionService.GetBreadcrumb(model.CurrentView != null?model.CurrentView.Id : "", model.CurrentView != null?model.CurrentView.ParentId : "", ""); //List var listModel = new List <SelectListModel_Breadcrumb>(); if (!string.IsNullOrWhiteSpace(model.Breadcrumb)) { var id = model.Breadcrumb.Split(new[] { ',' }, StringSplitOptions.RemoveEmptyEntries); if (id.Any()) { foreach (var item in id.Reverse()) { var objF = dataList.FirstOrDefault(n => n.Id.Equals(item)); if (objF != null) { var childFunc = dataList.Where(n => n.ParentId == objF.Id && n.MenuType == "2"); if (!listModel.Any(n => n.ControllerName == objF.ControllerName && n.ActionName == objF.ActionName)) { if (model.CurrentView != null) { if (model.CurrentView.ControllerName == objF.ControllerName && model.CurrentView.ActionName == objF.ActionName) { } else { var menuname = await LanguageHelper.GetMenuLanguageText(string.Format("{0}:{1}", objF.ControllerName, objF.ActionName)); listModel.Add(new SelectListModel_Breadcrumb { MenuName = objF.MenuName, ControllerName = objF.ControllerName, ActionName = objF.ActionName, isFolder = childFunc.Any() ? false : true }); } } else { var menuname = await LanguageHelper.GetMenuLanguageText(string.Format("{0}:{1}", objF.ControllerName, objF.ActionName)); listModel.Add(new SelectListModel_Breadcrumb { MenuName = objF.MenuName, ControllerName = objF.ControllerName, ActionName = objF.ActionName, isFolder = childFunc.Any() ? false : true }); } } } } } } model.Data = listModel; return(View(model)); }
public static string BuildCatalogUrl(BreadcrumbModel breadcrumb) { var fullUrl = string.Format("{0}://{1}/{2}", HttpContext.Current.Request.Url.Scheme, HttpContext.Current.Request.Url.Authority, BreadcrumbAsUrl(breadcrumb)); return(fullUrl.ToLower()); }