/// <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 }); }
/// <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); }
/// <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); }
/// <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); }
/// <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); }
/// <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 }); }
/// <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); }
/// <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); }