コード例 #1
0
        /// <summary>
        /// Gets the deep copy.
        /// </summary>
        /// <param name="data">The data.</param>
        /// <returns></returns>
        /// <remarks>
        /// This is useful in Silverlight.
        /// </remarks>
        public static MenuDisplayItemModel GetDeepCopy(this MenuDisplayItemModel data)
        {
            if (data == null)
            {
                return(null);
            }

            var children = (data.ChildItems != null) ?
                           data.ChildItems.Select(i => i.GetDeepCopy()).ToArray()
                :
                           null;

            return(new MenuDisplayItemModel
            {
                ChildItems = children,
                Description = data.Description,
                DisplayText = data.DisplayText,
                Id = data.Id,
                IsDefaultSelection = data.IsDefaultSelection,
                IsEnabled = data.IsEnabled,
                IsSelected = data.IsSelected,
                ItemCategory = data.ItemCategory,
                ItemName = data.ItemName,
                SortOrdinal = data.SortOrdinal,
                Tag = data.Tag
            });
        }
コード例 #2
0
 /// <summary>
 /// Fluently returns <see cref="MenuDisplayItemModel" /> with child items.
 /// </summary>
 /// <param name="data">The data.</param>
 /// <param name="list">The list.</param>
 public static MenuDisplayItemModel WithChildItems(this MenuDisplayItemModel data, MenuDisplayItemModel[] list)
 {
     if (data == null)
     {
         return(null);
     }
     if (list == null)
     {
         return(data);
     }
     data.ChildItems = list;
     return(data);
 }
コード例 #3
0
 /// <summary>
 /// Fluently returns <see cref="MenuDisplayItemModel" /> with child item.
 /// </summary>
 /// <param name="data">The data.</param>
 /// <param name="child">The child.</param>
 public static MenuDisplayItemModel WithChildItem(this MenuDisplayItemModel data, MenuDisplayItemModel child)
 {
     if (data == null)
     {
         return(null);
     }
     if (child == null)
     {
         return(data);
     }
     data.ChildItems = new MenuDisplayItemModel[] { child };
     return(data);
 }
コード例 #4
0
 /// <summary>
 /// Fluently returns <see cref="MenuDisplayItemModel" /> with child items.
 /// </summary>
 /// <param name="data">The data.</param>
 /// <param name="list">The list.</param>
 public static MenuDisplayItemModel WithChildItems(this MenuDisplayItemModel data, List <MenuDisplayItemModel> list)
 {
     if (data == null)
     {
         return(null);
     }
     if (list == null)
     {
         return(data);
     }
     data.ChildItems = list.ToArray();
     return(data);
 }
コード例 #5
0
        /// <summary>
        /// Converts the <see cref="DisplayItemModel"/> into a menu display item model.
        /// </summary>
        /// <param name="data">The data.</param>
        public static MenuDisplayItemModel ToMenuDisplayItemModel(this DisplayItemModel data)
        {
            if (data == null)
            {
                return(null);
            }

            var menuItem = new MenuDisplayItemModel();

            FrameworkTypeUtility.SetProperties(data, menuItem);

            return(menuItem);
        }
コード例 #6
0
 /// <summary>
 /// Fluently returns <see cref="MenuDisplayItemModel" /> without children.
 /// </summary>
 /// <param name="data">The data.</param>
 public static MenuDisplayItemModel WithoutChildren(this MenuDisplayItemModel data)
 {
     if (data == null)
     {
         return(null);
     }
     return(new MenuDisplayItemModel
     {
         Description = data.Description,
         DisplayText = data.DisplayText,
         Id = data.Id,
         ItemCategory = data.ItemCategory,
         ItemName = data.ItemName,
         SortOrdinal = data.SortOrdinal
     });
 }
コード例 #7
0
        /// <summary>
        /// Converts the <see cref="ISegment"/> into a menu display item model.
        /// </summary>
        /// <param name="data">The data.</param>
        /// <param name="group">The group.</param>
        public static MenuDisplayItemModel ToMenuDisplayItemModel(this ISegment data, IGroupable group)
        {
            if (data == null)
            {
                return(null);
            }

            var @namespace = typeof(PublicationContext).Namespace;

            var dataOut = new MenuDisplayItemModel()
            {
                GroupDisplayText = (group == null) ? $"{@namespace}.{nameof(Segment)}" : group.GroupDisplayText,
                GroupId          = (group == null) ? $"{@namespace}.{nameof(Segment)}".ToLowerInvariant() : group.GroupId,
                Id       = data.SegmentId.GetValueOrDefault(),
                ItemName = data.SegmentName
            };

            return(dataOut);
        }
コード例 #8
0
        /// <summary>
        /// Converts the <see cref="IFragment"/> into a menu display item model.
        /// </summary>
        /// <param name="data">The document.</param>
        /// <param name="group">The group.</param>
        /// <param name="copyFragmentContent">if set to <c>true</c> include <see cref="IFragment"/> content.</param>
        public static MenuDisplayItemModel ToMenuDisplayItemModel(this IFragment data, IGroupable group, bool copyFragmentContent)
        {
            if (data == null)
            {
                return(null);
            }

            var @namespace = typeof(PublicationContext).Namespace;

            var dataOut = new MenuDisplayItemModel()
            {
                DisplayText      = data.FragmentDisplayName,
                GroupDisplayText = (group == null) ? $"{@namespace}.{nameof(Fragment)}" : group.GroupDisplayText,
                GroupId          = (group == null) ? $"{@namespace}.{nameof(Fragment)}".ToLowerInvariant() : group.GroupId,
                Id       = data.FragmentId.GetValueOrDefault(),
                ItemName = data.FragmentName
            };

            if (copyFragmentContent)
            {
                dataOut.Description = data.Content;
            }
            return(dataOut);
        }