private void InsertData(List <MessageEntity> messages, SqlApplicationDbContext context)
        {
            foreach (var message in messages)
            {
                context.Users.Add(message.User);

                message.PostDate = message.PostDate?.ToUniversalTime();
                context.Messages.Add(message);

                foreach (var tag in message.HashTags)
                {
                    var tagToLink = context.Hashtags.FirstOrDefault(x => x.HashTag == tag.HashTag) ?? tag;

                    var tag2Message = new MessageHashTagRelationsEntity
                    {
                        HashTagEntity = tagToLink,
                        MessageEntity = message
                    };
                    context.TaggedMessages.Add(tag2Message);

                    if (tagToLink.IsNew)
                    {
                        context.Hashtags.Add(tagToLink);
                    }
                }
            }
        }
        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 CreateMessageCommandHandler(SqlApplicationDbContext context) : base(context)
 {
     this.context = context;
 }
 public EfMessagesGetQueryHandler(SqlApplicationDbContext context) : base(context)
 {
 }
 protected EfQueryHandler(SqlApplicationDbContext context)
 {
     Context = context;
 }
 public EfHashTagByNameQueryHandler(SqlApplicationDbContext context) : base(context)
 {
 }
Beispiel #7
0
 public EfHashTagParentGetQueryHandler(SqlApplicationDbContext context) : base(context)
 {
 }
Beispiel #8
0
 public EfHashtagGetQueryHandler(SqlApplicationDbContext context) : base(context)
 {
 }