public MessagesQueryResult MapBunch(IEnumerable <MessageEntity> messages, HashTagWord hashtag)
        {
            var results = new MessagesQueryResult();

            foreach (var entity in messages)
            {
                SocialMediaType mediaType;
                Enum.TryParse(entity.MediaType.ToString(), out mediaType);
                var mapper = new EntityToUserResultMapper();

                var message = new MessageQueryResult
                {
                    Id          = entity.Id,
                    MessageText = entity.MessageText,
                    HashTags    = new List <HashTagQueryResult>
                    {
                        new HashTagQueryResult
                        {
                            HashTag = hashtag
                        }
                    },
                    MediaType = mediaType,
                    PostDate  = entity.PostDate,
                    NetworkId = entity.NetworkId,
                    User      = mapper.MapSingle(entity.User)
                };
                results.Messages.Add(message);
            }
            return(results);
        }
Ejemplo n.º 2
0
        public MessagesQueryResult MapSingle(VkNewsFeed feed, HashTagWord hashtag)
        {
            var results = new MessagesQueryResult();

            // vk doesn't return list of all hashtags in message
            // todo: consider parsing message for hashtags. But it might be too memory consuming operation.

            foreach (var post in feed.Feed)
            {
                var date = DateTimeOffset.FromUnixTimeSeconds(post.UnixTimeStamp).UtcDateTime;
                var user = FillUser(post, feed);
                //var message =
                //  new MessageQueryResult(0,
                //      post.Text,
                //      new List<HashTagQueryResult>
                //      {
                //          new HashTagQueryResult
                //          {
                //              HashTag = hashtag
                //          }
                //      },
                //      SocialMediaType.VK,
                //      date,
                //      post.Id.ToString(),
                //      user);
                //results.Messages.Add(message);
            }
            return(results);
        }
        public void CompareLinesInDatabaseTest()
        {
            var options = new DbContextOptionsBuilder <SqlApplicationDbContext>()
                          .UseInMemoryDatabase(databaseName: "CompareLinesInDatabaseTest")
                          .Options;

            using (SqlApplicationDbContext context = new SqlApplicationDbContext(options))
            {
                //Arrange
                var hashtag = new HashTagWord("microsoft");
                var handler = new EfMessagesGetQueryHandler(context);
                var query   = new MessagesQuery {
                    HashTag = hashtag
                };
                var mapper = new EntityToMessagesResultMapper();
                var data   = GetData(hashtag);

                InsertData(data, context);
                context.SaveChanges();

                //Act
                var result = handler.Handle(query);
                MessagesQueryResult mappedResult = mapper.MapBunch(data, hashtag);

                //Assert
                Assert.Equal(mappedResult.Messages, result.Result.Messages);
            }
        }
Ejemplo n.º 4
0
        public MessagesQueryResult MapBunch(IEnumerable <VkNewsFeed> feeds, HashTagWord hashtag)
        {
            var results = new MessagesQueryResult();

            foreach (var feed in feeds)
            {
                var result = MapSingle(feed, hashtag);
                if (result.Messages.Count > 0)
                {
                    results.Messages.AddRange(result.Messages);
                }
            }
            return(results);
        }
Ejemplo n.º 5
0
        public MessagesQueryResult MapBunch(IEnumerable <ITweet> messages)
        {
            var results = new MessagesQueryResult();

            if (messages != null)
            {
                foreach (var tweet in messages)
                {
                    var message = MapSingle(tweet);
                    results.Messages.Add(message);
                }
            }
            return(results);
        }