private T DeserializeTrends <T>(string content) { var instance = JObject.Parse(content); var inner = instance["trends"]; if (inner != null) { var result = new TwitterTrends { RawSource = content }; var asOf = instance["as_of"] != null ? instance["as_of"].ToString() : "0"; result.AsOf = Convert.ToInt64(asOf).FromUnixTime(); var dateBuckets = inner.Children(); foreach (var dateBucket in dateBuckets.OfType <JProperty>()) { var date = dateBucket.Name; var value = dateBucket.Value.ToString(); var trends = DeserializeCollection <IEnumerable <TwitterTrend> >(value); foreach (var trend in trends) { trend.TrendingAsOf = Convert.ToDateTime(date); } result.Trends.AddRange(trends); } return((T)(IEnumerable)result); } return(DeserializeSingle <T>(content)); }
List <TrendingTopic> ParseFromTwitterTrends(TwitterTrends trends, string countryName) { return(trends .Select(i => new TrendingTopic { Text = i.Name, Date = DateTime.UtcNow, IsPromoted = i.PromotedContent == "true" ? true : false, Country = countryName, }) .ToList()); }