/// <summary> /// Common code for building parameter list for both sent by and sent to urls. /// </summary> /// <param name="parameters">parameters to add</param> /// <param name="url">url to start with</param> /// <returns>new url with parameters</returns> Request BuildSentUrlParameters(Dictionary <string, string> parameters, string url) { var req = new Request(BaseUrl + url); IList <QueryParameter> urlParams = req.RequestParameters; if (parameters == null) { return(req); } if (parameters.ContainsKey("SinceID")) { SinceID = ulong.Parse(parameters["SinceID"]); urlParams.Add(new QueryParameter("since_id", SinceID.ToString(CultureInfo.InvariantCulture))); } if (parameters.ContainsKey("MaxID")) { MaxID = ulong.Parse(parameters["MaxID"]); urlParams.Add(new QueryParameter("max_id", MaxID.ToString(CultureInfo.InvariantCulture))); } if (parameters.ContainsKey("Page")) { Page = int.Parse(parameters["Page"]); urlParams.Add(new QueryParameter("page", Page.ToString(CultureInfo.InvariantCulture))); } if (parameters.ContainsKey("Count")) { Count = int.Parse(parameters["Count"]); urlParams.Add(new QueryParameter("count", Count.ToString(CultureInfo.InvariantCulture))); } if (parameters.ContainsKey("IncludeEntities")) { IncludeEntities = bool.Parse(parameters["IncludeEntities"]); urlParams.Add(new QueryParameter("include_entities", parameters["IncludeEntities"].ToLower())); } if (parameters.ContainsKey("SkipStatus")) { SkipStatus = bool.Parse(parameters["SkipStatus"]); urlParams.Add(new QueryParameter("skip_status", SkipStatus.ToString().ToLower())); } if (parameters.ContainsKey("FullText")) { FullText = bool.Parse(parameters["FullText"]); urlParams.Add(new QueryParameter("full_text", parameters["FullText"].ToLower())); } return(req); }
/// <summary> /// appends parameters for Search request /// </summary> /// <param name="parameters">list of parameters from expression tree</param> /// <param name="url">base url</param> /// <returns>base url + parameters</returns> private Request BuildSearchUrlParameters(Dictionary <string, string> parameters, string url) { var req = new Request(BaseUrl + url); var urlParams = req.RequestParameters; if (parameters.ContainsKey("Query") && !string.IsNullOrWhiteSpace(parameters["Query"])) { Query = parameters["Query"]; urlParams.Add(new QueryParameter("q", Query)); } else { throw new ArgumentNullException("Query", "Query filter in where clause is required."); } if (parameters.ContainsKey("GeoCode")) { GeoCode = parameters["GeoCode"]; urlParams.Add(new QueryParameter("geocode", GeoCode)); } if (parameters.ContainsKey("SearchLanguage")) { SearchLanguage = parameters["SearchLanguage"]; urlParams.Add(new QueryParameter("lang", SearchLanguage)); } if (parameters.ContainsKey("Locale")) { Locale = parameters["Locale"]; urlParams.Add(new QueryParameter("locale", Locale)); } if (parameters.ContainsKey("Count")) { Count = int.Parse(parameters["Count"]); urlParams.Add(new QueryParameter("count", Count.ToString(CultureInfo.InvariantCulture))); } if (parameters.ContainsKey("Until")) { Until = DateTime.Parse(parameters["Until"]).Date; urlParams.Add(new QueryParameter("until", Until.ToString("yyyy-MM-dd", CultureInfo.InvariantCulture))); } if (parameters.ContainsKey("SinceID")) { SinceID = ulong.Parse(parameters["SinceID"]); urlParams.Add(new QueryParameter("since_id", SinceID.ToString(CultureInfo.InvariantCulture))); } if (parameters.ContainsKey("MaxID")) { MaxID = ulong.Parse(parameters["MaxID"]); urlParams.Add(new QueryParameter("max_id", MaxID.ToString(CultureInfo.InvariantCulture))); } if (parameters.ContainsKey("ResultType")) { ResultType = RequestProcessorHelper.ParseEnum <ResultType>(parameters["ResultType"]); urlParams.Add(new QueryParameter("result_type", ResultType.ToString().ToLower())); } if (parameters.ContainsKey("IncludeEntities")) { IncludeEntities = bool.Parse(parameters["IncludeEntities"]); urlParams.Add(new QueryParameter("include_entities", parameters["IncludeEntities"].ToLower())); } if (parameters.ContainsKey(nameof(TweetMode))) { TweetMode = RequestProcessorHelper.ParseEnum <TweetMode>(parameters[nameof(TweetMode)]); urlParams.Add(new QueryParameter("tweet_mode", TweetMode.ToString().ToLower())); } return(req); }