Beispiel #1
0
        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());
        }
Beispiel #3
0
        // GET: Client
        public ActionResult Index()
        {
            var breadCrumbs = new BreadcrumbModel("Customers", new List <BreadcrumbLink>());

            ViewBag.BreadCrumbs = breadCrumbs;
            return(View());
        }
Beispiel #4
0
        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
                    }
                }
                ;
            }
        }
Beispiel #5
0
        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;
        }
Beispiel #8
0
        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);
        }
Beispiel #9
0
        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());
        }
Beispiel #10
0
        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));
        }
Beispiel #11
0
        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));
        }
Beispiel #12
0
 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));
     }
 }
Beispiel #15
0
        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);
        }
Beispiel #16
0
        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);
     }
 }
Beispiel #18
0
        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());
        }
Beispiel #19
0
        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();
        }
Beispiel #21
0
        // 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();
            }
        }
Beispiel #22
0
        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);
        }
Beispiel #23
0
        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);
        }
Beispiel #25
0
        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();
            }
        }
Beispiel #26
0
 private void BuildProductsNavigation(String productId, BreadcrumbModel bc, DetailModel model)
 {
     model.NextProductUrl     = NextProductUrl(productId, bc);
     model.PreviousProductUrl = PreviousProductUrl(productId, bc);
 }
Beispiel #27
0
        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);
        }
Beispiel #28
0
        private string PreviousProductUrl(string productId, BreadcrumbModel bc)
        {
            var prevProd = ProductsManager.PreviousProductCode(this.Session, productId);

            return(BuildUrl(bc, prevProd));
        }
Beispiel #29
0
        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());
        }