public async Task <ActionResult <IEnumerable <Word> > > GetWordItems() { // get top words from cache var topWords = TextAnalyzer.GetTopWords(_cache); // in case there is nothing in the cache, generate top words now // and update the cache if (topWords == null) { var postStream = await client.GetStreamAsync("http://backend/v1/post"); var serializer = new DataContractJsonSerializer(typeof(List <Post>)); var posts = serializer.ReadObject(postStream) as List <Post>; topWords = TextAnalyzer.AnalyseTextAndUpdateCache(posts, _cache); } // prepare result objects var result = new List <Word>(topWords.Count); for (int i = 0; i < topWords.Count; i++) { result.Add(new Word { Name = topWords[i].Key, Size = topWords[i].Value, }); } return(result); }
public async Task DeletePostItem(int postID) { await client.DeleteAsync("http://backend/v1/post/" + postID.ToString()); // update top words var serializer = new DataContractJsonSerializer(typeof(List <Post>)); var postStream = await client.GetStreamAsync("http://backend/v1/post"); var posts = serializer.ReadObject(postStream) as List <Post>; TextAnalyzer.AnalyseTextAndUpdateCache(posts, _cache); }
public async Task <ActionResult <int> > PostPostItem(Post post) { var serializer = new DataContractJsonSerializer(typeof(List <Post>)); // send new post to backend MemoryStream s = new MemoryStream(); serializer.WriteObject(s, post); string stringData = System.Text.Encoding.UTF8.GetString(s.ToArray()); var contentData = new StringContent(stringData, System.Text.Encoding.UTF8, "application/json"); var response = await client.PostAsync("http://backend/v1/post", contentData); // update top words var postStream = await client.GetStreamAsync("http://backend/v1/post"); var posts = serializer.ReadObject(postStream) as List <Post>; TextAnalyzer.AnalyseTextAndUpdateCache(posts, _cache); return(0); }