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(); } }
public void ApprovePost(PostValidationModel model) { _postService.ApprovePost(model); }