コード例 #1
0
        public async Task AddPost(PostModel post)
        {
            var newPost = new Post
            {
                Content      = post.Content,
                Id           = Guid.NewGuid(),
                AuthorId     = post.AuthorId,
                CreationDate = DateTime.Now
            };

            if (post.TopicId.HasValue)
            {
                newPost.TopicId = post.TopicId.Value;
            }
            else if (post.ParentPostId.HasValue)
            {
                newPost.ParentPostId = post.TopicId;
            }
            else
            {
                throw new ValidationException("У поста должен быть задан идентификатор темы или родительского поста");
            }

            if (post.AttachedFiles != null && post.AttachedFiles.Any())
            {
                await FileManager.AddPostFilesAsync(newPost.Id, post.AttachedFiles);
            }

            Posts.Insert(newPost);
            await UnitOfWork.SaveAsync();
        }