/// <summary> /// Adds a saved search to your twitter account /// </summary> /// <param name="id">ID of saved search</param> /// <param name="callback">Async Callback used in Silverlight queries</param> /// <returns>SavedSearch object</returns> public static SavedSearch DestroySavedSearch(this TwitterContext ctx, int id, Action <TwitterAsyncResponse <SavedSearch> > callback) { if (id < 1) { throw new ArgumentException("Invalid Saved Search ID: " + id, "id"); } var savedSearchUrl = ctx.BaseUrl + "saved_searches/destroy/" + id + ".json"; var reqProc = new SavedSearchRequestProcessor <SavedSearch>(); ITwitterExecute exec = ctx.TwitterExecutor; exec.AsyncCallback = callback; var resultsJson = exec.PostToTwitter( savedSearchUrl, new Dictionary <string, string>(), response => reqProc.ProcessActionResult(response, SavedSearchAction.Destroy)); SavedSearch result = reqProc.ProcessActionResult(resultsJson, SavedSearchAction.Destroy); result.ID = id.ToString(); return(result); }
/// <summary> /// Adds a saved search to your twitter account /// </summary> /// <param name="query">Search query to add</param> /// <param name="callback">Async Callback used in Silverlight queries</param> /// <returns>SavedSearch object</returns> public static SavedSearch CreateSavedSearch(this TwitterContext ctx, string query, Action <TwitterAsyncResponse <SavedSearch> > callback) { if (string.IsNullOrEmpty(query)) { throw new ArgumentException("query is required.", "query"); } var savedSearchUrl = ctx.BaseUrl + "saved_searches/create.json"; var reqProc = new SavedSearchRequestProcessor <SavedSearch>(); ITwitterExecute exec = ctx.TwitterExecutor; exec.AsyncCallback = callback; var resultsJson = exec.PostToTwitter( savedSearchUrl, new Dictionary <string, string> { { "query", query } }, response => reqProc.ProcessActionResult(response, SavedSearchAction.Create)); SavedSearch result = reqProc.ProcessActionResult(resultsJson, SavedSearchAction.Create); return(result); }
/// <summary> /// Adds a saved search to your twitter account /// </summary> /// <param name="id">ID of saved search</param> /// <param name="callback">Async Callback used in Silverlight queries</param> /// <returns>SavedSearch object</returns> public async Task <SavedSearch?> DestroySavedSearchAsync(ulong id, CancellationToken cancelToken = default(CancellationToken)) { if (id == 0) { throw new ArgumentException("Invalid Saved Search ID: " + id, "id"); } var savedSearchUrl = BaseUrl + "saved_searches/destroy/" + id + ".json"; var reqProc = new SavedSearchRequestProcessor <SavedSearch>(); RawResult = await TwitterExecutor.PostFormUrlEncodedToTwitterAsync <SavedSearch>( HttpMethod.Post.ToString(), savedSearchUrl, new Dictionary <string, string?>(), cancelToken) .ConfigureAwait(false); SavedSearch?result = reqProc.ProcessActionResult(RawResult, SavedSearchAction.Destroy); if (result != null) { result.ID = id; } return(result); }
/// <summary> /// Adds a saved search to your twitter account /// </summary> /// <param name="query">Search query to add</param> /// <returns>SavedSearch object</returns> public async Task <SavedSearch> CreateSavedSearchAsync(string query, CancellationToken cancelToken = default(CancellationToken)) { if (string.IsNullOrWhiteSpace(query)) { throw new ArgumentException("query is required.", "query"); } var savedSearchUrl = BaseUrl + "saved_searches/create.json"; var reqProc = new SavedSearchRequestProcessor <SavedSearch>(); RawResult = await TwitterExecutor.PostToTwitterAsync <SavedSearch>( savedSearchUrl, new Dictionary <string, string> { { "query", query } }, cancelToken) .ConfigureAwait(false); return(reqProc.ProcessActionResult(RawResult, SavedSearchAction.Create)); }
protected internal IRequestProcessor <T> CreateRequestProcessor <T>(string requestType) where T : class { var baseUrl = BaseUrl; IRequestProcessor <T> req; switch (requestType) { case "Account": req = new AccountRequestProcessor <T>(); break; case "Blocks": req = new BlocksRequestProcessor <T>(); break; case "ControlStream": req = new ControlStreamRequestProcessor <T> { SiteStreamUrl = SiteStreamUrl }; break; case "DirectMessage": req = new DirectMessageRequestProcessor <T>(); break; case "Favorites": req = new FavoritesRequestProcessor <T>(); break; case "Friendship": req = new FriendshipRequestProcessor <T>(); break; case "Geo": req = new GeoRequestProcessor <T>(); break; case "Help": req = new HelpRequestProcessor <T>(); break; case "List": req = new ListRequestProcessor <T>(); break; case "Mute": req = new MuteRequestProcessor <T>(); break; case "Raw": req = new RawRequestProcessor <T>(); break; case "SavedSearch": req = new SavedSearchRequestProcessor <T>(); break; case "Search": req = new SearchRequestProcessor <T>(); break; case "Status": req = new StatusRequestProcessor <T>(); break; case "Streaming": baseUrl = StreamingUrl; req = new StreamingRequestProcessor <T> { UserStreamUrl = UserStreamUrl, SiteStreamUrl = SiteStreamUrl, TwitterExecutor = TwitterExecutor }; break; case "Trend": req = new TrendRequestProcessor <T>(); break; case "User": req = new UserRequestProcessor <T>(); break; case "Vine": req = new VineRequestProcessor <T> { VineUrl = VineUrl }; break; default: throw new ArgumentException("Type, " + requestType + " isn't a supported LINQ to Twitter entity.", "requestType"); } if (baseUrl != null) { req.BaseUrl = baseUrl; } return(req); }
protected internal IRequestProcessor <T> CreateRequestProcessor <T>(string requestType) where T : class { string baseUrl = BaseUrl; IRequestProcessor <T> req; switch (requestType) { case nameof(Account): req = new AccountRequestProcessor <T>(); break; case nameof(AccountActivity): req = new AccountActivityRequestProcessor <T>(); break; case nameof(Blocks): req = new BlocksRequestProcessor <T>(); break; case nameof(ControlStream): req = new ControlStreamRequestProcessor <T> { SiteStreamUrl = SiteStreamUrl }; break; case nameof(DirectMessage): req = new DirectMessageRequestProcessor <T>(); break; case nameof(DirectMessageEvents): req = new DirectMessageEventsRequestProcessor <T>(); break; case nameof(Favorites): req = new FavoritesRequestProcessor <T>(); break; case nameof(Friendship): req = new FriendshipRequestProcessor <T>(); break; case nameof(Geo): req = new GeoRequestProcessor <T>(); break; case nameof(Help): req = new HelpRequestProcessor <T>(); break; case nameof(List): req = new ListRequestProcessor <T>(); break; case nameof(Media): req = new MediaRequestProcessor <T> { UploadUrl = UploadUrl }; break; case nameof(Mute): req = new MuteRequestProcessor <T>(); break; case nameof(Raw): req = new RawRequestProcessor <T>(); break; case nameof(SavedSearch): req = new SavedSearchRequestProcessor <T>(); break; case nameof(Search): req = new SearchRequestProcessor <T>(); break; case nameof(Status): req = new StatusRequestProcessor <T>(); break; case nameof(Streaming): baseUrl = StreamingUrl; req = new StreamingRequestProcessor <T> { UserStreamUrl = UserStreamUrl, SiteStreamUrl = SiteStreamUrl, TwitterExecutor = TwitterExecutor }; break; case nameof(Trend): req = new TrendRequestProcessor <T>(); break; case nameof(User): req = new UserRequestProcessor <T>(); break; case nameof(Vine): req = new VineRequestProcessor <T> { VineUrl = VineUrl }; break; case nameof(WelcomeMessage): req = new WelcomeMessageRequestProcessor <T>(); break; default: throw new ArgumentException($"Type, {requestType} isn't a supported LINQ to Twitter entity.", nameof(requestType)); } if (baseUrl != null) { req.BaseUrl = baseUrl; } return(req); }