/// <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);
        }
Пример #2
0
        /// <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);
        }
Пример #3
0
        public void ValidDelimitedStringTooMany()
        {
            Delimited delimited = new Delimited()
            {
                Test = "one#two#three#four#five#six#seven"
            };

            delimited = ValidateSettings <Delimited> .Validate(delimited);
        }
Пример #4
0
        public void ValidDelimitedStringTooFew()
        {
            Delimited delimited = new Delimited()
            {
                Test = "one"
            };

            delimited = ValidateSettings <Delimited> .Validate(delimited);
        }
Пример #5
0
        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;
            }));
        }