Exemple #1
0
        private void SetWebsiteUrl(TagsCollectionBase tags, PointOfInterestExtended pointOfInterest)
        {
            var regexp = new Regex("((https?://)|^)([a-z]+).wikipedia.org/wiki/(.*)");
            var match  = regexp.Match(pointOfInterest.Url ?? string.Empty);

            if (match.Success)
            {
                tags.Add(FeatureAttributes.WIKIPEDIA, match.Groups[3].Value + ":" + WebUtility.UrlDecode(match.Groups[4].Value.Replace("_", " ")));
            }
            else
            {
                tags.Add(FeatureAttributes.WEBSITE, pointOfInterest.Url);
            }
        }
        private void SetWebsiteUrl(TagsCollectionBase tags, PointOfInterestExtended pointOfInterest)
        {
            var regexp           = new Regex("((https?://)|^)([a-z]+).wikipedia.org/wiki/(.*)");
            var nonWikipediaUrls = new List <string>();

            foreach (var url in pointOfInterest.References.Select(r => r.Url))
            {
                var match = regexp.Match(url ?? string.Empty);
                if (!match.Success)
                {
                    nonWikipediaUrls.Add(url);
                    continue;
                }
                var language  = match.Groups[3].Value;
                var pageTitle = Uri.UnescapeDataString(match.Groups[4].Value.Replace("_", " "));
                var key       = FeatureAttributes.WIKIPEDIA + ":" + language;
                tags.AddOrReplace(key, pageTitle);
                key       = FeatureAttributes.WIKIPEDIA;
                pageTitle = language + ":" + pageTitle;
                if (tags.ContainsKey(key) == false)
                {
                    tags.Add(key, pageTitle);
                }
            }
            SetMultipleValuesForTag(tags, FeatureAttributes.WEBSITE, nonWikipediaUrls.ToArray());
        }
Exemple #3
0
 /// <summary>
 /// Adds or appends the tag value to the value collection.
 /// </summary>
 public static void AddOrAppend(this TagsCollectionBase tags, Tag tag)
 {
     foreach (var t in tags)
     {
         if (t.Key == tag.Key)
         {
             if (!string.IsNullOrWhiteSpace(t.Value))
             {
                 var values = t.Value.Split(',');
                 for (var i = 0; i < values.Length; i++)
                 {
                     if (values[i] == tag.Value)
                     {
                         return;
                     }
                 }
                 tags.AddOrReplace(tag.Key, t.Value + "," + tag.Value);
             }
             else
             {
                 tags.AddOrReplace(tag);
             }
             return;
         }
     }
     tags.Add(tag);
 }
        private void AddTagsByIcon(TagsCollectionBase tags, string icon)
        {
            var tagsList = _tagsHelper.FindTagsForIcon(icon);

            if (tagsList.Any())
            {
                tags.Add(tagsList.First().Key, tagsList.First().Value);
            }
        }
        private static TagsCollectionBase ConvertToTags(tag[] tag)
        {
            TagsCollectionBase tagsCollectionBase = (TagsCollectionBase)null;

            if (tag != null && tag.Length != 0)
            {
                tagsCollectionBase = (TagsCollectionBase) new TagsCollection();
                foreach (tag tag1 in tag)
                {
                    tagsCollectionBase.Add(tag1.k, tag1.v);
                }
            }
            return(tagsCollectionBase);
        }
        private void SetTagByLanguage(TagsCollectionBase tags, string key, string value, string language)
        {
            var keyWithLanguage = key + ":" + language;
            var previousValue   = string.Empty;

            if (tags.ContainsKey(keyWithLanguage))
            {
                previousValue         = tags[keyWithLanguage];
                tags[keyWithLanguage] = value;
            }
            else
            {
                tags.Add(new Tag(keyWithLanguage, value));
            }
            if (tags.ContainsKey(key) && tags[key] == previousValue)
            {
                tags[key] = value;
            }
            else if (tags.ContainsKey(key) == false)
            {
                tags.Add(new Tag(key, value));
            }
        }
Exemple #7
0
 public static void AddOrAppend(this TagsCollectionBase tags, string key, params string[] newValues)
 {
     if (tags.TryGetValue(key, out var oldValue))
     {
         foreach (var newValue in newValues.Where(n => !oldValue.Contains(n)))
         {
             tags[key] += ";" + newValue;
         }
     }
     else
     {
         tags.Add(key, string.Join(";", newValues));
     }
 }