protected internal override IEnumerable<SitemapNode> GetSitemapNodes(UrlHelper urlHelper, HttpContextBase httpContext) { yield return new SitemapNode(urlHelper.Action("Index", "Expression")) { Priority = 0.8m }; var repo = new RealDataRepo(); foreach (var expression in repo.GetExpressions()) { yield return new SitemapNode(urlHelper.Action("Expression", "Expression", new { expressionName = expression.Name })) { Priority = 0.50m }; } foreach (var keyword in repo.GetKeywords()) { yield return new SitemapNode(urlHelper.Action("Keyword", "Expression", new { keywordName = keyword.Name })) { Priority = 0.50m }; } }
protected internal override IEnumerable<SitemapNode> GetSitemapNodes(UrlHelper urlHelper, HttpContextBase httpContext) { yield return new SitemapNode(urlHelper.Action("Index", "Library")) { Priority = 0.8m }; var repo = new RealDataRepo(); foreach (var @class in repo.GetClasses()) { yield return new SitemapNode(urlHelper.Action("Class", "Library", new { className = @class.Name })) { Priority = 0.75m }; foreach (var methodGrp in @class.Methods.GroupBy(x => new { x.Name, x.Frameworks })) { int methodCount = 0; foreach (var method in methodGrp) { Frameworks? framework = null; if (method.Frameworks != Frameworks.All) { framework = Enum.GetValues(typeof(Frameworks)).Cast<Frameworks>().Reverse().Where(x => method.Frameworks.HasFlag(x)).FirstOrDefault(); } var methodUrl = urlHelper.Action("Method", "Library", new { className = @class.Name, methodName = method.Name.Replace('<', '(').Replace('>', ')'), framework = framework, o = methodCount > 0 ? (int?)methodCount : null }, null); yield return new SitemapNode(methodUrl) { Priority = .5m }; methodCount++; } } foreach (var property in @class.Properties) { Frameworks? framework = null; if (property.Frameworks != Frameworks.All) { framework = Enum.GetValues(typeof(Frameworks)).Cast<Frameworks>().Reverse().Where(x => property.Frameworks.HasFlag(x)).FirstOrDefault(); } var propertyUrl = urlHelper.Action("Property", "Library", new { className = @class.Name, propertyName = property.Name, framework = framework }); yield return new SitemapNode(propertyUrl) { Priority = .5m }; } } }