Example #1
0
        public BlogModel SaveDraft(SaveBlogDraftInput input)
        {
            Blog blog = null;

            if (input.Id == null)
            {
                User user = this._userRepository.Get(input.AuthorId);
                blog = user.CreateBlog(input);
                this.AddBlog(blog);
            }
            else
            {
                blog = this.Repository.GetBlogDetail(input.Id.Value);
                if (blog.AuthorId != input.AuthorId || blog.Status != BlogStatus.Unpublished)
                {
                    throw new ServiceException("无效操作");
                }

                blog.Author.UpdateBlog(blog, input);
                this.UpdateBlog(blog);
            }

            BlogModel ret = BlogModel.Create(blog);

            return(ret);
        }
Example #2
0
        public PagedData <BlogModel> GetUserBlogs(Pagination page, int authorId)
        {
            var result = this.Query().Where(a => a.AuthorId == authorId).Where(a => a.Status != BlogStatus.Deleted).OrderByDesc(a => a.Id).TakePageData(page);

            var ret = new PagedData <BlogModel>(result.TotalCount, result.CurrentPage, result.PageSize);

            ret.Models.AddRange(result.Models.Select(a => BlogModel.Create(a)));
            return(ret);
        }
Example #3
0
        public BlogNeighbour GetNeighbours(int id, int authorId)
        {
            BlogNeighbour ret = new BlogNeighbour();

            var q = this.Query().Where(a => a.AuthorId == authorId && a.Status == BlogStatus.Published);

            ret.Prev = BlogModel.Create(q.Where(a => a.Id < id).OrderByDesc(a => a.Id).FirstOrDefault());
            ret.Next = BlogModel.Create(q.Where(a => a.Id > id).OrderBy(a => a.Id).FirstOrDefault());

            return(ret);
        }
Example #4
0
        public BlogModel AddAndPublish(AddBlogInput input)
        {
            User user = this._userRepository.Get(input.AuthorId);

            Blog blog = user.CreateBlog(input);

            user.PublishBlog(blog);

            this.AddBlog(blog);

            BlogModel ret = BlogModel.Create(blog);

            return(ret);
        }
Example #5
0
        public BlogModel Publish(PublishBlogInput input)
        {
            Blog blog = this.Repository.GetBlogDetail(input.Id, input.AuthorId);

            blog.Author.UpdateBlog(blog, input);

            if (blog.Status == BlogStatus.Unpublished)
            {
                blog.Author.PublishBlog(blog);
            }

            this.UpdateBlog(blog);

            BlogModel ret = BlogModel.Create(blog);

            return(ret);
        }
Example #6
0
 public async Task Create(Blog blog)
 {
     await _model.Create(blog);
 }
Example #7
0
 public BlogModel GetBlogDetail(int id)
 {
     return(BlogModel.Create(this.Repository.GetBlogDetail(id)));
 }