private IEnumerable <BreadCrumbViewModel> GetItemBreadCrumbs(int id, BreadCrumbType fromType, BreadCrumbType type) { var item = _productData.GetProductById(id); var crumbs = new List <BreadCrumbViewModel>(); if (fromType == BreadCrumbType.Section) { crumbs.Add(new BreadCrumbViewModel() { BreadCrumbType = fromType, Id = item.Section.Id.ToString(), Name = item.Section.Name }); } else { crumbs.Add(new BreadCrumbViewModel() { BreadCrumbType = fromType, Id = item.Brand.Id.ToString(), Name = item.Brand.Name }); } crumbs.Add(new BreadCrumbViewModel() { BreadCrumbType = type, Id = item.Id.ToString(), Name = item.Name }); return(crumbs); }
/// <summary> /// Формирует список бренд+товар или категория+товар /// </summary> /// <param name="id"></param> /// <param name="fromType"></param> /// <param name="type"></param> /// <returns></returns> private IEnumerable <BreadCrumbViewModel> GetItemBreadCrumbs(int id, BreadCrumbType fromType, BreadCrumbType type) { var item = _productService.GetProductById(id); var crumbs = new List <BreadCrumbViewModel>(); var breadCrumbViewModel = fromType == BreadCrumbType.Category ? new BreadCrumbViewModel { BreadCrumbType = fromType, Id = item.Category.Id.ToString(), Name = item.Category.Name } : new BreadCrumbViewModel { BreadCrumbType = fromType, Id = item.Brand.Id.ToString(), Name = item.Brand.Name }; crumbs.Add(breadCrumbViewModel); crumbs.Add(new BreadCrumbViewModel { BreadCrumbType = type, Id = item.Id.ToString(), Name = item.Name }); return(crumbs); }
/// <summary>Displays a menu an prompts the user to select a menu item.</summary> /// <param name="menuName">The name of the menu (it's NOT case sensitive)</param> /// <param name="title">The title of the menu</param> /// <param name="breadCrumbType">The type of breadcrumb trail you would like to see.</param> public async Task DisplayMenuAsync(string menuName, string title, BreadCrumbType breadCrumbType) { var menuList = _menuRepository.LoadMenus(menuName); var instantiatedMenuList = _menuRepository.CreateMenuItems(menuList); var newMenu = new ConsoleMenuWrapper { Title = title, BreadCrumbTitle = BuildBreadCrumbTrail(breadCrumbType, title), MenuItems = instantiatedMenuList }; _menuStack.Push(newMenu); bool clearScreen = true; while (true) { ShowOneMenu(clearScreen); ConsoleMenuItemResponse response = await DoWorkAsync(); if (response.ExitMenu) { break; } clearScreen = response.ClearScreen; } _menuStack.Pop(); }
public void Initialize(BreadCrumbType type, EntityType entityType, string key, string projectionkey) { this.type = type; switch (entityType) { case EntityType.BusinessEntity: AddBusinessBlurb(key, false); break; case EntityType.BusinessService: if (null != projectionkey) { AddServiceProjectionBlurb(key, projectionkey, false); } else { AddServiceBlurb(key, false); } break; case EntityType.BindingTemplate: AddBindingBlurb(key, false); break; case EntityType.TModel: AddTModelBlurb(key, false); break; default: break; } }
public TestSubMenuItem(string menu, string text, string title, BreadCrumbType breadCrumbType, IConsoleMenuController controller) { _menu = menu; _title = title; _breadCrumbType = breadCrumbType; _controller = controller; ItemText = text; }
public IViewComponentResult Invoke( BreadCrumbType type, int id, BreadCrumbType fromType) { if (!Enum.IsDefined(typeof(BreadCrumbType), type)) { throw new InvalidEnumArgumentException(nameof(type), (int)type, typeof(BreadCrumbType)); } if (!Enum.IsDefined(typeof(BreadCrumbType), fromType)) { throw new InvalidEnumArgumentException(nameof(fromType), (int)fromType, typeof(BreadCrumbType)); } switch (type) { case BreadCrumbType.Section: var section = _productData.GetSectionById(id); return(View(new List <BreadCrumbViewModel>() { new BreadCrumbViewModel() { BreadCrumbType = type, Id = id.ToString(), Name = section.Name } })); case BreadCrumbType.Brand: var brand = _productData.GetBrandById(id); return(View(new List <BreadCrumbViewModel>() { new BreadCrumbViewModel() { BreadCrumbType = type, Id = id.ToString(), Name = brand.Name } })); case BreadCrumbType.Item: var crumbs = GetItemBreadCrumbs(id, fromType, type); return(View(crumbs)); case BreadCrumbType.None: default: return(View(new List <BreadCrumbViewModel>())); } }
private (BreadCrumbType Type, int Id, BreadCrumbType FromType) GetParametres() { BreadCrumbType type = Request.Query.ContainsKey("SectionId") ? BreadCrumbType.Section : Request.Query.ContainsKey("BrandId") ? BreadCrumbType.Brand : BreadCrumbType.None; if ((string)ViewContext.RouteData.Values["action"] == nameof(CatalogController.ProductDetails)) { type = BreadCrumbType.Product; } var id = 0; var from_type = BreadCrumbType.Section; switch (type) { default: throw new ArgumentOutOfRangeException(); case BreadCrumbType.None: break; case BreadCrumbType.Section: id = int.Parse(Request.Query["sectionId"].ToString()); break; case BreadCrumbType.Brand: id = int.Parse(Request.Query["brandId"].ToString()); break; case BreadCrumbType.Product: //реализация с вебинара: //id = int.Parse(ViewContext.RouteData.Values["productId"].ToString() ?? string.Empty); //так ключ не находит, выдает ошибку //if (Request.Query.ContainsKey("fromBrand")) //не понятен смысл условия, т.к. при переходе по ссылке на товар (откуда угодно), //from_type = BreadCrumbType.Brand; //from_type всегда будет становится типом Brand //своя реализация: id = int.Parse(Request.Query["productId"].ToString()); //через ViewContext.RouteData.Value (как в вебинаре) не находило if (Request.Query["fromBrand"] == "brand") //fromBrand размещен в ссылке на товар со страницы магазина как asp-route-fromBrand { from_type = BreadCrumbType.Brand; } break; } return(type, id, from_type); //кортеж }
public IViewComponentResult Invoke(BreadCrumbType type, int id, BreadCrumbType fromType) { if (!Enum.IsDefined(typeof(BreadCrumbType), type)) { throw new InvalidEnumArgumentException(nameof(type), (int)type, typeof(BreadCrumbType)); } if (!Enum.IsDefined(typeof(BreadCrumbType), fromType)) { throw new InvalidEnumArgumentException(nameof(fromType), (int)fromType, typeof(BreadCrumbType)); } switch (type) { case BreadCrumbType.Category: // Название категории var category = _productService.GetCategoryById(id); return(View(new List <BreadCrumbViewModel> { new BreadCrumbViewModel { BreadCrumbType = BreadCrumbType.Category, Id = id.ToString(), Name = category.Name } })); case BreadCrumbType.Brand: // Название бренда var brand = _productService.GetBrandById(id); return(View(new List <BreadCrumbViewModel> { new BreadCrumbViewModel { BreadCrumbType = BreadCrumbType.Brand, Id = id.ToString(), Name = brand.Name } })); case BreadCrumbType.Item: // Категория или бренд + название товара var crumbs = GetItemBreadCrumbs(id, fromType, type); return(View(crumbs)); case BreadCrumbType.None: default: return(View(new List <BreadCrumbViewModel>())); } }
public void Initialize(BreadCrumbType type, EntityType entityType, string key, int index) { this.type = type; switch (entityType) { case EntityType.Contact: AddContactBlurb(key, index, false); break; case EntityType.TModelInstanceInfo: AddInstanceInfoBlurb(key, index, false); break; default: break; } }
/// <summary> Передаем параметры </summary> public async Task <IViewComponentResult> InvokeAsync(BreadCrumbType type, int id, BreadCrumbType fromType) { //Проверяем параметры if (!Enum.IsDefined(typeof(BreadCrumbType), type)) { throw new InvalidEnumArgumentException(nameof(type), (int)type, typeof(BreadCrumbType)); } if (!Enum.IsDefined(typeof(BreadCrumbType), fromType)) { throw new InvalidEnumArgumentException(nameof(fromType), (int)fromType, typeof(BreadCrumbType)); } switch (type) { case BreadCrumbType.Section: var section = _productData.GetSectionById(id); return(View(new List <BreadCrumbViewModel> { new BreadCrumbViewModel() { BreadCrumbType = type, Id = id, Name = section.Name } })); case BreadCrumbType.Brand: var brand = _productData.GetBrandById(id); return(View(new List <BreadCrumbViewModel> { new BreadCrumbViewModel() { BreadCrumbType = type, Id = id, Name = brand.Name } })); case BreadCrumbType.Item: var crumbs = GetItemBreadCrumbs(id, fromType, type); return(View(crumbs)); } return(View(new List <BreadCrumbViewModel>())); }
/// <summary>Creates a breadcrumb trail.</summary> /// <param name="breadCrumbType">The type of breadcrumb trail you would like to see.</param> /// <param name="title">The title of the menu</param> private string BuildBreadCrumbTrail(BreadCrumbType breadCrumbType, string title) { if (breadCrumbType == BreadCrumbType.None) { return(string.Empty); } var currentMenu = _menuStack.Count > 0 ? _menuStack.Peek() : null; if (currentMenu == null || string.IsNullOrWhiteSpace(currentMenu.Title)) { return(title); } if (breadCrumbType == BreadCrumbType.ParentOnly || string.IsNullOrWhiteSpace(currentMenu.BreadCrumbTitle)) { return($"{currentMenu.Title} > {title}"); } return($"{currentMenu.BreadCrumbTitle} > {title}"); }
public void Initialize(BreadCrumbType type, EntityType entityType, string key) { Initialize(type, entityType, key, null); }