예제 #1
0
        public void ApprovePost(PostValidationModel model)
        {
            var post = _repository.Get <Post>(model.Id);
            var tags = _repository.GetList <Tag>().ToList();

            if (model.ApproveAll)
            {
                post.Status = (int)PostStatus.Approved;
                foreach (var tag in model.Tags)
                {
                    _repository.UpdateProperty <Tag>(tag.Id, "Status", (int)TagStatus.Approved);
                }
                _repository.Commit();
            }
            else
            {
                if (!model.ApproveImage)
                {
                    _repository.Remove <PostMediaContent>(x => x.PostId == model.Id);
                }
                foreach (var modelTag in model.Tags)
                {
                    var dbTag = tags.FirstOrDefault(x => x.Id == modelTag.Id);
                    if (dbTag.Status == (int)TagStatus.NeedVerify)
                    {
                        if (modelTag.Status == (int)TagStatus.Rejected)
                        {
                            _repository.Remove <PostTag>(x => x.PostId == model.Id && x.TagId == dbTag.Id);
                            _repository.Remove(dbTag);
                        }
                        else
                        {
                            dbTag.Status = (int)TagStatus.Approved;
                        }
                    }
                    else
                    {
                        if (modelTag.Status == (int)TagStatus.Approved)
                        {
                            dbTag.Status = modelTag.Status;
                        }
                        else if (modelTag.Status == (int)TagStatus.Rejected)
                        {
                            _repository.Remove <PostTag>(x => x.PostId == model.Id && x.TagId == dbTag.Id);
                        }
                    }
                }
                post.Status = (int)PostStatus.Approved;
                _repository.Commit();
            }
        }
예제 #2
0
 public void ApprovePost(PostValidationModel model)
 {
     _postService.ApprovePost(model);
 }