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);
            }
        }
        public async Task <MessagesQueryResult> Handle(MessagesQuery query)
        {
            var mapper = new EntityToMessagesResultMapper();

            var messages = await Context.Messages
                           .Where(
                message => message.MessageHashTagRelations.Any(
                    rel => rel.HashTagEntity.HashTag == query.HashTag.TagWithHash)
                )
                           .ToListAsync();

            return(mapper.MapBunch(messages, query.HashTag));
        }