1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- 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
- {
- /// <summary>
- /// 修改话题
- /// </summary>
- /// <param name="request"></param>
- /// <returns></returns>
- public async Task<bool> 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<TopicAddressee>();
- //
- 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);
- }
- }
- }
|