/// <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>(); }
/// <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()); }
/// <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()); }