示例#1
0
        public async Task UpdateFeeds(DateTime now)
        {
            var httpWebRequest = (HttpWebRequest)WebRequest.Create("https://kdg.textgain.com/query");

            httpWebRequest.Method = "POST";
            httpWebRequest.Headers.Add("X-API-Key", "aEN3K6VJPEoh3sMp9ZVA73kkr");
            httpWebRequest.ContentType = "application/json; charset=utf-8";
            httpWebRequest.Accept      = "application/json; charset=utf-8";

            using (var streamWriter = new StreamWriter(await httpWebRequest.GetRequestStreamAsync()))
            {
                string date = String.Format("{0:yyyy MM dd HH:mm:ss}", now.AddDays(-1));
                string json = "{ \"since\":\"" + date + "\" }";

                streamWriter.Write(json);
            }

            string stream;

            var httpResponse = (HttpWebResponse)await httpWebRequest.GetResponseAsync();

            using (var streamReader = new StreamReader(httpResponse.GetResponseStream()))
            {
                stream = await streamReader.ReadToEndAsync();

                stream.Replace("\"geo\": false", "\"geo\": [null, null]").Replace("[", "\"[").Replace("]", "]\"").Trim('"');

                char[]   test   = new char[] { '[', ']' };
                string[] filter = stream.Split(test);

                for (int i = 2; i < filter.Length; i = i + 2)
                {
                    filter[i] = filter[i].Replace("\"", string.Empty);
                }

                stream = "[" + string.Join("", filter) + "]";
            }

            if (stream != "[]")
            {
                IEnumerable <Feed> resultsFeed = JsonConvert.DeserializeObject <IEnumerable <Feed> >(stream);
                List <Feed>        feeds       = new List <Feed>();

                foreach (Feed item in resultsFeed)
                {
                    feeds.Add(new Feed(new Profile(item.Profile.Gender, item.Profile.Age, item.Profile.Education, item.Profile.Language, item.Profile.Personality), item.Words, item.Sentiment, item.Source, item.Hashtags, item.ID, item.Themes, item.Persons, item.Urls, item.Date, item.Mentions, item.Geo, item.Retweet));
                }

                await repo.CreateFeeds(feeds);
            }
        }