using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; using GxPress.Common.Exceptions; using GxPress.Entity.Topic; using GxPress.Request.App.Topic; namespace GxPress.Service.Implement.Topic { public partial class TopicService { /// /// 修改话题 /// /// /// public async Task UpdateAsync(TopicUpdateRequest request) { var topic = await _topicRepository.GetAsync(request.Id); if (request.UserId != topic.UserId) throw new BusinessException("话题不属于该用户"); if (!string.IsNullOrEmpty(request.Title)) topic.Title = request.Title; if (!string.IsNullOrEmpty(request.Content)) { topic.Content = request.Content; topic.HtmlContent = request.HtmlContent; } //获取共享文件夹成员 if (request.FolderId > 0) { var folderUsers = await _folderUserRepository.GetAllAsync(request.FolderId); request.TopicAddresseeUserIds = folderUsers.Select(n => n.UserId).ToList(); //删除topicAddress await _topicAddresseeRepository.DeletByTopicIdAsync(request.Id); topic.FolderId = request.FolderId; } var topicAddressees = new List(); // request.TopicAddresseeUserIds.Add(request.UserId); //创建话题讨论成员 foreach (var item in request.TopicAddresseeUserIds) { //创建话题管理员 var topicAddressee = new TopicAddressee { TopicId = request.Id, UserId = item, IsAdmin = item == request.UserId }; topicAddressees.Add(topicAddressee); } //添加话题阅读成员 await _topicAddresseeRepository.InsertAsync(topicAddressees); return await _topicRepository.UpdateAsync(topic); } } }