Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        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);
        }
Esempio n. 3
0
        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);
        }