public ArticleUserDeleteCommand(uint userId) { User = new ArticleUser() { Id = userId }; }
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."); } ; }
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(); }