Esempio n. 1
0
 public ArticleUserDeleteCommand(uint userId)
 {
     User = new ArticleUser()
     {
         Id = userId
     };
 }
Esempio n. 2
0
        public async Task CreateArticleUser(string role, string userId, int articleId)
        {
            var userRole = _context.UserRoles.Where(x => x.UserId == Convert.ToInt32(userId) && x.RoleId == Convert.ToInt32(role)).FirstOrDefault();

            if (userRole == null)
            {
                var articleUser = new ArticleUser
                {
                    ArticleId   = articleId,
                    UserRoleId  = userRole.Id,
                    CreatedDate = DateTime.UtcNow,
                    UpdatedDate = DateTime.UtcNow
                };

                _context.ArticleUsers.Add(articleUser);
                await _context.SaveChangesAsync();

                // _logger.LogInformation($"Article Role {userRole.Id} saved.");
            }
            ;
        }
Esempio n. 3
0
        public async Task SaveArticle_ForExistingArticleWithNewUsers_ShouldSucceed()
        {
            var originalUser1 = new User
            {
                Email = USER1_EMAIL,
                Name  = "User1"
            };

            Context.Users.Add(originalUser1);

            var originalUser2 = new User
            {
                Email = USER2_EMAIL,
                Name  = "User2"
            };

            Context.Users.Add(originalUser2);

            var originalTag = new Tag
            {
                Name = TAG_NAME
            };

            Context.Tags.Add(originalTag);

            var originalArticle = CreateArticle();

            Context.Articles.Add(originalArticle);

            var originalArticleTag = new ArticleTag
            {
                Article = originalArticle,
                Tag     = originalTag
            };

            Context.ArticleTags.Add(originalArticleTag);

            var originalArticleUser = new ArticleUser
            {
                Article = originalArticle,
                User    = originalUser1,
                Status  = ArticleStatus.New
            };

            Context.ArticleUsers.Add(originalArticleUser);

            var originalTagUser1 = new TagUser
            {
                Tag  = originalTag,
                User = originalUser1,
            };

            Context.TagUsers.Add(originalTagUser1);

            var originalTagUser2 = new TagUser
            {
                Tag  = originalTag,
                User = originalUser2,
            };

            Context.TagUsers.Add(originalTagUser1);

            SaveAndRecreateContext();

            _pdfService.Setup(s => s.QueueArticle(It.IsAny <string>()))
            .Returns(Task.CompletedTask);

            var service = GetSut <ArticleService>();

            var user2   = Context.Users.Single(u => u.Email == USER2_EMAIL);
            var tag     = Context.Tags.Single(t => t.Name == TAG_NAME);
            var article = new Article
            {
                Title      = originalArticle.Title,
                Url        = originalArticle.Url,
                AuthorName = originalArticle.AuthorName
            };

            await service.SaveArticle(
                article,
                new List <User> {
                user2
            },
                tag);

            SaveAndRecreateContext();

            var articles = Context.Articles.ToList();

            var savedArticle = Context
                               .Articles
                               .Include(a => a.ArticleTags)
                               .ThenInclude(at => at.Tag)
                               .Include(a => a.ArticleUsers)
                               .ThenInclude(au => au.User)
                               .Single(a => a.Title == article.Title);

            savedArticle.Should().NotBeNull();
            savedArticle.ArticleUsers.Should().NotBeNull();
            savedArticle.ArticleUsers.Should().HaveCount(2);

            var articleUser1 = savedArticle.ArticleUsers.Single(au => au.User.Email == USER1_EMAIL);

            articleUser1.Status.Should().Be(ArticleStatus.New);

            var articleUser2 = savedArticle.ArticleUsers.Single(au => au.User.Email == USER2_EMAIL);

            articleUser1.Status.Should().Be(ArticleStatus.New);

            savedArticle.ArticleTags.Should().NotBeNull();
            savedArticle.ArticleTags.Should().HaveCount(1);
            var articleTag = savedArticle.ArticleTags.Single(at => at.Tag.Name == TAG_NAME);

            _pdfService.Verify(s => s.QueueArticle(article.Url), Times.Never);
            _pdfService.VerifyNoOtherCalls();
        }