Пример #1
0
        /// <summary>
        /// transforms XML into IQueryable of User
        /// </summary>
        /// <param name="twitterResponse">xml with Twitter response</param>
        /// <returns>IQueryable of User</returns>
        public IList ProcessResults(System.Xml.Linq.XElement twitterResponse)
        {
            var acct = new Account();

            if (twitterResponse.Name == "user")
            {
                var user = new User().CreateUser(twitterResponse);

                acct.User = user;
            }
            else if (twitterResponse.Name == "hash")
            {
                if (twitterResponse.Element("hourly-limit") != null)
                {
                    var rateLimits = new RateLimitStatus
                    {
                        HourlyLimit        = int.Parse(twitterResponse.Element("hourly-limit").Value),
                        RemainingHits      = int.Parse(twitterResponse.Element("remaining-hits").Value),
                        ResetTime          = DateTime.Parse(twitterResponse.Element("reset-time").Value),
                        ResetTimeInSeconds = int.Parse(twitterResponse.Element("reset-time-in-seconds").Value)
                    };

                    acct.RateLimitStatus = rateLimits;
                }
                else
                {
                    var endSession = new TwitterHashResponse
                    {
                        Request = twitterResponse.Element("request").Value,
                        Error   = twitterResponse.Element("error").Value
                    };

                    acct.EndSessionStatus = endSession;
                }
            }
            else
            {
                throw new ArgumentException("Account Results Processing expected a Twitter response for either a user or hash, but received an unknown element type instead.");
            }

            var acctList = new List <Account> {
                acct
            };

            return(acctList);
            //return acctList.AsQueryable<Account>();
        }
Пример #2
0
        /// <summary>
        /// transforms XML into IQueryable of User
        /// </summary>
        /// <param name="twitterResponse">xml with Twitter response</param>
        /// <returns>IQueryable of User</returns>
        public virtual List <T> ProcessResults(XElement twitterResponse)
        {
            var acct = new Account {
                Type = Type
            };

            if (twitterResponse.Name == "user")
            {
                var user = new User().CreateUser(twitterResponse);

                acct.User = user;
            }
            else if (twitterResponse.Name == "hash")
            {
                if (twitterResponse.Element("hourly-limit") != null)
                {
                    var rateLimits = new RateLimitStatus
                    {
                        HourlyLimit        = int.Parse(twitterResponse.Element("hourly-limit").Value),
                        RemainingHits      = int.Parse(twitterResponse.Element("remaining-hits").Value),
                        ResetTime          = DateTime.Parse(twitterResponse.Element("reset-time").Value, CultureInfo.InvariantCulture),
                        ResetTimeInSeconds = int.Parse(twitterResponse.Element("reset-time-in-seconds").Value)
                    };

                    acct.RateLimitStatus = rateLimits;
                }
                else
                {
                    var endSession = new TwitterHashResponse
                    {
                        Request = twitterResponse.Element("request").Value,
                        Error   = twitterResponse.Element("error").Value
                    };

                    acct.EndSessionStatus = endSession;
                }
            }
            else
            {
                throw new ArgumentException("Account Results Processing expected a Twitter response for either a user or hash, but received an unknown element type instead.");
            }

            return(new List <Account> {
                acct
            }.OfType <T>().ToList());
        }
Пример #3
0
        /// <summary>
        /// transforms XML into IQueryable of User
        /// </summary>
        /// <param name="responseXml">xml with Twitter response</param>
        /// <returns>List of User</returns>
        public virtual List <T> ProcessResults(string responseXml)
        {
            XElement twitterResponse = XElement.Parse(responseXml);
            var      acct            = new Account {
                Type = Type
            };

            if (twitterResponse.Name == "user")
            {
                var user = User.CreateUser(twitterResponse);

                acct.User = user;
            }
            else if (twitterResponse.Name == "hash")
            {
                if (twitterResponse.Element("hourly-limit") != null)
                {
                    var rateLimits = new RateLimitStatus
                    {
                        HourlyLimit   = int.Parse(twitterResponse.Element("hourly-limit").Value),
                        RemainingHits = int.Parse(twitterResponse.Element("remaining-hits").Value),
                        ResetTime     = DateTime.Parse(twitterResponse.Element("reset-time").Value,
                                                       CultureInfo.InvariantCulture,
                                                       DateTimeStyles.AssumeUniversal | DateTimeStyles.AdjustToUniversal),
                        ResetTimeInSeconds = int.Parse(twitterResponse.Element("reset-time-in-seconds").Value)
                    };

                    acct.RateLimitStatus = rateLimits;
                }
                else if (twitterResponse.Element("request") != null)
                {
                    var endSession = new TwitterHashResponse
                    {
                        Request = twitterResponse.Element("request").Value,
                        Error   = twitterResponse.Element("error").Value
                    };

                    acct.EndSessionStatus = endSession;
                }
                else
                {
                    acct.Totals = new Totals
                    {
                        Updates   = int.Parse(twitterResponse.Element("updates").Value),
                        Friends   = int.Parse(twitterResponse.Element("friends").Value),
                        Favorites = int.Parse(twitterResponse.Element("favorites").Value),
                        Followers = int.Parse(twitterResponse.Element("followers").Value)
                    };
                }
            }
            else if (twitterResponse.Name == "settings")
            {
                acct.Settings = new Settings
                {
                    TrendLocation = Location.CreateLocation(twitterResponse.Element("trend_location")),
                    GeoEnabled    = bool.Parse(twitterResponse.Element("geo_enabled").Value),
                    SleepTime     = SleepTime.CreateSleepTime(twitterResponse.Element("sleep_time"))
                };
            }
            else
            {
                throw new ArgumentException("Account Results Processing expected a Twitter response for either a user or hash, but received an unknown element type instead.");
            }

            return(new List <Account> {
                acct
            }.OfType <T>().ToList());
        }