/// <summary> /// Builds an url for getting user info from stream. /// </summary> /// <param name="parameters">parameter list</param> /// <returns>base url + show segment</returns> Request BuildUserUrl(Dictionary <string, string> parameters) { var req = new Request(UserStreamUrl + "user.json"); var urlParams = req.RequestParameters; if (parameters.ContainsKey("Delimited")) { Delimited = parameters["Delimited"]; urlParams.Add(new QueryParameter("delimited", Delimited.ToLower())); } if (parameters.ContainsKey("Language")) { Language = parameters["Language"].Replace(" ", ""); urlParams.Add(new QueryParameter("language", Language)); } if (parameters.ContainsKey("Track")) { Track = parameters["Track"]; urlParams.Add(new QueryParameter("track", Track)); } if (parameters.ContainsKey("With")) { With = parameters["With"]; urlParams.Add(new QueryParameter("with", With.ToLower())); } if (parameters.ContainsKey("AllReplies")) { AllReplies = bool.Parse(parameters["AllReplies"]); if (AllReplies) { urlParams.Add(new QueryParameter("replies", "all")); } } if (parameters.ContainsKey("StallWarnings")) { StallWarnings = bool.Parse(parameters["StallWarnings"]); urlParams.Add(new QueryParameter("stall_warnings", parameters["StallWarnings"].ToLower())); } if (parameters.ContainsKey("Locations")) { Locations = parameters["Locations"]; urlParams.Add(new QueryParameter("locations", Locations)); } if (parameters.ContainsKey(nameof(TweetMode))) { TweetMode = (TweetMode)int.Parse(parameters[nameof(TweetMode)]); urlParams.Add(new QueryParameter("tweet_mode", TweetMode.ToString().ToLower())); } return(req); }
/// <summary> /// Builds an url for getting info for multiple users from stream. /// </summary> /// <param name="parameters">parameter list</param> /// <returns>base url + show segment</returns> Request BuildSiteUrl(Dictionary <string, string> parameters) { if (!parameters.ContainsKey("Follow")) { throw new ArgumentNullException("Follow", "Follow is required."); } var req = new Request(SiteStreamUrl + "site.json"); var urlParams = req.RequestParameters; if (parameters.ContainsKey("Delimited")) { Delimited = parameters["Delimited"]; urlParams.Add(new QueryParameter("delimited", Delimited.ToLower())); } if (parameters.ContainsKey("Language")) { Language = parameters["Language"].Replace(" ", ""); urlParams.Add(new QueryParameter("language", Language)); } if (parameters.ContainsKey("Follow")) { Follow = parameters["Follow"].Replace(" ", ""); urlParams.Add(new QueryParameter("follow", Follow.ToLower())); } if (parameters.ContainsKey("Track")) { throw new ArgumentException("Track is not supported for Site Streams.", "Track"); } if (parameters.ContainsKey("With")) { With = parameters["With"]; urlParams.Add(new QueryParameter("with", With.ToLower())); } if (parameters.ContainsKey("AllReplies")) { AllReplies = bool.Parse(parameters["AllReplies"]); if (AllReplies) { urlParams.Add(new QueryParameter("replies", "all")); } } if (parameters.ContainsKey("StallWarnings")) { StallWarnings = bool.Parse(parameters["StallWarnings"]); urlParams.Add(new QueryParameter("stall_warnings", parameters["StallWarnings"].ToLower())); } return(req); }
public void ValidDelimitedStringTooMany() { Delimited delimited = new Delimited() { Test = "one#two#three#four#five#six#seven" }; delimited = ValidateSettings <Delimited> .Validate(delimited); }
public void ValidDelimitedStringTooFew() { Delimited delimited = new Delimited() { Test = "one" }; delimited = ValidateSettings <Delimited> .Validate(delimited); }
public void ValidDelimitedString() { Delimited delimited = new Delimited() { Test = "one#two#three" }; delimited = ValidateSettings <Delimited> .Validate(delimited); }
/// <summary> /// Deserializes the data /// </summary> /// <param name="ObjectType">Object type</param> /// <param name="Data">Data to deserialize</param> /// <returns>The deserialized data</returns> public override object Deserialize(Type ObjectType, string Data) { if (string.IsNullOrEmpty(Data) || ObjectType == null) { return(null); } MethodInfo Method = typeof(TypeConversionExtensions).GetMethods().FirstOrDefault(x => x.Name == "To" && x.GetParameters().Any(y => y.ParameterType == typeof(DataTable))); Method = Method.MakeGenericMethod(ObjectType.Is <IEnumerable>() ? ObjectType.GetGenericArguments()[0] : ObjectType); DataTable Table = new Delimited(Data).ToDataTable(); object ReturnValue = Method.Invoke(null, new object[] { Table, null }); return(ObjectType.Is <IEnumerable>() ? ReturnValue : ((IEnumerable)ReturnValue).GetEnumerator().Chain(x => { x.MoveNext(); return x.Current; })); }