示例#1
0
        public virtual bool Equals(Page other)
        {
            if (ReferenceEquals(null, other))
            {
                return false;
            }

            return ReferenceEquals(this, other) || Reflect().SequenceEqual(other.Reflect());
        }
示例#2
0
 public NavigationModel(Page navigation)
 {
     this.Navigation = navigation;
 }
示例#3
0
 /// <summary>
 /// Determines if a page is in the hierarchy list of another page
 /// </summary>
 /// <param name="left">First page</param>
 /// <param name="right">Second page</param>
 /// <returns>Boolean indicating success or failure</returns>
 public static bool IsInHierarchyOf(this Page left, Page right)
 {
     return right.HierarchyFor().Select(p => p.Name).Contains(left.Name);
 }
示例#4
0
        protected static Page Build(Navigation builder)
        {
            var parameters = new List<Parameter>();
            builder.Parameters.ForEach(param => parameters.Add(param));

            var claims = new List<Claim>();
            builder.Claims.ForEach(claim => claims.Add(claim));

            int index = 0;
            var children = new List<Page>();
            builder.Children.ForEach(child =>
            {
                child.Index = index++;
                children.Add(child);
            });

            var built = new Page
            {
                Id = GetIdentity(builder, builder.Id),
                Title = builder.Title,
                Name = builder.Name,
                ParentOverride = builder.ParentOverride,
                Description = builder.Description,
                Application = GetApplication(builder),
                Index = builder.Index,
                Options = builder.Options,
                Classifier = builder.Classifier,
                Condition = builder.Condition,
                Icon = builder.Icon,
                Parent = builder.Parent == null ? string.Empty : GetIdentity(builder.Parent, builder.Parent.Id),
                Children = children,
                Parameters = parameters,
                Claims = claims,
            };

            builder.RunCustomBuildingLogic(built);

            return built;
        }
示例#5
0
 protected virtual void RunCustomBuildingLogic(Page built)
 {
 }
示例#6
0
        /// <summary>
        /// Used to initialise the navigation information
        /// </summary>
        public ViewModelBase WithNavigation(Page navigation)
        {
            this.Navigation = new NavigationModel(navigation);

            return this;
        }