コード例 #1
0
        public RootLinks GetPageLinks(IJsonApiContext jsonApiContext)
        {
            var linkBuilder = jsonApiContext.LinkBuilder;

            if (ShouldIncludeLinksObject())
            {
                return(null);
            }

            var rootLinks = new RootLinks();

            if (CurrentPage > 1)
            {
                rootLinks.First = linkBuilder.GetPageLink(jsonApiContext, 1, PageSize);
            }

            if (CurrentPage > 1)
            {
                rootLinks.Prev = linkBuilder.GetPageLink(jsonApiContext, CurrentPage - 1, PageSize);
            }

            if (CurrentPage < TotalPages)
            {
                rootLinks.Next = linkBuilder.GetPageLink(jsonApiContext, CurrentPage + 1, PageSize);
            }

            if (TotalPages > 0)
            {
                rootLinks.Last = linkBuilder.GetPageLink(jsonApiContext, TotalPages, PageSize);
            }

            return(rootLinks);
        }
コード例 #2
0
ファイル: PageManager.cs プロジェクト: davinderp/Code
        public RootLinks GetPageLinks(LinkBuilder linkBuilder)
        {
            if (!IsPaginated || (CurrentPage == 1 && TotalPages <= 0))
            {
                return(null);
            }

            var rootLinks = new RootLinks();

            if (CurrentPage > 1)
            {
                rootLinks.First = linkBuilder.GetPageLink(1, PageSize);
            }

            if (CurrentPage > 1)
            {
                rootLinks.Prev = linkBuilder.GetPageLink(CurrentPage - 1, PageSize);
            }

            if (CurrentPage < TotalPages)
            {
                rootLinks.Next = linkBuilder.GetPageLink(CurrentPage + 1, PageSize);
            }

            if (TotalPages > 0)
            {
                rootLinks.Last = linkBuilder.GetPageLink(TotalPages, PageSize);
            }

            return(rootLinks);
        }
コード例 #3
0
        public RootLinks GetPageLinks(LinkBuilder linkBuilder)
        {
            if (ShouldIncludeLinksObject())
            {
                return(null);
            }

            var rootLinks = new RootLinks();

            if (CurrentPage > 1)
            {
                rootLinks.First = linkBuilder.GetPageLink(1, PageSize);
            }

            if (CurrentPage > 1)
            {
                rootLinks.Prev = linkBuilder.GetPageLink(CurrentPage - 1, PageSize);
            }

            if (CurrentPage < TotalPages)
            {
                rootLinks.Next = linkBuilder.GetPageLink(CurrentPage + 1, PageSize);
            }

            if (TotalPages > 0)
            {
                rootLinks.Last = linkBuilder.GetPageLink(TotalPages, PageSize);
            }

            return(rootLinks);
        }
コード例 #4
0
        public IMultiLink GetLinked(IMultiLink unlinkedLink)
        {
            var       id = unlinkedLink.TargetId;
            IRootLink rootLink;

            if (RootLinks.TryGetValue(id, out rootLink))
            {
                return(new EntryMultiLink(rootLink));
            }
            IEntryLink entryLink;

            if (EntryLinks.TryGetValue(id, out entryLink))
            {
                return(new EntryMultiLink(entryLink));
            }
            IGroupLink groupLink;

            if (GroupLinks.TryGetValue(id, out groupLink))
            {
                return(new GroupMultiLink(groupLink));
            }
            IProfileLink profileLink;

            if (ProfileLinks.TryGetValue(id, out profileLink))
            {
                return(new ProfileMultiLink(profileLink));
            }
            IRuleLink ruleLink;

            if (RuleLinks.TryGetValue(id, out ruleLink))
            {
                return(new RuleMultiLink(ruleLink));
            }
            throw new ArgumentException(
                      $"Link target not found. {nameof(unlinkedLink.TargetId)}='{unlinkedLink.TargetId}'",
                      nameof(unlinkedLink));
        }