StarryEyes.Anomaly.TwitterApi.DataModels.TwitterStatus.GetEntityAidedText C# (CSharp) Method

GetEntityAidedText() private method

private GetEntityAidedText ( EntityDisplayMode displayMode = EntityDisplayMode.DisplayText ) : string
displayMode EntityDisplayMode
return string
        public string GetEntityAidedText(EntityDisplayMode displayMode = EntityDisplayMode.DisplayText)
        {
            try
            {
                var builder = new StringBuilder();
                var status = this;
                if (status.RetweetedOriginal != null)
                {
                    // change target
                    status = status.RetweetedOriginal;
                }
                foreach (var description in TextEntityResolver.ParseText(status))
                {
                    if (!description.IsEntityAvailable)
                    {
                        builder.Append(description.Text);
                    }
                    else
                    {
                        var entity = description.Entity;
                        switch (entity.EntityType)
                        {
                            case EntityType.Hashtags:
                                builder.Append("#" + entity.DisplayText);
                                break;
                            case EntityType.Urls:
                                // url entity:
                                // display_url: example.com/CUTTED OFF...
                                // original_url => expanded_url: example.com/full_original_url
                                builder.Append(displayMode == EntityDisplayMode.DisplayText
                                    ? ParsingExtension.ResolveEntity(entity.DisplayText)
                                    : ParsingExtension.ResolveEntity(entity.OriginalUrl));
                                break;
                            case EntityType.Media:
                                // media entity:
                                // display_url: pic.twitter.com/IMAGE_ID
                                // media_url: pbs.twimg.com/media/ACTUAL_IMAGE_RESOURCE_ID
                                // url: t.co/IMAGE_ID
                                builder.Append(
                                    displayMode == EntityDisplayMode.DisplayText
                                        ? ParsingExtension.ResolveEntity(entity.DisplayText)
                                        : displayMode == EntityDisplayMode.LinkUri
                                            ? ParsingExtension.ResolveEntity(entity.DisplayText)
                                            : ParsingExtension.ResolveEntity(entity.MediaUrl));
                                break;
                            case EntityType.UserMentions:
                                builder.Append("@" + entity.DisplayText);
                                break;
                        }
                    }
                }
                return builder.ToString();
            }
            catch (ArgumentOutOfRangeException ex)
            {
                var sb = new StringBuilder();
                sb.AppendLine("Parse Error! : " + Text);
                if (Entities == null)
                {
                    sb.AppendLine("Entities: null");
                }
                else
                {
                    sb.Append("Entities: ");
                    Entities.OrderBy(e => e.StartIndex)
                            .Select(e => e.StartIndex + "- " + e.EndIndex + " : " + e.DisplayText)
                            .ForEach(s => sb.AppendLine("    " + s));
                }
                throw new ArgumentOutOfRangeException(sb.ToString(), ex);
            }
        }

Usage Example

 static void Instance_OnMentionReceived(TwitterStatus obj)
 {
     Show(new NormalNotificatorViewModel(MetroColors.Orange,
         obj.User, "mention from @" + obj.User.ScreenName, obj.GetEntityAidedText()));
 }
All Usage Examples Of StarryEyes.Anomaly.TwitterApi.DataModels.TwitterStatus::GetEntityAidedText