示例#1
0
        public async Task GiveLike(User user, TModel postBase, bool isLike)
        {
            var existingEntity = await _context.Set <BaseLikeEntity <TEntity> >()
                                 .FirstOrDefaultAsync(x => x.UserId == user.Id && x.EntityId == postBase.Id);

            if (existingEntity == null)
            {
                var newEntity = new BaseLikeEntity <TEntity>()
                {
                    IsLike   = isLike,
                    EntityId = postBase.Id,
                    UserId   = user.Id
                };
                await _context.Set <BaseLikeEntity <TEntity> >()
                .AddAsync(newEntity);
            }
            else
            {
                existingEntity.IsLike = isLike;
            }

            await _context.SaveChangesAsync();
        }
        public MockRepositoriesHub()
        {
            var user1 = new User
            {
                Id              = "user-1",
                Name            = "kotwica407",
                Email           = "*****@*****.**",
                CredentialLevel = CredentialLevel.User,
                Description     = "Cool user"
            };
            var user2 = new User
            {
                Id              = "user-2",
                Name            = "boring123",
                Email           = "*****@*****.**",
                CredentialLevel = CredentialLevel.User,
                Description     = "Boring user"
            };

            _users = new List <User> {
                user1, user2
            };

            var hash1 = new Hash
            {
                Id           = user1.Id,
                PasswordHash = HashHelpers.CreateHash("password1")
            };
            var hash2 = new Hash
            {
                Id           = user2.Id,
                PasswordHash = HashHelpers.CreateHash("password2")
            };

            _hashes = new List <Hash> {
                hash1, hash2
            };

            var post1 = new Post
            {
                Id       = "post-1",
                AuthorId = user1.Id,
                Title    = "Title of post no.1",
                Content  = "Content of post no.1 #tag1 #tag2 \n" +
                           "#tag3",
                CreationTime   = new DateTime(2020, 10, 1, 12, 0, 0),
                LastUpdateTime = new DateTime(2020, 10, 1, 12, 0, 0),
                Tags           = new [] { "tag1", "tag2", "tag3" }
            };
            var post2 = new Post
            {
                Id       = "post-2",
                AuthorId = user2.Id,
                Title    = "Title of post no.2",
                Content  = "Content of post no.2 #tag1 #tag2 \n" +
                           "#tag3",
                CreationTime   = new DateTime(2020, 10, 1, 12, 0, 0),
                LastUpdateTime = new DateTime(2020, 10, 1, 12, 0, 0),
                Tags           = new[] { "tag1", "tag2", "tag4" }
            };

            _posts = new List <Post> {
                post1, post2
            };
            _tags = new List <Tag>()
            {
                new Tag
                {
                    Name        = "tag1",
                    PostsNumber = 2
                },
                new Tag
                {
                    Name        = "tag2",
                    PostsNumber = 2
                },
                new Tag
                {
                    Name        = "tag3",
                    PostsNumber = 2
                },
                new Tag
                {
                    Name        = "tag4",
                    PostsNumber = 1
                }
            };

            var comment = new Comment
            {
                Id             = "comment-1",
                AuthorId       = user2.Id,
                PostId         = post1.Id,
                Content        = "Content of comment no.1 of post no.1",
                CreationTime   = new DateTime(2020, 10, 2, 10, 0, 0),
                LastUpdateTime = new DateTime(2020, 10, 2, 10, 0, 0),
            };

            _comments = new List <Comment> {
                comment
            };

            _responses     = new List <Response>();
            _postLikes     = new List <BaseLikeEntity <Context.Entities.Post> >();
            _commentLikes  = new List <BaseLikeEntity <Context.Entities.Comment> >();
            _responseLikes = new List <BaseLikeEntity <Context.Entities.Response> >();

            SetupUserRepositoryMock();
            SetupHashRepositoryMock();
            SetupPostRepositoryMock();
            SetupCommentRepositoryMock();
            SetupResponseRepositoryMock();
            SetupTagRepositoryMock();
            SetupPostLikeRepositoryMock();
            SetupCommentLikeRepositoryMock();
            SetupResponseLikeRepositoryMock();
        }