<commit_before>using Microsoft.AspNetCore.Routing;
using Microsoft.Extensions.Localization;
using OrchardCore.Security.Permissions;
using System.Collections.Generic;

namespace OrchardCore.Environment.Navigation
{
    /// <summary>
    /// Represents a menu item descrbibed by an <see cref="INavigationProvider"/> implementation.
    /// A menu item can desbribe child menu items.
    /// </summary>
    public class MenuItem
    {
        public MenuItem()
        {
            Permissions = new List<Permission>();
            Classes = new List<string>();
            Items = new List<MenuItem>();
            LinkToFirstChild = true;
        }

        /// <summary>
        /// The text to display with the menu item.
        /// </summary>
        public LocalizedString Text { get; set; }

        /// <summary>
        /// The html id of the menu item.
        /// </summary>
        public string Id { get; set; }

        /// <summary>
        /// The final url that the menu item will link to. This property is computed
        /// based on <see cref="Url"/> or <see cref="RouteValues"/>.
        /// </summary>
        public string Href { get; set; }

        /// <summary>
        /// The optional url the menu item should link to.
        /// </summary>
        public string Url { get; set; }

        /// <summary>
        /// The relative position of the menu item among its siblings. e.g., 10, 0, "after".
        /// </summary>
        public string Position { get; set; }

        /// <summary>
        /// Whether the menu item should link to the same url as its first child.
        /// </summary>
        public bool LinkToFirstChild { get; set; }

        /// <summary>
        /// <c>True</c> if the menu item is local to the page, like a tab.
        /// </summary>
        public bool LocalNav { get; set; }

        /// <summary>
        /// The culture for which this menu item is used.
        /// </summary>
        public string Culture { get; set; }

        /// <summary>
        /// The resource the permission is protecting.
        /// </summary>
        public object Resource { get; set; }

        /// <summary>
        /// The child menu items.
        /// </summary>
        ///
        public List<MenuItem> Items { get; set; }

        /// <summary>
        /// The optional route values for this menu item.
        /// </summary>
        public RouteValueDictionary RouteValues { get; set; }

        /// <summary>
        /// The list of <see cref="Permission"/> objects the user must have in order to see this menu item.
        /// </summary>
        public List<Permission> Permissions { get; }

        /// <summary>
        /// The css classes to render with the menu item.
        /// </summary><commit_msg>Remove extra comment line in MenuItem<commit_after>using Microsoft.AspNetCore.Routing;
using Microsoft.Extensions.Localization;
using OrchardCore.Security.Permissions;
using System.Collections.Generic;

namespace OrchardCore.Environment.Navigation
{
    /// <summary>
    /// Represents a menu item descrbibed by an <see cref="INavigationProvider"/> implementation.
    /// A menu item can desbribe child menu items.
    /// </summary>
    public class MenuItem
    {
        public MenuItem()
        {
            Permissions = new List<Permission>();
            Classes = new List<string>();
            Items = new List<MenuItem>();
            LinkToFirstChild = true;
        }

        /// <summary>
        /// The text to display with the menu item.
        /// </summary>
        public LocalizedString Text { get; set; }

        /// <summary>
        /// The html id of the menu item.
        /// </summary>
        public string Id { get; set; }

        /// <summary>
        /// The final url that the menu item will link to. This property is computed
        /// based on <see cref="Url"/> or <see cref="RouteValues"/>.
        /// </summary>
        public string Href { get; set; }

        /// <summary>
        /// The optional url the menu item should link to.
        /// </summary>
        public string Url { get; set; }

        /// <summary>
        /// The relative position of the menu item among its siblings. e.g., 10, 0, "after".
        /// </summary>
        public string Position { get; set; }

        /// <summary>
        /// Whether the menu item should link to the same url as its first child.
        /// </summary>
        public bool LinkToFirstChild { get; set; }

        /// <summary>
        /// <c>True</c> if the menu item is local to the page, like a tab.
        /// </summary>
        public bool LocalNav { get; set; }

        /// <summary>
        /// The culture for which this menu item is used.
        /// </summary>
        public string Culture { get; set; }

        /// <summary>
        /// The resource the permission is protecting.
        /// </summary>
        public object Resource { get; set; }

        /// <summary>
        /// The child menu items.
        /// </summary>
        public List<MenuItem> Items { get; set; }

        /// <summary>
        /// The optional route values for this menu item.
        /// </summary>
        public RouteValueDictionary RouteValues { get; set; }

        /// <summary>
        /// The list of <see cref="Permission"/> objects the user must have in order to see this menu item.
        /// </summary>
        public List<Permission> Permissions { get; }

        /// <summary>
        /// The css classes to render with the menu item.
        /// </summary>
{'fraction_non_alphanumeric': 0.12703288760390313, 'fraction_numerical': 0.0010842067220816769, 'mean_word_length': 1.6108490566037736, 'pattern_counts': {'":': 0, '<': 81, '<?xml version=': 0, '>': 81, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '4043191', 'n_tokens_mistral': 1429, 'n_tokens_neox': 1394, 'n_words': 544}