コード例 #1
0
        /// <summary>
        /// Retrieve the specific menu for a concern.
        /// </summary>
        /// <param name="concern">A concern.</param>
        /// <returns>A dictionary of the menu.</returns>
        public static Dictionary <string, string> GetMenu(this ConcernInfo concern)
        {
            var menu = new Dictionary <string, string>();

            if (!concern.IsValid())
            {
                return(menu);
            }

            if (concern.Layouts.IsValid())
            {
                foreach (var layout in concern.Layouts)
                {
                    if (layout.IsValid() &&
                        layout.Title.IsValid() &&
                        layout.IsVisibleInMenu &&
                        !menu.Any(item =>
                                  item.Key == $"{concern.Id.ToCamelCase()}-{layout.Id.ToCamelCase()}"))
                    {
                        menu.Add(
                            $"{concern.Id.ToCamelCase()}-{layout.Id.ToCamelCase()}",
                            layout.Title);
                    }
                }
            }

            return(menu);
        }
コード例 #2
0
        /// <summary>
        /// Convert an IEnumerable to a LayoutList
        /// </summary>
        /// <param name="layouts">A list of LayoutInfo objects.</param>
        /// <param name="parent">A ConcernInfo object.</param>
        /// <returns>A LayoutList</returns>
        public static LayoutList ToLayoutList(
            this IEnumerable <LayoutInfo> layouts,
            ConcernInfo parent)
        {
            var result = new LayoutList();

            if (parent.IsValid())
            {
                foreach (var layout in layouts)
                {
                    if (layout.IsValid())
                    {
                        result.Add(layout);
                        result.Last().Parent = parent;
                    }
                }
            }

            return(result);
        }
コード例 #3
0
        /// <summary>
        /// Retrieve all direct references from a concern.
        /// </summary>
        /// <param name="concern">A ConcernInfo object.</param>
        /// <returns>A list of EntityInfo.</returns>
        public static List <EntityInfo> GetConcernDirectReferences(this ConcernInfo concern)
        {
            var directReferences = new List <EntityInfo>();

            if (!concern.IsValid())
            {
                return(directReferences);
            }

            var entityComparer = new EntityInfoComparer();

            if (concern.Layouts.IsValid())
            {
                directReferences = directReferences
                                   .Union(
                    concern.Layouts.GetLayoutListDirectReferences(),
                    entityComparer)
                                   .ToList();
            }

            return(directReferences);
        }