/// <summary> /// Deletes a direct message. /// </summary> /// <param name="id">id of direct message</param> /// <param name="includeEntites">Set to false to prevent entities from being included (default: true).</param> /// <returns>direct message element</returns> public async Task <DirectMessage> DestroyDirectMessageAsync(ulong id, bool includeEntites, CancellationToken cancelToken = default(CancellationToken)) { if (id == 0) { throw new ArgumentNullException("id", "id is required."); } var destroyUrl = BaseUrl + "direct_messages/destroy.json"; var reqProc = new DirectMessageRequestProcessor <DirectMessage>(); RawResult = await TwitterExecutor.PostToTwitterAsync <DirectMessage>( destroyUrl, new Dictionary <string, string> { { "id", id.ToString() }, { "include_entities", includeEntites.ToString().ToLower() } }, cancelToken) .ConfigureAwait(false); return(reqProc.ProcessActionResult(RawResult, DirectMessageType.Show)); }
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); }
/// <summary> /// factory method for returning a request processor /// </summary> /// <typeparam name="T">type of request</typeparam> /// <returns>request processor matching type parameter</returns> private IRequestProcessor CreateRequestProcessor(Expression expression, bool isEnumerable) { string requestType = string.Empty; if (expression != null) { if (isEnumerable) { requestType = expression.Type.GetGenericArguments()[0].Name; } else { requestType = expression.Type.Name; } } IRequestProcessor req; switch (requestType) { case "Account": req = new AccountRequestProcessor() { BaseUrl = BaseUrl }; break; case "Blocks": req = new BlocksRequestProcessor() { BaseUrl = BaseUrl }; break; case "DirectMessage": req = new DirectMessageRequestProcessor() { BaseUrl = BaseUrl }; break; case "Favorites": req = new FavoritesRequestProcessor() { BaseUrl = BaseUrl }; break; case "Friendship": req = new FriendshipRequestProcessor() { BaseUrl = BaseUrl }; break; case "SocialGraph": req = new SocialGraphRequestProcessor() { BaseUrl = BaseUrl }; break; case "Search": req = new SearchRequestProcessor() { BaseUrl = SearchUrl }; break; case "Status": req = new StatusRequestProcessor() { BaseUrl = BaseUrl }; break; case "Trend": req = new TrendRequestProcessor() { BaseUrl = SearchUrl }; break; case "User": req = new UserRequestProcessor() { BaseUrl = BaseUrl }; break; default: req = new StatusRequestProcessor() { BaseUrl = BaseUrl }; break; } Debug.Assert(req != null, "You you must assign a value to req."); return(req); }