private void setCurrent()
        {
            if (String.IsNullOrWhiteSpace(currentPath))
            {
                return;
            }

            var currentValue = breadCrumbs.FirstOrDefault(x => x.Key.Equals(currentPath) && x.Current.Equals(true));

            if (currentValue == null)
            {
                //There can only be one!!
                var currentCurrnet = breadCrumbs.FirstOrDefault(x => x.Current.Equals(true));
                if (currentCurrnet != null)
                {
                    currentCurrnet.Current = false;
                }


                var data = new BreadCrumbDataClass();
                data.Key        = currentPath;
                data.Display    = currentPath;
                data.Parameters = setParameters(currentQuery);
                data.Current    = true;

                breadCrumbs.Add(data);
            }
        }
        private static string setLinkItemParemeters(BreadCrumbDataClass crumb)
        {
            if (crumb.Parameters == null || crumb.Parameters.Count.Equals(0))
            {
                return(String.Empty);
            }

            var parameter = new List <string>();

            foreach (var p in crumb.Parameters)
            {
                parameter.Add(String.Format("{0}={1}", p.Key, p.Value));
            }

            return("?" + String.Join("&", parameter.ToArray()));
        }
        private static string setLinkItem(BreadCrumbDataClass crumb)
        {
            var item = new StringBuilder();

            if (!crumb.Current)
            {
                item.AppendLine("<li class=\"breadcrumb-item \">");
                item.AppendLine(String.Format("<a href=\"{0}{1}\" >{2}</a>", crumb.Key, setLinkItemParemeters(crumb), crumb.Display));
            }
            else
            {
                item.AppendLine("<li class=\"breadcrumb-item active\" aria-current=\"page\">");
                item.AppendLine(crumb.Display);
            }



            item.AppendLine("</li>");
            return(item.ToString());
        }
        private void setBreadCrumbs()
        {
            if (referers.Count > 0)
            {
                var urlValue     = referers[0].ToString();
                var urlElements  = urlValue.Split("/").ToList();
                var hostLocation = urlElements.IndexOf(this.Request.Host.Value);
                if (urlElements.Count() > hostLocation)
                {
                    var razorPageURL = urlElements[hostLocation + 1];
                    var razorPage    = razorPageURL.Split("?");
                    if (razorPage.Count() > 0)
                    {
                        var data = new BreadCrumbDataClass();
                        data.Key     = razorPage[0].ToString();
                        data.Display = data.Key;
                        if (String.IsNullOrWhiteSpace(data.Key))
                        {//This means you have come from the home page.
                            data.Key     = "Index";
                            data.Display = "Home";
                        }
                        //Make sure I'm not adding the page back in I have removed
                        if (crumbRemoved.FirstOrDefault(x => x.Equals(data.Key)) != null)
                        {
                            return;
                        }

                        if (setCurrentAsDisabled(data.Key))
                        {
                            return;//Do not set if already exists
                        }
                        if (razorPage.Count().Equals(2))
                        {
                            data.Parameters = setParameters(razorPage[1]);
                        }
                        breadCrumbs.Add(data);
                    }
                }
            }
        }