public async Task CreatePostAsync(SavePostModel savePostModel) { ArgumentGuard.NotNull(savePostModel, nameof(savePostModel)); await _validatorfactory.ValidateAsync(savePostModel); var post = new PostEntity { Id = Guid.NewGuid(), Title = savePostModel.Title, Content = savePostModel.Content, Status = PostStatus.Draft, Tags = savePostModel.Tags.Select(t => new TagEntity { Id = Guid.NewGuid(), Name = t }).ToList(), CreatedDateUtc = DateTime.UtcNow, AuthorId = _userContext.UserId }; await _postRepository.AddAsync(post); }
public async Task <Guid> AddCommentAsync(Guid postId, SaveCommentModel model) { ArgumentGuard.NotEmpty(postId, nameof(postId)); ArgumentGuard.NotNull(model, nameof(model)); await _validatorFactory.ValidateAsync(model); var commentEntity = new CommentEntity { Id = Guid.NewGuid(), Content = model.Content, AuthorId = _userContext.UserId, PostId = postId, CreatedDateUtc = DateTime.UtcNow, LastModfiedById = _userContext.UserId, }; return(await _commentRepository.AddAsync(commentEntity)); }