コード例 #1
0
        public PartialFindResult <TagForApiContract> GetList(
            string query                   = "",
            bool allowChildren             = true,
            string categoryName            = "",
            int start                      = 0, int maxResults = DefaultMax, bool getTotalCount = false,
            NameMatchMode nameMatchMode    = NameMatchMode.Exact,
            TagSortRule?sort               = null,
            bool preferAccurateMatches     = false,
            TagOptionalFields fields       = TagOptionalFields.None,
            ContentLanguagePreference lang = ContentLanguagePreference.Default,
            TagTargetTypes target          = TagTargetTypes.All)
        {
            maxResults = Math.Min(maxResults, fields != TagOptionalFields.None ? AbsoluteMax : int.MaxValue);
            var queryParams = new TagQueryParams(new CommonSearchParams(TagSearchTextQuery.Create(query, nameMatchMode), false, preferAccurateMatches),
                                                 new PagingProperties(start, maxResults, getTotalCount))
            {
                AllowChildren      = allowChildren,
                CategoryName       = categoryName,
                SortRule           = sort ?? TagSortRule.Name,
                LanguagePreference = lang,
                Target             = target
            };

            var tags = _queries.Find(queryParams, fields, lang);

            return(tags);
        }
コード例 #2
0
        public TagForApiContract(Tag tag,
                                 IEntryImagePersisterOld thumbPersister,
                                 ContentLanguagePreference languagePreference,
                                 TagOptionalFields optionalFields)
        {
            ParamIs.NotNull(() => tag);

            CategoryName        = tag.CategoryName;
            CreateDate          = tag.CreateDate;
            DefaultNameLanguage = tag.TranslatedName.DefaultLanguage;
            Id         = tag.Id;
            Name       = tag.TranslatedName[languagePreference];
            Status     = tag.Status;
            Targets    = (int)tag.Targets;
            UrlSlug    = tag.UrlSlug;
            UsageCount = tag.UsageCount;
            Version    = tag.Version;

            var includeAdditionalNames = optionalFields.HasFlag(TagOptionalFields.AdditionalNames);

            if (includeAdditionalNames)
            {
                AdditionalNames = tag.Names.GetAdditionalNamesStringForLanguage(languagePreference);
            }

            if (optionalFields.HasFlag(TagOptionalFields.Description))
            {
                Description = tag.Description[languagePreference];
            }

            if (optionalFields.HasFlag(TagOptionalFields.MainPicture) && tag.Thumb != null && thumbPersister != null)
            {
                MainPicture = new EntryThumbForApiContract(tag.Thumb, thumbPersister);
            }

            if (optionalFields.HasFlag(TagOptionalFields.Names))
            {
                Names = tag.Names.Select(n => new LocalizedStringWithIdContract(n)).ToArray();
            }

            if (optionalFields.HasFlag(TagOptionalFields.Parent) && tag.Parent != null)
            {
                Parent = new TagBaseContract(tag.Parent, languagePreference, includeAdditionalNames);
            }

            if (optionalFields.HasFlag(TagOptionalFields.RelatedTags))
            {
                RelatedTags = tag.RelatedTags.Select(t => new TagBaseContract(t.LinkedTag, languagePreference, includeAdditionalNames)).ToArray();
            }

            if (optionalFields.HasFlag(TagOptionalFields.TranslatedDescription))
            {
                TranslatedDescription = new EnglishTranslatedStringContract(tag.Description);
            }

            if (optionalFields.HasFlag(TagOptionalFields.WebLinks))
            {
                WebLinks = tag.WebLinks.Links.Select(w => new WebLinkForApiContract(w)).ToArray();
            }
        }
コード例 #3
0
		public TagForApiContract(Tag tag, 
			IEntryImagePersisterOld thumbPersister,
			bool ssl,			
			TagOptionalFields optionalFields) {
			
			CategoryName = tag.CategoryName;
			Id = tag.Id;
			Name = tag.Name;

			if (optionalFields.HasFlag(TagOptionalFields.Description)) {
				Description = tag.Description;
			}

			if (optionalFields.HasFlag(TagOptionalFields.MainPicture) && tag.Thumb != null) {
				MainPicture = new EntryThumbForApiContract(tag.Thumb, thumbPersister, ssl);
			}

		}
コード例 #4
0
        public TagForApiContract(Tag tag,
                                 IEntryImagePersisterOld thumbPersister,
                                 bool ssl,
                                 TagOptionalFields optionalFields)
        {
            CategoryName = tag.CategoryName;
            Id           = tag.Id;
            Name         = tag.Name;

            if (optionalFields.HasFlag(TagOptionalFields.Description))
            {
                Description = tag.Description;
            }

            if (optionalFields.HasFlag(TagOptionalFields.MainPicture) && tag.Thumb != null)
            {
                MainPicture = new EntryThumbForApiContract(tag.Thumb, thumbPersister, ssl);
            }
        }
コード例 #5
0
        public PartialFindResult <TagForApiContract> GetList(
            string query                = "",
            bool allowAliases           = false,
            string categoryName         = "",
            int start                   = 0, int maxResults = defaultMax, bool getTotalCount = false,
            NameMatchMode nameMatchMode = NameMatchMode.Exact,
            TagOptionalFields fields    = TagOptionalFields.None)
        {
            maxResults = Math.Min(maxResults, absoluteMax);
            var ssl         = WebHelper.IsSSL(Request);
            var queryParams = new CommonSearchParams(TagSearchTextQuery.Create(query, nameMatchMode), false, false, false);
            var paging      = new PagingProperties(start, maxResults, getTotalCount);

            var tags = queries.Find(t => new TagForApiContract(t, thumbPersister, ssl, fields),
                                    queryParams, paging,
                                    allowAliases, categoryName);

            return(tags);
        }
コード例 #6
0
        public PartialFindResult<TagForApiContract> GetList(
            string query = "",
            bool allowAliases = false,
            string categoryName = "",
            int start = 0, int maxResults = defaultMax, bool getTotalCount = false,
            NameMatchMode nameMatchMode = NameMatchMode.Exact,
            TagOptionalFields fields = TagOptionalFields.None)
        {
            maxResults = Math.Min(maxResults, absoluteMax);
            var ssl = WebHelper.IsSSL(Request);
            var queryParams = new CommonSearchParams(query, false, nameMatchMode, false, false);
            var paging = new PagingProperties(start, maxResults, getTotalCount);

            var tags = queries.Find(t => new TagForApiContract(t, thumbPersister, ssl, fields),
                queryParams, paging,
                allowAliases, categoryName);

            return tags;
        }
コード例 #7
0
        public TagForApiContract(Tag tag,
                                 IEntryImagePersisterOld thumbPersister,
                                 bool ssl,
                                 TagOptionalFields optionalFields)
        {
            AlisedToName = tag.AliasedTo != null ? tag.AliasedTo.Name : null;
            CategoryName = tag.CategoryName;
            Id           = tag.Id;
            Name         = tag.Name;
            ParentName   = tag.Parent != null ? tag.Parent.Name : null;
            Status       = tag.Status;

            if (optionalFields.HasFlag(TagOptionalFields.Description))
            {
                Description = tag.Description;
            }

            if (optionalFields.HasFlag(TagOptionalFields.MainPicture) && tag.Thumb != null)
            {
                MainPicture = new EntryThumbForApiContract(tag.Thumb, thumbPersister, ssl);
            }
        }
コード例 #8
0
ファイル: TagQueries.cs プロジェクト: kurono1984/vocadb
 public PartialFindResult <TagForApiContract> Find(TagQueryParams queryParams, TagOptionalFields optionalFields,
                                                   ContentLanguagePreference lang)
 {
     return(Find(tag => new TagForApiContract(
                     tag, imagePersister, lang, optionalFields), queryParams, optionalFields == TagOptionalFields.None));
 }
コード例 #9
0
 public TagForApiContract(Tag tag,
                          ContentLanguagePreference languagePreference,
                          TagOptionalFields optionalFields) : this(tag, null, languagePreference, optionalFields)
 {
 }
コード例 #10
0
        public TagForApiContract GetByName(string name, TagOptionalFields fields = TagOptionalFields.None)
        {
            var tag = queries.GetTag(name, t => new TagForApiContract(t, thumbPersister, WebHelper.IsSSL(Request), fields));

            return(tag);
        }
コード例 #11
0
 public TagForApiContract GetById(int id, TagOptionalFields fields = TagOptionalFields.None, ContentLanguagePreference lang = ContentLanguagePreference.Default)
 => _queries.LoadTag(id, t => new TagForApiContract(t, _thumbPersister, lang, fields));
コード例 #12
0
 public TagForApiContract[] GetChildTags(int tagId,
                                         TagOptionalFields fields       = TagOptionalFields.None,
                                         ContentLanguagePreference lang = ContentLanguagePreference.Default) => HandleQuery(ctx => ctx.Load(tagId).Children.Select(t => new TagForApiContract(t, _thumbStore, lang, fields)).ToArray());
コード例 #13
0
 public TagForApiContract[] GetChildTags(int tagId,
                                         TagOptionalFields fields       = TagOptionalFields.None,
                                         ContentLanguagePreference lang = ContentLanguagePreference.Default) => _queries.GetChildTags(tagId, fields, lang);
コード例 #14
0
 public TagForApiContract GetByName(string name, TagOptionalFields fields = TagOptionalFields.None, ContentLanguagePreference lang = ContentLanguagePreference.Default)
 => _queries.GetTagByName(name, t => new TagForApiContract(t, _thumbPersister, lang, fields));
コード例 #15
0
 public TagForApiContract GetMappedTag(EntryType entryType, string subType = null, TagOptionalFields fields = TagOptionalFields.None)
 => _tagQueries.FindTagForEntryType(new EntryTypeAndSubType(entryType, subType), (tag, lang) => new TagForApiContract(tag, lang, fields), true);
コード例 #16
0
 public TagForApiContract[] GetChildTags(int tagId,
                                         TagOptionalFields fields       = TagOptionalFields.None,
                                         ContentLanguagePreference lang = ContentLanguagePreference.Default)
 {
     return(queries.HandleQuery(ctx => ctx.Load(tagId).Children.Select(t => new TagForApiContract(t, thumbPersister, lang, fields)).ToArray()));
 }
コード例 #17
0
ファイル: TagApiController.cs プロジェクト: Shyany/vocadb
        public TagForApiContract GetById(int id, TagOptionalFields fields = TagOptionalFields.None, ContentLanguagePreference lang = ContentLanguagePreference.Default)
        {
            var tag = queries.LoadTag(id, t => new TagForApiContract(t, thumbPersister, WebHelper.IsSSL(Request), lang, fields));

            return(tag);
        }
コード例 #18
0
ファイル: TagApiController.cs プロジェクト: Shyany/vocadb
        public TagForApiContract GetByName(string name, TagOptionalFields fields = TagOptionalFields.None, ContentLanguagePreference lang = ContentLanguagePreference.Default)
        {
            var tag = queries.GetTagByName(name, t => new TagForApiContract(t, thumbPersister, WebHelper.IsSSL(Request), lang, fields));

            return(tag);
        }