コード例 #1
0
 public static IEnumerable <ContentType> GetAvailableEpiContentTypes(IContentTypeRepository contentTypeRepository)
 {
     return(contentTypeRepository
            .List()
            .Where(x =>
                   x.ModelType != null && !GraphTypeFilter.ShouldFilter(x.ModelType)
                   ));
 }
コード例 #2
0
        public LinkItemGraphType(IUrlResolver urlResolver, IContentLoader contentLoader, IPermanentLinkMapper permanentLinkMapper)
        {
            Name = "LinkItem";

            Field <StringGraphType>("Attributes", resolve: x => JsonConvert.SerializeObject(x.Source.Attributes));
            Field <StringGraphType>("Href",
                                    arguments: new QueryArguments(
                                        new QueryArgument <BooleanGraphType>
            {
                DefaultValue = false,
                Name         = Constants.Arguments.ARGUMENT_ABSOLUTE_URL
            },
                                        new QueryArgument <BooleanGraphType>()
            {
                Name         = Constants.Arguments.ARGUMENT_ALLOWFALLBACK_LANG,
                Description  = "Allow Fallback Language",
                DefaultValue = true
            }
                                        ),
                                    resolve: x =>
            {
                var locale           = x.GetLocaleFromArgument();
                var absoluteUrl      = x.GetArgument <bool>(Constants.Arguments.ARGUMENT_ABSOLUTE_URL);
                var permanentLinkMap = permanentLinkMapper.Find(new UrlBuilder(x.Source.Href));

                if (permanentLinkMap == null)
                {
                    return(urlResolver.GetUrl(x.Source.Href));
                }

                var content = contentLoader
                              .Get <IContent>(
                    permanentLinkMap.ContentReference,
                    x.CreateLoaderOptionsFromAgruments()
                    );

                var localizable = content as ILocale;

                if (content != null && GraphTypeFilter.ShouldFilter(content))
                {
                    return(null);
                }

                if (localizable != null)
                {
                    return(permanentLinkMap.ContentReference.GetUrl(localizable.Language.Name, absoluteUrl));
                }

                return(urlResolver.GetUrl(x.Source.Href));
            });
            Field(x => x.Target);
            Field(x => x.Text);
            Field(x => x.Title);
        }
コード例 #3
0
        public ContentReferenceGraphType(IContentLoader contentLoader, IServiceLocator serviceLocator)
        {
            Name = "ContentReference";

            // Get IContent graph interface type
            var contentInterface = GraphTypeLoader.GetGraphInterface <IContent>(serviceLocator);

            Field("Id", x => x.ID);
            Field(contentInterface.GetType(),
                  "Content",
                  resolve: x => {
                var content = contentLoader.Get <IContent>(x.Source);
                return(GraphTypeFilter.ShouldFilter(content) ? null : content);
            });
        }
コード例 #4
0
 public static IEnumerable <IContent> FilterHiddenGraphTypes(this IEnumerable <IContent> enumerable)
 {
     return(enumerable.Where(x => !GraphTypeFilter.ShouldFilter(x)));
 }