public override async Task Add(ArticleEditorViewModel vm) { var articleEditor = new ArticleEditorMapping() { ArticleId = vm.ArticleId, UserId = vm.UserId }; _ctx.ArticleEditorMappings.Add(articleEditor); await _ctx.SaveChangesAsync(); }
public override async Task Edit(ArticleViewModel vm, ClaimsPrincipal user) { bool isEsdited = false; var article = await _ctx.Articles.FirstOrDefaultAsync(x => x.Id == vm.Id); var userId = _userManager.GetUserId(user); if (article == null) { throw new ArgumentException($"An Article with the given ID = '{vm.Id}' was not found "); } var isAuthorized = await _authorizationService.AuthorizeAsync(user, article, ArticleOperations.Update); if (!isAuthorized.Succeeded) { throw new ArgumentException("The currently logged in user is not allowed to edit that article."); } if (vm.Title != null && vm.Title != article.Title) { article.Title = vm.Title; isEsdited = true; } if (vm.ArticleText != null && vm.ArticleText != article.ArticleText) { article.ArticleText = vm.ArticleText; isEsdited = true; } if (vm.Image != null && vm.Image != article.Image) { article.Image = vm.Image; isEsdited = true; } if (isEsdited) { article.EditedDate = DateTime.Now; _ctx.Attach(article).State = EntityState.Modified; ArticleEditorMapping articleEditorMapping = new ArticleEditorMapping() { ArticleId = article.Id, UserId = userId }; _ctx.Add(articleEditorMapping); } await _ctx.SaveChangesAsync(); }