public async Task<MentionPack[]> RetrieveMentionsAsync(TimeSpan windowDuration) { var mentioneeScreenName = _selfScreenName; var mentioneeScreenNameWithAt = $"@{_selfScreenName}"; using (var context = new TwitterContext(_selfAuthorizer)) { var packs = new List<MentionPack>(); var mentions = await (from tweet in context.Status where (tweet.Type == StatusType.Mentions) && (tweet.ScreenName == mentioneeScreenName) && ((tweet.User != null) && (tweet.User.ScreenNameResponse != mentioneeScreenName)) // Mentioner && (new DateTimeOffset(tweet.CreatedAt) >= DateTimeOffset.Now.Add(-windowDuration)) select tweet) .ToListAsync(); if (mentions != null) { foreach (var mention in mentions) { var mentionContent = WebUtility.HtmlDecode(mention.Text)?.TrimStartCombined('.'); if (string.IsNullOrEmpty(mentionContent) || !mentionContent.StartsWith(mentioneeScreenNameWithAt, StringComparison.Ordinal)) continue; mentionContent = mentionContent.Substring(mentioneeScreenNameWithAt.Length).Trim(); packs.Add(new MentionPack( tweetId: mention.StatusID, tweetTime: new DateTimeOffset(mention.CreatedAt), content: mentionContent, mentionerScreenName: mention.User.ScreenNameResponse, mentioneeScreenName: mentioneeScreenName)); } } return packs.ToArray(); } }
/// <summary> /// Adds a list of users to a list. /// </summary> /// <param name="listID">ID of List.</param> /// <param name="slug">List name.</param> /// <param name="ownerID">ID of user who owns the list.</param> /// <param name="ownerScreenName">Screen name of user who owns the list.</param> /// <param name="userIDs">List of user IDs to be list members. (max 100)</param> /// <param name="screenNames">List of user screen names to be list members. (max 100)</param> /// <param name="callback">Async Callback used in Silverlight queries</param> /// <returns>List info for list members added to.</returns> static List AddMemberRangeToList(this TwitterContext ctx, string listID, string slug, string ownerID, string ownerScreenName, IEnumerable<ulong> userIDs, List<string> screenNames, Action<TwitterAsyncResponse<List>> callback) { if (string.IsNullOrEmpty(listID) && string.IsNullOrEmpty(slug)) { throw new ArgumentException("Either listID or slug is required.", ListIDOrSlugParam); } if (!string.IsNullOrEmpty(slug) && string.IsNullOrEmpty(ownerID) && string.IsNullOrEmpty(ownerScreenName)) { throw new ArgumentException("If using slug, you must also provide either ownerID or ownerScreenName.", OwnerIDOrOwnerScreenNameParam); } var addMemberRangeUrl = ctx.BaseUrl + "lists/members/create_all.json"; var reqProc = new ListRequestProcessor<List>(); ITwitterExecute exec = ctx.TwitterExecutor; exec.AsyncCallback = callback; var resultsJson = exec.PostToTwitter( addMemberRangeUrl, new Dictionary<string, string> { { "list_id", listID }, { "slug", slug }, { "owner_id", ownerID }, { "owner_screen_name", ownerScreenName }, { "user_id", userIDs == null ? null : string.Join(",", userIDs.Select(id => id.ToString(CultureInfo.InvariantCulture)).ToArray()) }, { "screen_name", screenNames == null ? null : string.Join(",", screenNames.ToArray()) } }, response => reqProc.ProcessActionResult(response, ListAction.AddMember)); List results = reqProc.ProcessActionResult(resultsJson, ListAction.AddMember); return results; }
public string GetstringfromList(List<string> myList) { return string.Join(" ", myList.ToArray()); }